OpenSceneGraph  3.0.1
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
osg::AutoTransform Class Reference

AutoTransform is a derived form of Transform that automatically scales or rotates to keep its children aligned with screen coordinates. More...

Inheritance diagram for osg::AutoTransform:
Inheritance graph
[legend]

List of all members.

Public Types

enum  AutoRotateMode { NO_ROTATION, ROTATE_TO_SCREEN, ROTATE_TO_CAMERA, ROTATE_TO_AXIS }

Public Member Functions

 AutoTransform ()
 AutoTransform (const AutoTransform &pat, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual osg::ObjectcloneType () const
 clone an object of the same type as the node.
virtual osg::Objectclone (const osg::CopyOp &copyop) const
 return a clone of a node, with Object* return type.
virtual bool isSameKindAs (const osg::Object *obj) const
 return true if this and obj are of the same kind of object.
virtual const char * className () const
 return the name of the node's class type.
virtual const char * libraryName () const
 return the name of the node's library.
virtual void accept (NodeVisitor &nv)
 Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.
virtual AutoTransformasAutoTransform ()
virtual const AutoTransformasAutoTransform () const
void setPosition (const Vec3d &pos)
const Vec3dgetPosition () const
void setRotation (const Quat &quat)
const QuatgetRotation () const
void setScale (double scale)
void setScale (const Vec3d &scale)
const Vec3dgetScale () const
void setMinimumScale (double minimumScale)
double getMinimumScale () const
void setMaximumScale (double maximumScale)
double getMaximumScale () const
void setPivotPoint (const Vec3d &pivot)
const Vec3dgetPivotPoint () const
void setAutoUpdateEyeMovementTolerance (float tolerance)
float getAutoUpdateEyeMovementTolerance () const
void setAutoRotateMode (AutoRotateMode mode)
AutoRotateMode getAutoRotateMode () const
void setAxis (const Vec3 &axis)
 Set the rotation axis for the AutoTransform's child nodes.
const Vec3getAxis () const
 Get the rotation axis.
void setNormal (const Vec3 &normal)
 This normal defines child Nodes' front face direction when unrotated.
const Vec3getNormal () const
 Get the front face direction normal.
void setAutoScaleToScreen (bool autoScaleToScreen)
bool getAutoScaleToScreen () const
void setAutoScaleTransitionWidthRatio (float ratio)
float getAutoScaleTransitionWidthRatio () const
virtual bool computeLocalToWorldMatrix (Matrix &matrix, NodeVisitor *nv) const
virtual bool computeWorldToLocalMatrix (Matrix &matrix, NodeVisitor *nv) const
virtual BoundingSphere computeBound () const
 Overrides Group's computeBound.

Protected Types

enum  AxisAligned { AXIAL_ROT_X_AXIS = ROTATE_TO_AXIS+1, AXIAL_ROT_Y_AXIS, AXIAL_ROT_Z_AXIS, CACHE_DIRTY }

Protected Member Functions

virtual ~AutoTransform ()
void computeMatrix () const
void updateCache ()

Protected Attributes

Vec3d _position
Vec3d _pivotPoint
double _autoUpdateEyeMovementTolerance
AutoRotateMode _autoRotateMode
bool _autoScaleToScreen
Quat _rotation
Vec3d _scale
bool _firstTimeToInitEyePoint
osg::Vec3 _previousEyePoint
osg::Vec3 _previousLocalUp
Viewport::value_type _previousWidth
Viewport::value_type _previousHeight
osg::Matrixd _previousProjection
osg::Vec3d _previousPosition
double _minimumScale
double _maximumScale
double _autoScaleTransitionWidthRatio
bool _matrixDirty
osg::Matrixd _cachedMatrix
Vec3 _axis
Vec3 _normal
int _cachedMode
Vec3 _side

Detailed Description

AutoTransform is a derived form of Transform that automatically scales or rotates to keep its children aligned with screen coordinates.


Member Enumeration Documentation

Enumerator:
NO_ROTATION 
ROTATE_TO_SCREEN 
ROTATE_TO_CAMERA 
ROTATE_TO_AXIS 
Enumerator:
AXIAL_ROT_X_AXIS 
AXIAL_ROT_Y_AXIS 
AXIAL_ROT_Z_AXIS 
CACHE_DIRTY 

Constructor & Destructor Documentation

osg::AutoTransform::AutoTransform ( )
osg::AutoTransform::AutoTransform ( const AutoTransform pat,
const CopyOp copyop = CopyOp::SHALLOW_COPY 
)
virtual osg::AutoTransform::~AutoTransform ( ) [inline, protected, virtual]

Member Function Documentation

virtual void osg::AutoTransform::accept ( NodeVisitor nv) [virtual]

Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.

Reimplemented from osg::Node.

virtual AutoTransform* osg::AutoTransform::asAutoTransform ( ) [inline, virtual]
virtual const AutoTransform* osg::AutoTransform::asAutoTransform ( ) const [inline, virtual]
virtual const char* osg::AutoTransform::className ( ) const [inline, virtual]

return the name of the node's class type.

Reimplemented from osg::Node.

virtual osg::Object* osg::AutoTransform::clone ( const osg::CopyOp copyop) const [inline, virtual]

return a clone of a node, with Object* return type.

Reimplemented from osg::Node.

virtual osg::Object* osg::AutoTransform::cloneType ( ) const [inline, virtual]

clone an object of the same type as the node.

Reimplemented from osg::Node.

virtual BoundingSphere osg::AutoTransform::computeBound ( ) const [virtual]

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

Reimplemented from osg::Transform.

virtual bool osg::AutoTransform::computeLocalToWorldMatrix ( Matrix matrix,
NodeVisitor nv 
) const [virtual]

Reimplemented from osg::Transform.

void osg::AutoTransform::computeMatrix ( ) const [protected]
virtual bool osg::AutoTransform::computeWorldToLocalMatrix ( Matrix matrix,
NodeVisitor nv 
) const [virtual]

Reimplemented from osg::Transform.

AutoRotateMode osg::AutoTransform::getAutoRotateMode ( ) const [inline]
bool osg::AutoTransform::getAutoScaleToScreen ( ) const [inline]
float osg::AutoTransform::getAutoScaleTransitionWidthRatio ( ) const [inline]
float osg::AutoTransform::getAutoUpdateEyeMovementTolerance ( ) const [inline]
const Vec3& osg::AutoTransform::getAxis ( ) const [inline]

Get the rotation axis.

double osg::AutoTransform::getMaximumScale ( ) const [inline]
double osg::AutoTransform::getMinimumScale ( ) const [inline]
const Vec3& osg::AutoTransform::getNormal ( ) const [inline]

Get the front face direction normal.

const Vec3d& osg::AutoTransform::getPivotPoint ( ) const [inline]
const Vec3d& osg::AutoTransform::getPosition ( ) const [inline]
const Quat& osg::AutoTransform::getRotation ( ) const [inline]
const Vec3d& osg::AutoTransform::getScale ( ) const [inline]
virtual bool osg::AutoTransform::isSameKindAs ( const osg::Object obj) const [inline, virtual]

return true if this and obj are of the same kind of object.

Reimplemented from osg::Node.

References NULL.

virtual const char* osg::AutoTransform::libraryName ( ) const [inline, virtual]

return the name of the node's library.

Reimplemented from osg::Node.

void osg::AutoTransform::setAutoRotateMode ( AutoRotateMode  mode)
void osg::AutoTransform::setAutoScaleToScreen ( bool  autoScaleToScreen) [inline]
void osg::AutoTransform::setAutoScaleTransitionWidthRatio ( float  ratio) [inline]
void osg::AutoTransform::setAutoUpdateEyeMovementTolerance ( float  tolerance) [inline]
void osg::AutoTransform::setAxis ( const Vec3 axis)

Set the rotation axis for the AutoTransform's child nodes.

Only utilized when _autoRotateMode==ROTATE_TO_AXIS.

void osg::AutoTransform::setMaximumScale ( double  maximumScale) [inline]
void osg::AutoTransform::setMinimumScale ( double  minimumScale) [inline]
void osg::AutoTransform::setNormal ( const Vec3 normal)

This normal defines child Nodes' front face direction when unrotated.

void osg::AutoTransform::setPivotPoint ( const Vec3d pivot) [inline]
void osg::AutoTransform::setPosition ( const Vec3d pos) [inline]
void osg::AutoTransform::setRotation ( const Quat quat) [inline]
void osg::AutoTransform::setScale ( double  scale) [inline]

References setScale().

Referenced by setScale().

void osg::AutoTransform::setScale ( const Vec3d scale)
void osg::AutoTransform::updateCache ( ) [protected]

Member Data Documentation

bool osg::AutoTransform::_matrixDirty [mutable, protected]
Quat osg::AutoTransform::_rotation [mutable, protected]
Vec3d osg::AutoTransform::_scale [mutable, protected]

The documentation for this class was generated from the following file:

osg logo
Generated at Mon Oct 3 2011 12:39:41 for the OpenSceneGraph by doxygen 1.7.5.