Provided by: inventor-doc_2.1.5-10-18_all bug

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

                                                                               SoTransform(3IV)()