#include <bone_user.h>
Inheritance diagram for NL3D::CBoneUser:
Nevrax France
Definition at line 46 of file bone_user.h.
Public Types | |
enum | TTransformMode { DirectMatrix = 0, RotEuler, RotQuat, TransformModeCount } |
Public Member Functions | |
Object | |
CBoneUser (CBone *bone) | |
Give a CBone. CBoneUser DO NOT owns it. | |
virtual | ~CBoneUser () |
Give a CBone. CBoneUser DO NOT owns it. | |
Special feature | |
virtual const CMatrix & | getLastWorldMatrixComputed () const |
Protected Attributes | |
ITransformable * | _Transformable |
|
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 }; |
|
Give a CBone. CBoneUser DO NOT owns it.
Definition at line 55 of file bone_user.h. References NL3D_MEM_BONES.
00055 : CTransformableUser( static_cast<ITransformable*>(bone) ) 00056 { 00057 // do nothing. 00058 NL3D_MEM_BONES 00059 } |
|
Give a CBone. CBoneUser DO NOT owns it.
Definition at line 60 of file bone_user.h. References NL3D_MEM_BONES.
00061 { 00062 // do nothing. 00063 NL3D_MEM_BONES 00064 } |
|
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. Implements NL3D::UBone. Definition at line 70 of file bone_user.h. References NL3D_MEM_BONES.
00071 { 00072 NL3D_MEM_BONES 00073 00074 return static_cast<CBone*>(_Transformable)->getWorldMatrix(); 00075 } |
|
Get the matrix, compute her if necessary (work in all modes).
Implements NL3D::UTransformable. Definition at line 81 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getMatrix(), and NL3D_MEM_TRANSFORMABLE.
00082 { 00083 NL3D_MEM_TRANSFORMABLE 00084 return _Transformable->getMatrix(); 00085 } |
|
Get the matrix, compute her if necessary (work in all modes).
Implemented in NL3D::CTransformableUser. Referenced by NL3D::CDriverUser::setMatrixMode3D(). |
|
Work only in Rot* mode (nlassert).
Implements NL3D::UTransformable. Definition at line 195 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getPivot(), and NL3D_MEM_TRANSFORMABLE.
00196 { 00197 NL3D_MEM_TRANSFORMABLE 00198 return _Transformable->getPivot(); 00199 } |
|
Work only in Rot* mode (nlassert).
Implements NL3D::UTransformable. Definition at line 169 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getPivot(), and NL3D_MEM_TRANSFORMABLE.
00170 { 00171 NL3D_MEM_TRANSFORMABLE 00172 _Transformable->getPivot(pivot); 00173 } |
|
Work only in Rot* mode (nlassert).
Implemented in NL3D::CTransformableUser. |
|
Work only in Rot* mode (nlassert).
Implemented in NL3D::CTransformableUser. |
|
Definition at line 55 of file transformable_user.cpp. References NL3D_MEM_TRANSFORMABLE.
00056 { 00057 NL3D_MEM_TRANSFORMABLE 00058 return ITransformable::getPivotValueName(); 00059 } |
|
Work only in Rot* mode(nlassert).
Implements NL3D::UTransformable. Definition at line 175 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getPos(), and NL3D_MEM_TRANSFORMABLE. Referenced by NL3D::CInstanceUser::startAsyncTextureLoading().
00176 { 00177 NL3D_MEM_TRANSFORMABLE 00178 return _Transformable->getPos(); 00179 } |
|
Work only in Rot* mode(nlassert).
Implements NL3D::UTransformable. Definition at line 149 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getPos(), and NL3D_MEM_TRANSFORMABLE.
00150 { 00151 NL3D_MEM_TRANSFORMABLE 00152 _Transformable->getPos(pos); 00153 } |
|
Work only in Rot* mode(nlassert).
Implemented in NL3D::CTransformableUser. |
|
Work only in Rot* mode(nlassert).
Implemented in NL3D::CTransformableUser. |
|
Definition at line 35 of file transformable_user.cpp. References NL3D_MEM_TRANSFORMABLE.
00036 { 00037 NL3D_MEM_TRANSFORMABLE 00038 return ITransformable::getPosValueName (); 00039 } |
|
Work only in RotEuler mode(nlassert).
Implements NL3D::UTransformable. Definition at line 180 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getRotEuler(), and NL3D_MEM_TRANSFORMABLE.
00181 { 00182 NL3D_MEM_TRANSFORMABLE 00183 return _Transformable->getRotEuler(); 00184 } |
|
Work only in RotEuler mode(nlassert).
Implements NL3D::UTransformable. Definition at line 154 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getRotEuler(), and NL3D_MEM_TRANSFORMABLE.
00155 { 00156 NL3D_MEM_TRANSFORMABLE 00157 _Transformable->getRotEuler(rot); 00158 } |
|
Work only in RotEuler mode(nlassert).
Implemented in NL3D::CTransformableUser. |
|
Work only in RotEuler mode(nlassert).
Implemented in NL3D::CTransformableUser. |
|
Definition at line 40 of file transformable_user.cpp. References NL3D_MEM_TRANSFORMABLE.
00041 { 00042 NL3D_MEM_TRANSFORMABLE 00043 return ITransformable::getRotEulerValueName(); 00044 } |
|
get the current rotorder (information vlaid only when RotEuler mode).
Implements NL3D::UTransformable. Definition at line 143 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getRotOrder(), and NL3D_MEM_TRANSFORMABLE.
00144 { 00145 NL3D_MEM_TRANSFORMABLE 00146 return _Transformable->getRotOrder(); 00147 } |
|
get the current rotorder (information vlaid only when RotEuler mode).
Implemented in NL3D::CTransformableUser. |
|
Work only in RotQuat mode (nlassert).
Implements NL3D::UTransformable. Definition at line 185 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getRotQuat(), and NL3D_MEM_TRANSFORMABLE.
00186 { 00187 NL3D_MEM_TRANSFORMABLE 00188 return _Transformable->getRotQuat(); 00189 } |
|
Work only in RotQuat mode (nlassert).
Implements NL3D::UTransformable. Definition at line 159 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getRotQuat(), and NL3D_MEM_TRANSFORMABLE.
00160 { 00161 NL3D_MEM_TRANSFORMABLE 00162 _Transformable->getRotQuat(quat); 00163 } |
|
Work only in RotQuat mode (nlassert).
Implemented in NL3D::CTransformableUser. |
|
Work only in RotQuat mode (nlassert).
Implemented in NL3D::CTransformableUser. |
|
Definition at line 45 of file transformable_user.cpp. References NL3D_MEM_TRANSFORMABLE.
00046 { 00047 NL3D_MEM_TRANSFORMABLE 00048 return ITransformable::getRotQuatValueName(); 00049 } |
|
Work only in Rot* mode (nlassert).
Implements NL3D::UTransformable. Definition at line 190 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getScale(), and NL3D_MEM_TRANSFORMABLE.
00191 { 00192 NL3D_MEM_TRANSFORMABLE 00193 return _Transformable->getScale(); 00194 } |
|
Work only in Rot* mode (nlassert).
Implements NL3D::UTransformable. Definition at line 164 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getScale(), and NL3D_MEM_TRANSFORMABLE.
00165 { 00166 NL3D_MEM_TRANSFORMABLE 00167 _Transformable->getScale(scale); 00168 } |
|
Work only in Rot* mode (nlassert).
Implemented in NL3D::CTransformableUser. |
|
Work only in Rot* mode (nlassert).
Implemented in NL3D::CTransformableUser. |
|
Definition at line 50 of file transformable_user.cpp. References NL3D_MEM_TRANSFORMABLE.
00051 { 00052 NL3D_MEM_TRANSFORMABLE 00053 return ITransformable::getScaleValueName(); 00054 } |
|
get the current transform mode.
Implements NL3D::UTransformable. Definition at line 138 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::getTransformMode(), NL3D_MEM_TRANSFORMABLE, and uint.
00139 { 00140 NL3D_MEM_TRANSFORMABLE 00141 return (TTransformMode)(uint)_Transformable->getTransformMode(); 00142 } |
|
get the current transform mode.
Implemented in NL3D::CTransformableUser. |
|
Setup Matrix by the lookAt method. Work only in DirectMatrix mode and RotQuat mode (not euler...).
Implements NL3D::UTransformable. Definition at line 206 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D::ITransformable::lookAt(), and NL3D_MEM_TRANSFORMABLE.
00207 { 00208 NL3D_MEM_TRANSFORMABLE 00209 _Transformable->lookAt(eye, target, roll); 00210 } |
|
Setup Matrix by the lookAt method. Work only in DirectMatrix mode and RotQuat mode (not euler...).
Implemented in NL3D::CTransformableUser. |
|
Work only in DirecTMatrix mode (nlassert).
Implements NL3D::UTransformable. Definition at line 76 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D_MEM_TRANSFORMABLE, and NL3D::ITransformable::setMatrix().
00077 { 00078 NL3D_MEM_TRANSFORMABLE 00079 _Transformable->setMatrix(mat); 00080 } |
|
Work only in DirecTMatrix mode (nlassert).
Implemented in NL3D::CTransformableUser. |
|
Work only in Rot* mode (nlassert).
Implements NL3D::UTransformable. Definition at line 132 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D_MEM_TRANSFORMABLE, and NL3D::ITransformable::setPivot().
00133 { 00134 NL3D_MEM_TRANSFORMABLE 00135 _Transformable->setPivot(pivot); 00136 } |
|
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));} |
|
Work only in Rot* mode (nlassert).
Implemented in NL3D::CTransformableUser. Referenced by NL3D::UTransformable::setPivot(). |
|
Work only in Rot* mode(nlassert).
Implements NL3D::UTransformable. Definition at line 97 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D_MEM_TRANSFORMABLE, and NL3D::ITransformable::setPos().
00098 { 00099 NL3D_MEM_TRANSFORMABLE 00100 _Transformable->setPos(pos); 00101 } |
|
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));} |
|
Work only in Rot* mode(nlassert).
Implemented in NL3D::CTransformableUser. Referenced by NL3D::UTransformable::setPos(). |
|
Work only in RotEuler mode(nlassert).
Implements NL3D::UTransformable. Definition at line 102 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D_MEM_TRANSFORMABLE, and NL3D::ITransformable::setRotEuler().
00103 { 00104 NL3D_MEM_TRANSFORMABLE 00105 _Transformable->setRotEuler(rot); 00106 } |
|
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));} |
|
Work only in RotEuler mode(nlassert).
Implemented in NL3D::CTransformableUser. Referenced by NL3D::UTransformable::setRotEuler(). |
|
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. Implements NL3D::UTransformable. Definition at line 120 of file transformable_user.h. References NL3D_MEM_TRANSFORMABLE, and NL3D::CTransformableUser::setRotQuat().
00121 { 00122 NL3D_MEM_TRANSFORMABLE 00123 CMatrix mat; 00124 mat.setRot(CVector::I, jdir, vup); 00125 mat.normalize(CMatrix::YZX); 00126 setRotQuat(mat.getRot()); 00127 } |
|
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. Implements NL3D::UTransformable. Definition at line 112 of file transformable_user.h. References NL3D_MEM_TRANSFORMABLE, and NL3D::CTransformableUser::setRotQuat().
00113 { 00114 NL3D_MEM_TRANSFORMABLE 00115 CMatrix mat; 00116 mat.setRot(CVector::I, jdir, CVector::K); 00117 mat.normalize(CMatrix::YZX); 00118 setRotQuat(mat.getRot()); 00119 } |
|
Work only in RotQuat mode (nlassert).
Implements NL3D::UTransformable. Definition at line 107 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D_MEM_TRANSFORMABLE, and NL3D::ITransformable::setRotQuat(). Referenced by NL3D::CTransformableUser::setRotQuat().
00108 { 00109 NL3D_MEM_TRANSFORMABLE 00110 _Transformable->setRotQuat(quat); 00111 } |
|
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. |
|
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. |
|
Work only in RotQuat mode (nlassert).
Implemented in NL3D::CTransformableUser. |
|
Work only in Rot* mode (nlassert).
Implements NL3D::UTransformable. Definition at line 128 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, and NL3D::ITransformable::setScale().
00129 { 00130 _Transformable->setScale(scale); 00131 } |
|
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));} |
|
Work only in Rot* mode (nlassert).
Implemented in NL3D::CTransformableUser. Referenced by NL3D::UTransformable::setScale(). |
|
Change the transform mode. Components or matrix are not reseted.
Implements NL3D::UTransformable. Definition at line 92 of file transformable_user.h. References NL3D::CTransformableUser::_Transformable, NL3D_MEM_TRANSFORMABLE, NL3D::ITransformable::setTransformMode(), and uint.
00093 { 00094 NL3D_MEM_TRANSFORMABLE 00095 _Transformable->setTransformMode((ITransformable::TTransformMode)(uint)mode, ro); 00096 } |
|
Change the transform mode. Components or matrix are not reseted.
Implemented in NL3D::CTransformableUser. |
|