SoTransform(3IV)

SoTransform (SoXf) - general 3D geometric transformation node

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

NAME
     SoTransform (SoXf) - general 3D geometric transformation node

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransform

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

     typedef SoTransform  SoXf

          Fields from class SoTransform:

     SoSFVec3f           translation
     SoSFRotation        rotation
     SoSFVec3f           scaleFactor
     SoSFRotation        scaleOrientation
     SoSFVec3f           center

          Functions from class SoTransform:

     SoTransform *       SoXfCreate()
     void                SoXfPtAt(SoXf *this, const SbVec3f *fromPoint, const
                              SbVec3f *toPoint)
     void                SoXfGetScaleSpaceMx(const SoXf *this, SbMatrix *mat,
                              SbMatrix *inv)
     void                SoXfGetRotSpaceMx(const SoXf *this, SbMatrix *mat,
                              SbMatrix *inv)
     void                SoXfGetXlateSpaceMx(const SoXf *this, SbMatrix *mat,
                              SbMatrix *inv)
     void                SoXfMultLeft(SoXf *this, const SbMatrix *mat)
     void                SoXfMultRight(SoXf *this, const SbMatrix *mat)
     void                SoXfCombineLeft(SoXf *this, SoTransformation
                              *nodeOnRight)
     void                SoXfCombineRight(SoXf *this, SoTransformation
                              *nodeOnLeft)
     void                SoXfSetMx(SoXf *this, const SbMatrix *mat)
     void                SoXfRecenter(SoXf *this, const SbVec3f *newCenter)
     SoType              SoXfGetClassTypeId()

          Functions from class SoNode:

     void                SoXfSetOverride(SoXf *this, SbBool state)
     SbBool              SoXfIsOverride(const SoXf *this)
     SoNode *            SoXfCopy(const SoXf *this, SbBool copyConnections =
                              FALSE)
     SbBool              SoXfAffectsState(const SoXf *this)
     SoNode *            SoXfGetByName(const char *name)
     int                 SoXfGetByNameList(const char *name, SoNodeList *list)

          Functions from class SoFieldContainer:

     void                SoXfSetToDflts(SoXf *this)
     SbBool              SoXfHasDfltVals(const SoXf *this)
     SbBool              SoXfFldsAreEq(const SoXf *this, const
                              SoFieldContainer *fc)
     void                SoXfCopyFieldVals(SoXf *this, const SoFieldContainer
                              *fc, SbBool copyConnections = FALSE)
     SbBool              SoXfSet(SoXf *this, const char *fieldDataString)
     void                SoXfGet(SoXf *this, SbString *fieldDataString)
     int                 SoXfGetFields(const SoXf *this, SoFieldList
                              *resultList)
     SoField *           SoXfGetField(const SoXf *this, const char *fieldName)
     SbBool              SoXfGetFieldName(const SoXf *this, const SoField
                              *field, SbName *fieldName)
     SbBool              SoXfIsNotifyEnabled(const SoXf *this)
     SbBool              SoXfEnableNotify(SoXf *this, SbBool flag)

          Functions from class SoBase:

     void                SoXfRef(SoXf *this)
     void                SoXfUnref(const SoXf *this)
     void                SoXfUnrefNoDelete(const SoXf *this)
     void                SoXfTouch(SoXf *this)
     SoType              SoXfGetTypeId(const SoXf *this)
     SbBool              SoXfIsOfType(const SoXf *this, SoType type)
     void                SoXfSetName(SoXf *this, const char *name)
     SbName              SoXfGetName(const SoXf *this)


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.
FUNCTIONS
     SoTransform *       SoXfCreate()
          Creates a transformation node with default settings.

     void                SoXfPtAt(SoXf *this, 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                SoXfGetScaleSpaceMx(const SoXf *this, SbMatrix *mat,
                              SbMatrix *inv)
     void                SoXfGetRotSpaceMx(const SoXf *this, SbMatrix *mat,
                              SbMatrix *inv)
     void                SoXfGetXlateSpaceMx(const SoXf *this, SbMatrix *mat,
                              SbMatrix *inv)
          These return composite matrices that transform from object space to
          each of the spaces after the scale, rotation, or translation.

     void                SoXfMultLeft(SoXf *this, const SbMatrix *mat)
     void                SoXfMultRight(SoXf *this, 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                SoXfCombineLeft(SoXf *this, SoTransformation
                              *nodeOnRight)
     void                SoXfCombineRight(SoXf *this, 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                SoXfSetMx(SoXf *this, 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                SoXfRecenter(SoXf *this, const SbVec3f *newCenter)
          Changes the center of the transformation to the given point without
          affecting the overall effect of the transformation.

     SoType              SoXfGetClassTypeId()
          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