class SG_EXPORT osg::Transform

Transform - is group which all children are transformed by the the Transform's osg::Matrix.

Inheritance:


Public Methods

[more] Transform()
[more] Transform(const Transform&, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
Copy constructor using CopyOp to manage deep vs shallow copy
[more] Transform(const Matrix& matix)
[more] META_Node(Transform)
[more]inline void setType(Type type)
Set the Transform Type, which can be DYNAMIC - the Matrix value is updated during the main loop, or STATIC - the Matrix is constant throughout the life of the main loop.
[more]inline const Type getType() const
Get the Transform Type
[more]inline void setMatrixMode(MatrixMode mode)
Set the matrix mode which tells traversers them how to treat this Transform - as Projection, View or Model transformation
[more]inline const MatrixMode getMatrixMode() const
Get the transform mode
[more]inline const bool isProjectionTransform() const
Does the tranform set up the projection matrix
[more]inline const bool isModelViewTransform() const
Does the tranform set up the modelview matrix
[more]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
[more]ComputeTransformCallback* getComputeTransformCallback()
Get the non const ComputerTransfromCallback
[more]const ComputeTransformCallback* getComputeTransformCallback() const
Get the const ComputerTransfromCallback
[more]inline const bool getLocalToWorldMatrix(Matrix& matrix, NodeVisitor* nv) const
Get the transformation matrix which moves from local coords to world coords.
[more]inline const bool getWorldToLocalMatrix(Matrix& matrix, NodeVisitor* nv) const
Get the transformation matrix which moves from world coords to local coords.
[more]void setMatrix(const Matrix& mat)
Set the transform's matrix
[more]inline const Matrix& getMatrix() const
Get the transform's matrix.
[more]void preMult(const Matrix& mat)
preMult transform
[more]void postMult(const Matrix& mat)
postMult transform

Public Members

[more]enum Type
Range of types that the Transform can be
[more]struct ComputeTransformCallback: public osg::Referenced
Callback attached to an Transform to specifiy how to compute the modelview or projection transformation for the transform below the Transform node

Protected Fields

[more]Type _type
[more]MatrixMode _mode
[more]ref_ptr<ComputeTransformCallback> _computeTransformCallback
[more]ref_ptr<Matrix> _matrix
[more]mutable ref_ptr<Matrix> _inverse
[more]mutable bool _inverseDirty

Protected Methods

[more]virtual ~Transform()
[more]virtual const bool computeBound() const
Override's Group's computeBound.
[more]virtual const bool computeLocalToWorldMatrix(Matrix& matrix, NodeVisitor*) const
[more]virtual const bool computeWorldToLocalMatrix(Matrix& matrix, NodeVisitor*) const
[more]inline void computeInverse() const


Inherited from Group:

Public Methods

ovirtual void traverse(NodeVisitor& nv)
ovirtual bool addChild( Node* child )
ovirtual bool removeChild( Node* child )
ovirtual bool replaceChild( Node* origChild, Node* newChild )
oinline const int getNumChildren() const
oinline Node* getChild( const int i )
oinline const Node* getChild( const int i ) const
oinline bool containsNode( const Node* node ) const
oinline ChildList::iterator findNode( const Node* node )
oinline ChildList::const_iterator findNode( const Node* node ) const

Protected Fields

oChildList _children


Inherited from Node:

Public Methods

ovirtual Object* cloneType() const
ovirtual Object* clone(const CopyOp& copyop) const
ovirtual bool isSameKindAs(const Object* obj) const
ovirtual const char* className() const
ovirtual void accept(NodeVisitor& nv)
ovirtual void ascend(NodeVisitor& nv)
oinline void setName( const std::string& name )
oinline void setName( const char* name )
oinline const std::string& getName() const
oinline const ParentList& getParents() const
oinline ParentList getParents()
oinline Group* getParent(const int i)
oinline const Group* getParent(const int i) const
oinline const int getNumParents() const
ovoid setAppCallback(NodeCallback* nc)
oinline NodeCallback* getAppCallback()
oinline const NodeCallback* getAppCallback() const
oinline const int getNumChildrenRequiringAppTraversal() const
ovoid setCullingActive(const bool active)
oinline const bool getCullingActive() const
oinline const int getNumChildrenWithCullingDisabled() const
oinline void setUserData(osg::Referenced* obj)
oinline Referenced* getUserData()
oinline const Referenced* getUserData() const
oinline void setNodeMask(const NodeMask nm)
oinline const NodeMask getNodeMask() const
oinline const DescriptionList& getDescriptions() const
oinline DescriptionList& getDescriptions()
oinline const std::string& getDescription(const int i) const
oinline std::string& getDescription(const int i)
oinline const int getNumDescriptions() const
ovoid addDescription(const std::string& desc)
oinline void setStateSet(osg::StateSet* dstate)
oinline osg::StateSet* getStateSet()
oinline const osg::StateSet* getStateSet() const
oinline const BoundingSphere& getBound() const
ovoid dirtyBound()

Public Members

otypedef std::vector<Group*> ParentList
otypedef std::vector<std::string> DescriptionList

Protected Fields

omutable BoundingSphere _bsphere
omutable bool _bsphere_computed
ostd::string _name
oParentList _parents
oref_ptr<NodeCallback> _appCallback
oint _numChildrenRequiringAppTraversal
obool _cullingActive
oint _numChildrenWithCullingDisabled
oosg::ref_ptr<Referenced> _userData
oNodeMask _nodeMask
oDescriptionList _descriptions
oref_ptr<StateSet> _dstate

Protected Methods

ovoid addParent(osg::Group* node)
ovoid removeParent(osg::Group* node)
ovoid setNumChildrenRequiringAppTraversal(const int num)
ovoid setNumChildrenWithCullingDisabled(const int num)


Inherited from Object:


Inherited from Referenced:

Public Methods

oinline Referenced& operator = (Referenced&)
oinline void ref() const
oinline void unref() const
oinline const int referenceCount() const

Protected Fields

omutable int _refCount


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);.
o Transform()

