NL3D::UBone Class Reference

#include <u_bone.h>

Inheritance diagram for NL3D::UBone:

NL3D::UTransformable NL3D::CBoneUser

Detailed Description

Base interface for manipulating Bones. see UTransformable. A bone comes from a USkeleton.
Author:
Lionel Berenguier

Nevrax France

Date:
2001

Definition at line 44 of file u_bone.h.

Public Types

enum  TTransformMode { DirectMatrix = 0, RotEuler, RotQuat, TransformModeCount }

Public Member Functions

Special feature
virtual const CMatrixgetLastWorldMatrixComputed () const=0

Protected Member Functions

Object
 UBone ()
 Constructor. By default, RotQuat mode.

virtual ~UBone ()
 Constructor. By default, RotQuat mode.


Member Enumeration Documentation

enum NL3D::UTransformable::TTransformMode [inherited]
 

Enumeration values:
DirectMatrix 
RotEuler 
RotQuat 
TransformModeCount 

Definition at line 66 of file u_transformable.h.

00067         {
00068                 DirectMatrix=0,         // DirectMatrixMode .
00069                 RotEuler,                       // Matrix is computed from sperated composantes, with euler rotation.
00070                 RotQuat,                        // Matrix is computed from sperated composantes, with quat rotation (default).
00071 
00072                 TransformModeCount
00073         };


Constructor & Destructor Documentation

NL3D::UBone::UBone  )  [inline, protected]
 

Constructor. By default, RotQuat mode.

Definition at line 51 of file u_bone.h.

00051 {}

virtual NL3D::UBone::~UBone  )  [inline, protected, virtual]
 

Constructor. By default, RotQuat mode.

Definition at line 52 of file u_bone.h.

00052 {}


Member Function Documentation

virtual const CMatrix& NL3D::UBone::getLastWorldMatrixComputed  )  const [pure virtual]
 

get the last world matrix computed in last render(). NB: this WM is computed in last render() only if the object was not clipped. So use it wisely.

NB: this WM may also not be computed in last render() for "Lod skeleton" reason. ie if the skeleton is too far, the engine may not compute a bone (for speed). To avoid problem, you should ask the artist what bones have such a scheme, or you could stickObject() a dummy (eg a UTransform) onto this bone, because in this case, this bone will always be computed.

Implemented in NL3D::CBoneUser.

virtual const CMatrix& NL3D::UTransformable::getMatrix  )  const [pure virtual, inherited]
 

Get the matrix, compute her if necessary (work in all modes).

Implemented in NL3D::CTransformableUser.

Referenced by NL3D::CDriverUser::setMatrixMode3D().

virtual CVector NL3D::UTransformable::getPivot  )  [pure virtual, inherited]
 

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

virtual void NL3D::UTransformable::getPivot CVector pivot  )  [pure virtual, inherited]
 

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

const char * NL3D::UTransformable::getPivotValueName  )  [static, inherited]
 

Definition at line 55 of file transformable_user.cpp.

References NL3D_MEM_TRANSFORMABLE.

00056 {
00057         NL3D_MEM_TRANSFORMABLE
00058         return ITransformable::getPivotValueName();
00059 }

virtual CVector NL3D::UTransformable::getPos  )  [pure virtual, inherited]
 

Work only in Rot* mode(nlassert).

Implemented in NL3D::CTransformableUser.

virtual void NL3D::UTransformable::getPos CVector pos  )  [pure virtual, inherited]
 

Work only in Rot* mode(nlassert).

Implemented in NL3D::CTransformableUser.

const char * NL3D::UTransformable::getPosValueName  )  [static, inherited]
 

Definition at line 35 of file transformable_user.cpp.

References NL3D_MEM_TRANSFORMABLE.

00036 {
00037         NL3D_MEM_TRANSFORMABLE
00038         return ITransformable::getPosValueName ();
00039 }

virtual CVector NL3D::UTransformable::getRotEuler  )  [pure virtual, inherited]
 

Work only in RotEuler mode(nlassert).

Implemented in NL3D::CTransformableUser.

virtual void NL3D::UTransformable::getRotEuler CVector rot  )  [pure virtual, inherited]
 

Work only in RotEuler mode(nlassert).

Implemented in NL3D::CTransformableUser.

const char * NL3D::UTransformable::getRotEulerValueName  )  [static, inherited]
 

Definition at line 40 of file transformable_user.cpp.

References NL3D_MEM_TRANSFORMABLE.

00041 {
00042         NL3D_MEM_TRANSFORMABLE
00043         return ITransformable::getRotEulerValueName();
00044 }

virtual CMatrix::TRotOrder NL3D::UTransformable::getRotOrder  )  [pure virtual, inherited]
 

get the current rotorder (information vlaid only when RotEuler mode).

Implemented in NL3D::CTransformableUser.

virtual CQuat NL3D::UTransformable::getRotQuat  )  [pure virtual, inherited]
 

Work only in RotQuat mode (nlassert).

Implemented in NL3D::CTransformableUser.

virtual void NL3D::UTransformable::getRotQuat CQuat quat  )  [pure virtual, inherited]
 

