SoTransform(3IV)NAMESoTransform (SoXf) - general 3D geometric transformation node
INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransformSYNOPSIS
#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:
Page 1SoTransform(3IV)
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.
Page 2SoTransform(3IV)FUNCTIONSSoTransform * 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.
Page 3SoTransform(3IV)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
Page 4