NL3D::UTransformable Class Reference

#include <u_transformable.h>

Inheritance diagram for NL3D::UTransformable:

NL3D::CTransformableUser NL3D::UBone NL3D::UTransform NL3D::CBoneUser NL3D::CTransformUser NL3D::CBoneUser NL3D::CTransformUser NL3D::UCamera NL3D::UInstance NL3D::UPointLight NL3D::USkeleton

Detailed Description

Base interface for manipulating Movable Objects: camera, bones, lights, instances etc... By default Transformmode is RotQuat.
Author:
Lionel Berenguier

Nevrax France

Date:
2001

Definition at line 51 of file u_transformable.h.

Public Types

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

Protected Member Functions

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

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


Member Enumeration Documentation

enum NL3D::UTransformable::TTransformMode
 

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::UTransformable::UTransformable  )  [inline, protected]
 

Constructor. By default, RotQuat mode.

Definition at line 58 of file u_transformable.h.

00058 {}

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

Constructor. By default, RotQuat mode.

Definition at line 59 of file u_transformable.h.

00059 {}


Member Function Documentation

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

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]
 

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

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

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

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

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]
 

Work only in Rot* mode(nlassert).

Implemented in NL3D::CTransformableUser.

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

Work only in Rot* mode(nlassert).

Implemented in NL3D::CTransformableUser.

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

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]
 

Work only in RotEuler mode(nlassert).

Implemented in NL3D::CTransformableUser.

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

Work only in RotEuler mode(nlassert).

Implemented in NL3D::CTransformableUser.

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

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]
 

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

Implemented in NL3D::CTransformableUser.

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

Work only in RotQuat mode (nlassert).

Implemented in NL3D::CTransformableUser.

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

Work only in RotQuat mode (nlassert).

Implemented in NL3D::CTransformableUser.

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

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]
 

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

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

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

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

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]
 

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]
 

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]
 

Work only in DirecTMatrix mode (nlassert).

Implemented in NL3D::CTransformableUser.

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

Work only in Rot* mode (nlassert).

Definition at line 108 of file u_transformable.h.

References setPivot().

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

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

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

Referenced by setPivot().

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

Work only in Rot* mode(nlassert).

Definition at line 86 of file u_transformable.h.

References setPos().

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

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

Work only in Rot* mode(nlassert).

Implemented in NL3D::CTransformableUser.

Referenced by setPos().

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

Work only in RotEuler mode(nlassert).

Definition at line 90 of file u_transformable.h.

References setRotEuler().

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

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

Work only in RotEuler mode(nlassert).

Implemented in NL3D::CTransformableUser.

Referenced by setRotEuler().

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

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]
 

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]
 

Work only in RotQuat mode (nlassert).

Implemented in NL3D::CTransformableUser.

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

Work only in Rot* mode (nlassert).

Definition at line 104 of file u_transformable.h.

References setScale().

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

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

Work only in Rot* mode (nlassert).

Implemented in NL3D::CTransformableUser.

Referenced by setScale().

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

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

Implemented in NL3D::CTransformableUser.


The documentation for this class was generated from the following files:
Generated on Tue Mar 16 08:53:20 2004 for NeL by doxygen 1.3.6