|
|
|
|
Documentation |
|
Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages Search
NL3D::ITransformable Class ReferenceSomething which can be transformed in 3D space / animated.
More...
#include <transformable.h>
Inheritance diagram for NL3D::ITransformable:
List of all members.
Herited from IAnimatable |
enum | TAnimValues {
OwnerBit = IAnimatable::AnimValueLast,
PosValue,
RotEulerValue,
RotQuatValue,
ScaleValue,
PivotValue,
AnimValueLast
} |
| Added values. More...
|
virtual IAnimatedValue * | getValue (uint valueId) |
| From IAnimatable. More...
|
virtual const char * | getValueName (uint valueId) const |
| From IAnimatable. More...
|
virtual ITrack * | getDefaultTrack (uint valueId)=0 |
| From IAnimatable. Deriver must implement this. More...
|
virtual void | registerToChannelMixer (CChannelMixer *chanMixer, const std::string &prefix)=0 |
| From IAnimatable. Deriver must implement this (channels may be detail-ed or not). More...
|
Public Types |
enum | TTransformMode { DirectMatrix = 0,
RotEuler,
RotQuat,
TransformModeCount
} |
Public Methods |
| ITransformable () |
| Constructor. By default, RotQuat mode. More...
|
virtual | ~ITransformable () |
const CMatrix & | getMatrix () const |
| Get the matrix, compute her if necessary (work in all modes). More...
|
bool | compareMatrixDate (uint64 callerDate) const |
| Tells if the LocalMatrix is newer than what caller except. More...
|
uint64 | getMatrixDate () const |
| return the last date of computed matrix. More...
|
|
void | setTransformMode (TTransformMode mode, CMatrix::TRotOrder ro=CMatrix::ZXY) |
| Change the transform mode. Components or matrix are not reseted. More...
|
|
void | setPos (const CVector &pos) |
| Work only in Rot* mode(nlassert). More...
|
void | setPos (float x, float y, float z) |
| Work only in Rot* mode(nlassert). More...
|
void | setRotEuler (const CVector &rot) |
| Work only in RotEuler mode(nlassert). More...
|
void | setRotEuler (float rotX, float rotY, float rotZ) |
| Work only in RotEuler mode(nlassert). More...
|
void | setRotQuat (const CQuat &quat) |
| Work only in RotQuat mode (nlassert). More...
|
void | setScale (const CVector &scale) |
| Work only in Rot* mode (nlassert). More...
|
void | setScale (float scaleX, float scaleY, float scaleZ) |
| Work only in Rot* mode (nlassert). More...
|
void | setScale (float scale) |
| Work only in Rot* mode (nlassert). More...
|
void | setPivot (const CVector &pivot) |
| Work only in Rot* mode (nlassert). More...
|
void | setPivot (float x, float y, float z) |
| Work only in Rot* mode (nlassert). More...
|
void | setMatrix (const CMatrix &mat) |
| Work only in DirecTMatrix mode (nlassert). More...
|
|
TTransformMode | getTransformMode () |
| get the current transform mode. More...
|
CMatrix::TRotOrder | getRotOrder () |
| get the current rotorder (information vlaid only when RotEuler mode). More...
|
void | getPos (CVector &pos) |
| Work only in Rot* mode(nlassert). More...
|
void | getRotEuler (CVector &rot) |
| Work only in RotEuler mode(nlassert). More...
|
void | getRotQuat (CQuat &quat) |
| Work only in RotQuat mode (nlassert). More...
|
void | getScale (CVector &scale) |
| Work only in Rot* mode (nlassert). More...
|
void | getPivot (CVector &pivot) |
| Work only in Rot* mode (nlassert). More...
|
CVector | getPos () |
| Work only in Rot* mode(nlassert). More...
|
CVector | getRotEuler () |
| Work only in RotEuler mode(nlassert). More...
|
CQuat | getRotQuat () |
| Work only in RotQuat mode (nlassert). More...
|
CVector | getScale () |
| Work only in Rot* mode (nlassert). More...
|
CVector | getPivot () |
| Work only in Rot* mode (nlassert). More...
|
|
void | lookAt (const CVector &eye, const CVector &target, float roll=0.f) |
| Setup Matrix by the lookAt method. More...
|
Static Public Methods |
const char * | getPosValueName () |
const char * | getRotEulerValueName () |
const char * | getRotQuatValueName () |
const char * | getScaleValueName () |
const char * | getPivotValueName () |
Private Methods |
void | clearTransformFlags () const |
void | updateMatrix () const |
bool | needCompute () const |
| Tells if the matrix needs to be computed, ie, if data are modified. More...
|
Private Attributes |
CMatrix | _LocalMatrix |
TTransformMode | _Mode |
CMatrix::TRotOrder | _RotOrder |
uint64 | _LocalMatrixDate |
CAnimatedValueVector | _Pos |
CAnimatedValueVector | _RotEuler |
CAnimatedValueQuat | _RotQuat |
CAnimatedValueVector | _Scale |
CAnimatedValueVector | _Pivot |
Detailed Description
Something which can be transformed in 3D space / animated.
By default Transformmode is RotQuat. -
Author:
-
Lionel Berenguier , Nevrax France
-
Date:
-
2001
Definition at line 54 of file transformable.h.
Member Enumeration Documentation
enum NL3D::ITransformable::TAnimValues
|
|
enum NL3D::ITransformable::TTransformMode
|
|
Constructor & Destructor Documentation
NL3D::ITransformable::ITransformable |
( |
|
) |
|
|
virtual NL3D::ITransformable::~ITransformable |
( |
|
) |
[inline, virtual] |
|
Member Function Documentation
void NL3D::ITransformable::clearTransformFlags |
( |
|
) |
const [private] |
|
bool NL3D::ITransformable::compareMatrixDate |
( |
uint64 |
callerDate |
) |
const [inline] |
|
|
Tells if the LocalMatrix is newer than what caller except.
This return true either if the matrix components (pos/rot etc...) are touched, or if matrix is newer than caller date.
Definition at line 82 of file transformable.h.
References _LocalMatrixDate, and needCompute. |
virtual ITrack* NL3D::ITransformable::getDefaultTrack |
( |
uint |
valueId |
) |
[pure virtual] |
|
const CMatrix& NL3D::ITransformable::getMatrix |
( |
|
) |
const [inline] |
|
uint64 NL3D::ITransformable::getMatrixDate |
( |
|
) |
const [inline] |
|
CVector NL3D::ITransformable::getPivot |
( |
|
) |
[inline] |
|
void NL3D::ITransformable::getPivot |
( |
CVector & |
pivot |
) |
[inline] |
|
const char * NL3D::ITransformable::getPivotValueName |
( |
|
) |
[static] |
|
CVector NL3D::ITransformable::getPos |
( |
void |
|
) |
[inline] |
|
void NL3D::ITransformable::getPos |
( |
CVector & |
pos |
) |
[inline] |
|
const char * NL3D::ITransformable::getPosValueName |
( |
|
) |
[static] |
|
CVector NL3D::ITransformable::getRotEuler |
( |
|
) |
[inline] |
|
void NL3D::ITransformable::getRotEuler |
( |
CVector & |
rot |
) |
[inline] |
|
const char * NL3D::ITransformable::getRotEulerValueName |
( |
|
) |
[static] |
|
CMatrix::TRotOrder NL3D::ITransformable::getRotOrder |
( |
|
) |
[inline] |
|
|
get the current rotorder (information vlaid only when RotEuler mode).
Definition at line 194 of file transformable.h.
References _RotOrder. |
CQuat NL3D::ITransformable::getRotQuat |
( |
|
) |
[inline] |
|
void NL3D::ITransformable::getRotQuat |
( |
CQuat & |
quat |
) |
[inline] |
|
const char * NL3D::ITransformable::getRotQuatValueName |
( |
|
) |
[static] |
|
CVector NL3D::ITransformable::getScale |
( |
void |
|
) |
[inline] |
|
void NL3D::ITransformable::getScale |
( |
CVector & |
scale |
) |
[inline] |
|
const char * NL3D::ITransformable::getScaleValueName |
( |
|
) |
[static] |
|
|
From IAnimatable.
Implements NL3D::IAnimatable.
Reimplemented in NL3D::CCamera.
Definition at line 58 of file transformable.cpp.
References _Pivot, _Pos, _RotEuler, _RotQuat, _Scale, nlstop, PivotValue, PosValue, RotEulerValue, RotQuatValue, and ScaleValue. |
const char * NL3D::ITransformable::getValueName |
( |
uint |
valueId |
) |
const [virtual] |
|
|
From IAnimatable.
Implements NL3D::IAnimatable.
Reimplemented in NL3D::CCamera.
Definition at line 77 of file transformable.cpp.
References getPivotValueName, getPosValueName, getRotEulerValueName, getRotQuatValueName, getScaleValueName, nlstop, PivotValue, PosValue, RotEulerValue, RotQuatValue, and ScaleValue. |
void NL3D::ITransformable::lookAt |
( |
const CVector & |
eye, |
|
|
const CVector & |
target, |
|
|
float |
roll = 0.f |
|
) |
|
|
bool NL3D::ITransformable::needCompute |
( |
|
) |
const [inline, private] |
|
virtual void NL3D::ITransformable::registerToChannelMixer |
( |
CChannelMixer * |
chanMixer, |
|
|
const std::string & |
prefix |
|
) |
[pure virtual] |
|
void NL3D::ITransformable::setMatrix |
( |
const CMatrix & |
mat |
) |
[inline] |
|
void NL3D::ITransformable::setPivot |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
z |
|
) |
[inline] |
|
void NL3D::ITransformable::setPivot |
( |
const CVector & |
pivot |
) |
[inline] |
|
void NL3D::ITransformable::setPos |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
z |
|
) |
[inline] |
|
void NL3D::ITransformable::setPos |
( |
const CVector & |
pos |
) |
[inline] |
|
void NL3D::ITransformable::setRotEuler |
( |
float |
rotX, |
|
|
float |
rotY, |
|
|
float |
rotZ |
|
) |
[inline] |
|
void NL3D::ITransformable::setRotEuler |
( |
const CVector & |
rot |
) |
[inline] |
|
void NL3D::ITransformable::setRotQuat |
( |
const CQuat & |
quat |
) |
[inline] |
|
void NL3D::ITransformable::setScale |
( |
float |
scale |
) |
[inline] |
|
void NL3D::ITransformable::setScale |
( |
float |
scaleX, |
|
|
float |
scaleY, |
|
|
float |
scaleZ |
|
) |
[inline] |
|
void NL3D::ITransformable::setScale |
( |
const CVector & |
scale |
) |
[inline] |
|
void NL3D::ITransformable::setTransformMode |
( |
TTransformMode |
mode, |
|
|
CMatrix::TRotOrder |
ro = CMatrix::ZXY |
|
) |
[inline] |
|
void NL3D::ITransformable::updateMatrix |
( |
|
) |
const [private] |
|
|
Definition at line 141 of file transformable.cpp.
References _LocalMatrix, _LocalMatrixDate, _Mode, _Pivot, _Pos, _RotEuler, _RotOrder, _RotQuat, _Scale, clearTransformFlags, needCompute, and RotEuler.
Referenced by getMatrix, and getMatrixDate. |
Member Data Documentation
CMatrix NL3D::ITransformable::_LocalMatrix [private]
|
|
uint64 NL3D::ITransformable::_LocalMatrixDate [private]
|
|
|
Definition at line 316 of file transformable.h.
Referenced by getPivot, getPos, getRotEuler, getRotQuat, getScale, getTransformMode, ITransformable, lookAt, needCompute, setMatrix, setPivot, setPos, setRotEuler, setRotQuat, setScale, setTransformMode, and updateMatrix. |
CMatrix::TRotOrder NL3D::ITransformable::_RotOrder [private]
|
|
The documentation for this class was generated from the following files:
|
|