o Transform(const Transform&, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
Copy constructor using CopyOp to manage deep vs shallow copy

o Transform(const Matrix& matix)

o META_Node(Transform)

oenum Type
Range of types that the Transform can be

o DYNAMIC

o STATIC

oinline void setType(Type type)
Set the Transform Type, which can be DYNAMIC - the Matrix value is updated during the main loop, or STATIC - the Matrix is constant throughout the life of the main loop. STATIC Transforms can be optimized away is some instances, which can improve performance so unless you plan to modify the Matrix explicitly set the Matrix to STATIC. The default value is DYNAMIC.

oinline const Type getType() const
Get the Transform Type

oinline void setMatrixMode(MatrixMode mode)
Set the matrix mode which tells traversers them how to treat this Transform - as Projection, View or Model transformation

oinline const MatrixMode getMatrixMode() const
Get the transform mode

oinline const bool isProjectionTransform() const
Does the tranform set up the projection matrix

oinline const bool isModelViewTransform() const
Does the tranform set up the modelview matrix

ostruct ComputeTransformCallback: public osg::Referenced
Callback attached to an Transform to specifiy how to compute the modelview or projection transformation for the transform below the Transform node

ovirtual const bool computeLocalToWorldMatrix(Matrix& matrix, const Transform* transform, NodeVisitor* nv) const = 0
Get the transformation matrix which moves from local coords to world coords

ovirtual const bool computeWorldToLocalMatrix(Matrix& matrix, const Transform* transform, NodeVisitor* nv) const = 0
Get the transformation matrix which moves from world coords to local coords

ovoid setComputeTransformCallback(ComputeTransformCallback* ctc)
Set the ComputerTransfromCallback which allows users to attach custom computation of the local transformation as seen by cull traversers and alike

oComputeTransformCallback* getComputeTransformCallback()
Get the non const ComputerTransfromCallback

oconst ComputeTransformCallback* getComputeTransformCallback() const
Get the const ComputerTransfromCallback

oinline 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

oinline 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

ovoid setMatrix(const Matrix& mat)
Set the transform's matrix

oinline const Matrix& getMatrix() const
Get the transform's matrix.

ovoid preMult(const Matrix& mat)
preMult transform

ovoid postMult(const Matrix& mat)
postMult transform

ovirtual ~Transform()

ovirtual 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.)

ovirtual const bool computeLocalToWorldMatrix(Matrix& matrix, NodeVisitor*) const

ovirtual const bool computeWorldToLocalMatrix(Matrix& matrix, NodeVisitor*) const

oinline void computeInverse() const

oType _type

oMatrixMode _mode

oref_ptr<ComputeTransformCallback> _computeTransformCallback

oref_ptr<Matrix> _matrix

omutable ref_ptr<Matrix> _inverse

omutable 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++.