.TH "SoTransformation" 3 "Sat Oct 12 2013" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoTransformation \- .PP The \fBSoTransformation\fP class is the abstract base class for transformation nodes\&. .PP To position and orient geometry within the 3D world space, various node types for transformations are used\&. These nodes all inherit the \fBSoTransformation\fP base class\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBSoNode\fP\&. .PP Inherited by \fBSoAntiSquish\fP, \fBSoGeoLocation\fP, \fBSoMatrixTransform\fP, \fBSoResetTransform\fP, \fBSoRotation\fP, \fBSoRotationXYZ\fP, \fBSoScale\fP, \fBSoSurroundScale\fP, \fBSoTransform\fP, \fBSoTranslation\fP, and \fBSoUnits\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual \fBSoType\fP \fBgetTypeId\fP (void) const " .br .RI "\fIReturns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. \fP" .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .RI "\fIThis static method returns the \fBSoType\fP object associated with objects of this class\&. \fP" .ti -1c .RI "static void \fBinitClass\fP (void)" .br .RI "\fISets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. \fP" .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual const \fBSoFieldData\fP * \fBgetFieldData\fP (void) const " .br .ti -1c .RI "\fBSoTransformation\fP (void)" .br .ti -1c .RI "virtual \fB~SoTransformation\fP ()" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static const \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (void)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSoTransformation\fP class is the abstract base class for transformation nodes\&. .PP To position and orient geometry within the 3D world space, various node types for transformations are used\&. These nodes all inherit the \fBSoTransformation\fP base class\&. Note that transformations will be accumulated through the scene graph, unless used under \fBSoSeparator\fP nodes, where the transformation matrix stack will be pushed and popped\&. Here is a short example demonstrating this principle: .PP .PP .nf #Inventor V2.1 ascii Separator { BaseColor { rgb 1 0 0 } Cone { } Translation { translation 3 0 0 } Separator { Rotation { rotation 1 0 0 1.57 } BaseColor { rgb 0 1 0 } Cone { } } # SoSeparator restores transformation matrix here Translation { translation 3 0 0 } Rotation { rotation 1 0 0 1.57 } BaseColor { rgb 0 0 1 } Cone { } Translation { translation 3 0 0 } # Last SoRotation was not within SoSeparator, so this next # SoRotation will accumulate with the previous. Rotation { rotation 1 0 0 1.57 } BaseColor { rgb 1 1 0 } Cone { } }.fi .PP .PP Which results in the following scene: .PP .SH "Constructor & Destructor Documentation" .PP .SS "SoTransformation::SoTransformation (void)\fC [protected]\fP" Constructor\&. .SS "SoTransformation::~SoTransformation ()\fC [protected]\fP, \fC [virtual]\fP" Destructor\&. .SH "Member Function Documentation" .PP .SS "\fBSoType\fP SoTransformation::getTypeId (void) const\fC [virtual]\fP" .PP Returns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. Usage example: .PP .PP .nf void foo(SoNode * node) { if (node->getTypeId() == SoFile::getClassTypeId()) { SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type } } .fi .PP .PP For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in \fIall\fP subclasses\&. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance \fBInventor/nodes/SoSubNode\&.h\fP (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine\&.h (for engine classes) and so on\&. .PP For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups\&. .PP Implements \fBSoBase\fP\&. .PP Reimplemented in \fBSoTransformManip\fP, \fBSoPendulum\fP, \fBSoRotor\fP, \fBSoShuttle\fP, \fBSoGeoLocation\fP, \fBSoRotationXYZ\fP, \fBSoSurroundScale\fP, \fBSoTransform\fP, \fBSoAntiSquish\fP, \fBSoCenterballManip\fP, \fBSoHandleBoxManip\fP, \fBSoJackManip\fP, \fBSoTabBoxManip\fP, \fBSoTrackballManip\fP, \fBSoTransformBoxManip\fP, \fBSoTransformerManip\fP, \fBSoMatrixTransform\fP, \fBSoResetTransform\fP, \fBSoRotation\fP, \fBSoScale\fP, \fBSoTranslation\fP, and \fBSoUnits\fP\&. .SS "const \fBSoFieldData\fP ** SoTransformation::getFieldDataPtr (void)\fC [static]\fP, \fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .PP Reimplemented from \fBSoNode\fP\&. .PP Reimplemented in \fBSoTransformManip\fP, \fBSoPendulum\fP, \fBSoRotor\fP, \fBSoShuttle\fP, \fBSoGeoLocation\fP, \fBSoRotationXYZ\fP, \fBSoSurroundScale\fP, \fBSoTransform\fP, \fBSoAntiSquish\fP, \fBSoCenterballManip\fP, \fBSoHandleBoxManip\fP, \fBSoJackManip\fP, \fBSoTabBoxManip\fP, \fBSoTrackballManip\fP, \fBSoTransformBoxManip\fP, \fBSoTransformerManip\fP, \fBSoMatrixTransform\fP, \fBSoResetTransform\fP, \fBSoRotation\fP, \fBSoScale\fP, \fBSoTranslation\fP, and \fBSoUnits\fP\&. .SS "const \fBSoFieldData\fP * SoTransformation::getFieldData (void) const\fC [protected]\fP, \fC [virtual]\fP" Returns a pointer to the class-wide field data storage object for this instance\&. If no fields are present, returns \fCNULL\fP\&. .PP Reimplemented from \fBSoFieldContainer\fP\&. .PP Reimplemented in \fBSoTransformManip\fP, \fBSoPendulum\fP, \fBSoRotor\fP, \fBSoShuttle\fP, \fBSoGeoLocation\fP, \fBSoRotationXYZ\fP, \fBSoSurroundScale\fP, \fBSoTransform\fP, \fBSoAntiSquish\fP, \fBSoCenterballManip\fP, \fBSoHandleBoxManip\fP, \fBSoJackManip\fP, \fBSoTabBoxManip\fP, \fBSoTrackballManip\fP, \fBSoTransformBoxManip\fP, \fBSoTransformerManip\fP, \fBSoMatrixTransform\fP, \fBSoResetTransform\fP, \fBSoRotation\fP, \fBSoScale\fP, \fBSoTranslation\fP, and \fBSoUnits\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.