SoRotor(3IV)

NAME
SoRotor — animated rotation node

INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoTransformation > SoRotation > SoRotor

SYNOPSIS
#include <Inventor/nodes/SoRotor.h>

Fields from class SoRotor:

SoSFFloat
speed
SoSFBool
on

Fields from class SoRotation:

SoSFRotation
rotation

Methods from class SoRotor:

SoRotor()
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 SoRotor class is derived from SoRotation, so it applies a rotation to the current transformation. Using engines connected to the realTime global field, the rotation value is animated over time, achieving a spinning effect. The period of the rotation can be adjusted by changing the speed field.

The current rotation at any time is available in the rotation field, inherited from SoRotation. This field can also be set to specify the axis of rotation. Note that unless a non-zero rotation is specified for the rotation, the node will not know which axis to use. For example, to set a rotor to spin about the y-axis, use the following:

rotor->rotation.setValue(axis, 0.1);

where axis is a vector containing (0,1,0). Any non-zero angle can be used in this code.

FIELDS
SoSFFloat
speed
Defines the speed of the rotor, in revolutions per second.

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

METHODS

SoRotor()
Creates a rotor node with default settings.

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

ACTION BEHAVIOR
SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction
Concatenates current rotation value with the current transformation matrix.

SoGetMatrixAction
Returns transformation matrix specified by the rotation.

FILE FORMAT/DEFAULTS
Rotor {
rotation	0 0 1  0
speed	1
on	TRUE
}

SEE ALSO
SoPendulum, SoShuttle