Transform - is group which all children are transformed by the the Transform's osg::Matrix.
Inheritance:
Public Methods
-
Transform()
-
Transform(const Transform&, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
- Copy constructor using CopyOp to manage deep vs shallow copy
-
Transform(const Matrix& matix)
-
META_Node(Transform)
-
void setReferenceFrame(ReferenceFrame rf)
- Set the transform's ReferenceFrame, either to be realtive to its parent reference frame, or relative to an absolute coordinate frame.
-
const ReferenceFrame getReferenceFrame() const
-
void setComputeTransformCallback(ComputeTransformCallback* ctc)
- Set the ComputerTransfromCallback which allows users to attach custom computation of the local transformation as seen by cull traversers and alike
-
ComputeTransformCallback* getComputeTransformCallback()
- Get the non const ComputerTransfromCallback
-
const ComputeTransformCallback* getComputeTransformCallback() const
- Get the const ComputerTransfromCallback
-
inline const bool getLocalToWorldMatrix(Matrix& matrix, NodeVisitor* nv) const
- Get the transformation matrix which moves from local coords to world coords.
-
inline const bool getWorldToLocalMatrix(Matrix& matrix, NodeVisitor* nv) const
- Get the transformation matrix which moves from world coords to local coords.
-
void setMatrix(const Matrix& mat)
- Set the transform's matrix
-
inline const Matrix& getMatrix() const
- Get the transform's matrix.
-
void preMult(const Matrix& mat)
- preMult transform
-
void postMult(const Matrix& mat)
- postMult transform
Public Members
-
enum ReferenceFrame
-
struct ComputeTransformCallback: public osg::Referenced
- Callback attached to an Transform to specifiy how to compute the modelview transformation for the transform below the Transform node
Protected Fields
-
ref_ptr<ComputeTransformCallback> _computeTransformCallback
-
ReferenceFrame _referenceFrame
-
ref_ptr<Matrix> _matrix
-
mutable ref_ptr<Matrix> _inverse
-
mutable bool _inverseDirty
Protected Methods
-
virtual ~Transform()
-
virtual const bool computeBound() const
- Override's Group's computeBound.
-
virtual const bool computeLocalToWorldMatrix(Matrix& matrix, NodeVisitor*) const
-
virtual const bool computeWorldToLocalMatrix(Matrix& matrix, NodeVisitor*) const
-
inline void computeInverse() const
Inherited from Group:
Public Methods
-
virtual void traverse(NodeVisitor& nv)
-
virtual bool addChild( Node* child )
-
virtual bool removeChild( Node* child )
-
virtual bool replaceChild( Node* origChild, Node* newChild )
-
inline const int getNumChildren() const
-
inline Node* getChild( const int i )
-
inline const Node* getChild( const int i ) const
-
inline bool containsNode( const Node* node ) const
-
inline ChildList::iterator findNode( const Node* node )
-
inline ChildList::const_iterator findNode( const Node* node ) const
Protected Fields
-
ChildList _children
Documentation
Transform - is group which all children are transformed by the the Transform's osg::Matrix.
Typical uses
of the Transform is for positioning objects within a scene or
producing trackball functionality or for animation.
The Transform node can be customized via the ComputeTransfromCallback which can be
attached to the node, this might be used to convert internal representations of the transformation
into generic osg::Matrix'c which are used during scene grpah traversal, such as CullTraversal and IntersectionTraversal.
Note, if the transformation matrix scales the subgraph then the
normals of the underlying geometry will need to be renormalized to
be unit vectors once more. One can done transparently through OpenGL's
use of either GL_NORMALIZE and GL_SCALE_NORMALIZE modes. Further
background reading see the glNormalize documentation in the OpenGL Reference
Guide (the blue book). To enable it in the OSG, you simple need to
attach a local osg::StateSet to the osg::Transform, and set the appropriate
mode to on via stateset->setMode(GL_NORMALIZE,osg::StateAttribute::ON);.
- Transform()
- Transform(const Transform&, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
- Copy constructor using CopyOp to manage deep vs shallow copy
- Transform(const Matrix& matix)
- META_Node(Transform)
- enum ReferenceFrame
- RELATIVE_TO_PARENTS
- RELATIVE_TO_ABSOLUTE
- void setReferenceFrame(ReferenceFrame rf)
- Set the transform's ReferenceFrame, either to be realtive to its parent reference frame,
or relative to an absolute coordinate frame. RELATIVE_TO_PARENTS is the default.
Note, setting the RefrenceFrame to be RELATIVE_TO_ABSOLUTE will also set the CullingActive flag on the
transform, and hence all its parents, to false, therby disabling culling of it and all its
parents. This is neccessary to prevent inappropriate culling, but may impact of cull times
if the absolute transform is deep in the scene graph, it is therefore recommend to only use
abolsoute Transforms at the top of the scene, for such things as headlight LightSource's or
Head up displays.
- const ReferenceFrame getReferenceFrame() const
- struct ComputeTransformCallback: public osg::Referenced
- Callback attached to an Transform to specifiy how to compute the modelview transformation
for the transform below the Transform node
- virtual const bool computeLocalToWorldMatrix(Matrix& matrix, const Transform* transform, NodeVisitor* nv) const = 0
- Get the transformation matrix which moves from local coords to world coords
- virtual const bool computeWorldToLocalMatrix(Matrix& matrix, const Transform* transform, NodeVisitor* nv) const = 0
- Get the transformation matrix which moves from world coords to local coords
- void setComputeTransformCallback(ComputeTransformCallback* ctc)
- Set the ComputerTransfromCallback which allows users to attach custom computation of the local transformation as
seen by cull traversers and alike
- ComputeTransformCallback* getComputeTransformCallback()
- Get the non const ComputerTransfromCallback
- const ComputeTransformCallback* getComputeTransformCallback() const
- Get the const ComputerTransfromCallback
- inline const bool getLocalToWorldMatrix(Matrix& matrix, NodeVisitor* nv) const
- Get the transformation matrix which moves from local coords to world coords.
Return true if Matrix passed in has been modified and
- inline const bool getWorldToLocalMatrix(Matrix& matrix, NodeVisitor* nv) const
- Get the transformation matrix which moves from world coords to local coords.
Return true if Matrix passed in has been modified and
- void setMatrix(const Matrix& mat)
- Set the transform's matrix
- inline const Matrix& getMatrix() const
- Get the transform's matrix.
- void preMult(const Matrix& mat)
- preMult transform
- void postMult(const Matrix& mat)
- postMult transform
- virtual ~Transform()
- virtual const bool computeBound() const
- Override's Group's computeBound.
There is no need to override in subclasses from osg::Transform since this computeBound() uses
the underlying matrix (calling computeMatrix if required.)
- virtual const bool computeLocalToWorldMatrix(Matrix& matrix, NodeVisitor*) const
- virtual const bool computeWorldToLocalMatrix(Matrix& matrix, NodeVisitor*) const
- inline void computeInverse() const
- ref_ptr<ComputeTransformCallback> _computeTransformCallback
- ReferenceFrame _referenceFrame
- ref_ptr<Matrix> _matrix
- mutable ref_ptr<Matrix> _inverse
- mutable bool _inverseDirty
- Direct child classes:
- PositionAttitudeTransform
- Friends:
- struct osg::Transform::ComputeTransformCallback
Alphabetic index HTML hierarchy of classes or Java
This page was generated with the help of DOC++.