openscenegraph
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
osg::AutoTransform Class Reference
Inheritance diagram for osg::AutoTransform:
osg::Transform osg::Group osg::Node osg::Object osg::Referenced

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
virtual osg::Objectclone (const osg::CopyOp &copyop) const
virtual bool isSameKindAs (const osg::Object *obj) const
virtual const char * className () const
virtual const char * libraryName () const
virtual void accept (NodeVisitor &nv)
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)
const Vec3getAxis () const
void setNormal (const Vec3 &normal)
const Vec3getNormal () const
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

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 const AutoTransform* osg::AutoTransform::asAutoTransform ( ) const [inline, virtual]
virtual AutoTransform* osg::AutoTransform::asAutoTransform ( ) [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: