---
name: "SoShuttle"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoShuttle/3iv"
---

# SoShuttle(3iv)

animated oscillating translation node

## NAME

SoShuttle — animated oscillating translation node

## INHERITS FROM

SoBase \> SoFieldContainer \> SoNode \> SoTransformation \> SoTranslation \> SoShuttle

## SYNOPSIS

**#include \<Inventor/nodes/SoShuttle.h\>**

Fields from class SoShuttle:

**SoSFVec3f**	**translation0**\
 **SoSFVec3f**	**translation1**\
 **SoSFFloat**	**speed**\
 **SoSFBool**	**on**

Fields from class SoTranslation:

**SoSFVec3f**	**translation**

Methods from class SoShuttle:

	**SoShuttle()**\
 **static SoType**	**getClassTypeId()**

Methods from class SoNode:

**void**	**setOverride(SbBool state)**\
 **SbBool**	**isOverride() const**\
 **SoNode \***	**copy(SbBool copyConnections = FALSE) const**\
 **virtual SbBool**	**affectsState() const**\
 **static SoNode \***	**getByName(const SbName &name)**\
 **static int**	**getByName(const SbName &name, SoNodeList &list)**

Methods from class SoFieldContainer:

**void**	**setToDefaults()**\
 **SbBool**	**hasDefaultValues() const**\
 **SbBool**	**fieldsAreEqual(const SoFieldContainer \*fc) const**\
 **void**	**copyFieldValues(const SoFieldContainer \*fc, SbBool copyConnections = FALSE)**\
 **SbBool**	**set(const char \*fieldDataString)**\
 **void**	**get(SbString &fieldDataString)**\
 **virtual int**	**getFields(SoFieldList &resultList) const**\
 **virtual SoField \***	**getField(const SbName &fieldName) const**\
 **SbBool**	**getFieldName(const SoField \*field, SbName &fieldName) const**\
 **SbBool**	**isNotifyEnabled() const**\
 **SbBool**	**enableNotify(SbBool flag)**

Methods from class SoBase:

**void**	**ref()**\
 **void**	**unref() const**\
 **void**	**unrefNoDelete() const**\
 **void**	**touch()**\
 **virtual SoType**	**getTypeId() const**\
 **SbBool**	**isOfType(SoType type) const**\
 **virtual void**	**setName(const SbName &name)**\
 **virtual SbName**	**getName() const**

## DESCRIPTION

**The SoShuttle** class is derived from **SoTranslation**, so it applies a translation to the current transformation. Using engines connected to the **realTime** global field, the translation value is animated over time between two fixed translations, achieving a shuttling effect. The period of the motion can be adjusted by changing the **speed** field. The current translation at any time is available in the **translation** field, inherited from **SoTranslation**

## FIELDS

**SoSFVec3f**	**translation0**\
 **SoSFVec3f**	**translation1**\
 These define the two fixed translations that are interpolated to create the shuttling motion.

**SoSFFloat**	**speed**\
 Defines the speed of the shuttle, in cycles per second.

**SoSFBool**	**on**\
 Allows applications to enable or disable the motion easily.

## METHODS

	**SoShuttle()**\
 Creates a shuttle node with default settings.

**static SoType**	**getClassTypeId()**\
 Returns type identifier for this class.

## ACTION BEHAVIOR

**SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction**\
 Concatenates interpolated translation value with the current transformation matrix.

**SoGetMatrixAction**\
 Returns transformation matrix specified by the interpolated translation.

## FILE FORMAT/DEFAULTS

```
Shuttle {
translation	0 0 0
translation0	0 0 0
translation1	0 0 0
speed	1
on	TRUE
}
```

## SEE ALSO

**SoPendulum, SoRotor**