Work only in RotQuat mode (nlassert).

Implemented in NL3D::CTransformableUser.

const char * NL3D::UTransformable::getRotQuatValueName  )  [static, inherited]
 

Definition at line 45 of file transformable_user.cpp.

References NL3D_MEM_TRANSFORMABLE.

00046 {
00047         NL3D_MEM_TRANSFORMABLE
00048         return ITransformable::getRotQuatValueName();
00049 }

virtual CVector NL3D::UTransformable::getScale  )  [pure virtual, inherited]
 

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

virtual void NL3D::UTransformable::getScale CVector scale  )  [pure virtual, inherited]
 

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

const char * NL3D::UTransformable::getScaleValueName  )  [static, inherited]
 

Definition at line 50 of file transformable_user.cpp.

References NL3D_MEM_TRANSFORMABLE.

00051 {
00052         NL3D_MEM_TRANSFORMABLE
00053         return ITransformable::getScaleValueName();
00054 }

virtual TTransformMode NL3D::UTransformable::getTransformMode  )  [pure virtual, inherited]
 

get the current transform mode.

Implemented in NL3D::CTransformableUser.

virtual void NL3D::UTransformable::lookAt const CVector eye,
const CVector target,
float  roll = 0.f
[pure virtual, inherited]
 

Setup Matrix by the lookAt method. Work only in DirectMatrix mode and RotQuat mode (not euler...).

Parameters:
eye is the coordinate of the object.
target is the point the object look at.
roll is the roll angle in radian along the object's Y axis.

Implemented in NL3D::CTransformableUser.

virtual void NL3D::UTransformable::setMatrix const CMatrix mat  )  [pure virtual, inherited]
 

Work only in DirecTMatrix mode (nlassert).

Implemented in NL3D::CTransformableUser.

void NL3D::UTransformable::setPivot float  px,
float  py,
float  pz
[inline, inherited]
 

Work only in Rot* mode (nlassert).

Definition at line 108 of file u_transformable.h.

References NL3D::UTransformable::setPivot().

00108 {setPivot(CVector(px, py, pz));}

virtual void NL3D::UTransformable::setPivot const CVector pivot  )  [pure virtual, inherited]
 

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

Referenced by NL3D::UTransformable::setPivot().

void NL3D::UTransformable::setPos float  px,
float  py,
float  pz
[inline, inherited]
 

Work only in Rot* mode(nlassert).

Definition at line 86 of file u_transformable.h.

References NL3D::UTransformable::setPos().

00086 {setPos(CVector(px, py, pz));}

virtual void NL3D::UTransformable::setPos const CVector pos  )  [pure virtual, inherited]
 

Work only in Rot* mode(nlassert).

Implemented in NL3D::CTransformableUser.

Referenced by NL3D::UTransformable::setPos().

void NL3D::UTransformable::setRotEuler float  rx,
float  ry,
float  rz
[inline, inherited]
 

Work only in RotEuler mode(nlassert).

Definition at line 90 of file u_transformable.h.

References NL3D::UTransformable::setRotEuler().

00090 {setRotEuler(CVector(rx, ry, rz));}

virtual void NL3D::UTransformable::setRotEuler const CVector rot  )  [pure virtual, inherited]
 

Work only in RotEuler mode(nlassert).

Implemented in NL3D::CTransformableUser.

Referenced by NL3D::UTransformable::setRotEuler().

virtual void NL3D::UTransformable::setRotQuat const CVector jdir,
const CVector vup
[pure virtual, inherited]
 

Work only in RotQuat mode (nlassert). Build a quaternion from a forward direction (a J vector). the roll is determined with help of the vector up vup... vectors do not need to be noramlized.

Implemented in NL3D::CTransformableUser.

virtual void NL3D::UTransformable::setRotQuat const CVector jdir  )  [pure virtual, inherited]
 

Work only in RotQuat mode (nlassert). Build a quaternion from a forward direction (a J vector). there is no roll... jdir do not need to be noramlized.

Implemented in NL3D::CTransformableUser.

virtual void NL3D::UTransformable::setRotQuat const CQuat quat  )  [pure virtual, inherited]
 

Work only in RotQuat mode (nlassert).

Implemented in NL3D::CTransformableUser.

void NL3D::UTransformable::setScale float  sx,
float  sy,
float  sz
[inline, inherited]
 

Work only in Rot* mode (nlassert).

Definition at line 104 of file u_transformable.h.

References NL3D::UTransformable::setScale().

00104 {setScale(CVector(sx, sy, sz));}

virtual void NL3D::UTransformable::setScale const CVector scale  )  [pure virtual, inherited]
 

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

Referenced by NL3D::UTransformable::setScale().

virtual void NL3D::UTransformable::setTransformMode TTransformMode  mode,
CMatrix::TRotOrder  ro = CMatrix::ZXY
[pure virtual, inherited]
 

Change the transform mode. Components or matrix are not reseted.

Implemented in NL3D::CTransformableUser.


The documentation for this class was generated from the following file:
Generated on Tue Mar 16 08:42:39 2004 for NeL by doxygen 1.3.6