SoTransform(3IV)

SoTransform - general 3D geometric transformation node

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SoTransform - general 3D geometric transformation node

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransform

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

          Fields from class SoTransform:

     SoSFVec3f           translation
     SoSFRotation        rotation
     SoSFVec3f           scaleFactor
     SoSFRotation        scaleOrientation
     SoSFVec3f           center

          Methods from class SoTransform:

                         SoTransform()
     void                pointAt(const SbVec3f &fromPoint, const SbVec3f
                              &toPoint)
     void                getScaleSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
                              const
     void                getRotationSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
                              const
     void                getTranslationSpaceMatrix(SbMatrix &mat, SbMatrix
                              &inv) const
     void                multLeft(const SbMatrix &mat)
     void                multRight(const SbMatrix &mat)
     void                combineLeft(SoTransformation *nodeOnRight)
     void                combineRight(SoTransformation *nodeOnLeft)
     void                setMatrix(const SbMatrix &mat)
     void                recenter(const SbVec3f &newCenter)
     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
     This node defines a geometric 3D transformation consisting of (in order)
     a (possibly) non-uniform scale about an arbitrary point, a rotation about
     an arbitrary point and axis, and a translation. (While the
     transformations can be thought of as being applied in that order,
     matrices are actually premultiplied in the opposite order. Therefore, the
     operations are listed in the reverse order throughout this reference
     page.)

FIELDS
     SoSFVec3f           translation
          Translation vector.

     SoSFRotation        rotation
          Rotation specification.

     SoSFVec3f           scaleFactor
          Scale factors.

     SoSFRotation        scaleOrientation
          Rotational orientation for scale.

     SoSFVec3f           center
          Origin for scale and rotation.


METHODS
                         SoTransform()
          Creates a transformation node with default settings.

     void                pointAt(const SbVec3f &fromPoint, const SbVec3f
                              &toPoint)
          Sets the node to translate the origin to the fromPoint and rotate
          the negative z-axis (0,0,-1) to lie on the vector from fromPoint to
          toPoint. This always tries to keep the "up" direction the positive
          y-axis, unless that is impossible.  All current field values in the
          node are replaced.

     void                getScaleSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
                              const
     void                getRotationSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
                              const
     void                getTranslationSpaceMatrix(SbMatrix &mat, SbMatrix
                              &inv) const
          These return composite matrices that transform from object space to
          each of the spaces after the scale, rotation, or translation.

     void                multLeft(const SbMatrix &mat)
     void                multRight(const SbMatrix &mat)
          These are convenience functions that combine the effects of a matrix
          transformation into the current transformation stored in this node.
          The first method premultiplies the transformation and the second
          postmultiplies it.

     void                combineLeft(SoTransformation *nodeOnRight)
     void                combineRight(SoTransformation *nodeOnLeft)
          These are convenience functions that combine the effects of another
          transformation node into the current transformation stored in this
          node. The first method premultiplies the transformation and the
          second postmultiplies it.

     void                setMatrix(const SbMatrix &mat)
          Sets the fields in the node to implement the transformation
          represented by the given matrix. Note that invalid matrices (such as
          singular ones) have undefined results.

     void                recenter(const SbVec3f &newCenter)
          Changes the center of the transformation to the given point without
          affecting the overall effect of the transformation.

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


ACTION BEHAVIOR
     SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction,
     SoRayPickAction
          Accumulates transformation into the current transformation.

     SoGetMatrixAction
          Returns the matrix corresponding to the total transformation.

FILE FORMAT/DEFAULTS
     Transform {
          translation       0 0 0
          rotation          0 0 1  0
          scaleFactor       1 1 1
          scaleOrientation  0 0 1  0
          center            0 0 0
     }

SEE ALSO
     SoMatrixTransform, SoResetTransform, SoRotation, SoRotationXYZ, SoScale,
     SoTransformManip, SoTransformSeparator, SoTranslation