Files
OpenSceneGraph/include/osg/Transform
Robert Osfield f848c54ba3 Made the following name changes to Matrix and Quat to clean them up and make
the functionality clear given the name.  This will break user code unfortunately
so please be away of the following mapping.

  osg::Matrix::makeTrans(..)?\026 -> osg::Matrix::makeTranslate(..)
  osg::Matrix::makeRot(..)?\026   -> osg::Matrix::makeRotate(..)
  osg::Matrix::trans(..)?\026     -> osg::Matrix::translate(..)

  osg::Quat::makeRot(..)?\026     -> osg::Quat::makeRotate(..)

Also updated the rest of the OSG distribution to use the new names, and
have removed the old deprecated Matrix methods too.
2001-12-12 20:29:10 +00:00

80 lines
2.3 KiB
Plaintext

//C++ header - Open Scene Graph - Copyright (C) 1998-2001 Robert Osfield
//Distributed under the terms of the GNU Library General Public License (LGPL)
//as published by the Free Software Foundation.
#ifndef OSG_TRANSFORM
#define OSG_TRANSFORM 1
#include <osg/Group>
#include <osg/Matrix>
namespace osg {
/** 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 trakerball functionality or for animation.
*/
class SG_EXPORT Transform : public Group
{
public :
Transform();
Transform(const Matrix& matix);
META_Node(Transform);
/** Range of type that the Transform can be.*/
enum Type
{
DYNAMIC,
STATIC
};
/** Set the Transform Type, which can be DYNAMIC - the Marix
* value is updated duing the main loop, or STATIC - the Matrix
* is constant throughut the life of the main loop. STATIC
* Transforms can be optimized away is some instances, which
* can improve performanc so unless you plan to modify the
* Matrix explicity set the Matrix to STATIC. The default
* value is DYNAMIC.*/
inline void setType(Type type) { _type = type; }
/** Get the Transform Type.*/
inline const Type getType() const { return _type; }
inline Matrix& getMatrix() { return *_matrix; }
inline const Matrix& getMatrix() const { return *_matrix; }
inline void setMatrix(const Matrix& mat )
{
(*_matrix) = mat;
dirtyBound();
}
/** preMult trasforms relative to the childrens coordinate system.*/
inline void preMult( const Matrix& mat )
{
(*_matrix) = mat * (*_matrix);
dirtyBound();
}
/** postMult trasforms relative to the parents coordinate system.*/
inline void postMult( const Matrix& mat )
{
(*_matrix) = (*_matrix) * mat;
dirtyBound();
}
protected :
virtual ~Transform();
virtual const bool computeBound() const;
Type _type;
ref_ptr<Matrix> _matrix;
};
};
#endif