- Cal3D 0.11 API Reference -

bone.h
1//****************************************************************************//
2// bone.h //
3// Copyright (C) 2001, 2002 Bruno 'Beosil' Heidelberger //
4//****************************************************************************//
5// This library is free software; you can redistribute it and/or modify it //
6// under the terms of the GNU Lesser General Public License as published by //
7// the Free Software Foundation; either version 2.1 of the License, or (at //
8// your option) any later version. //
9//****************************************************************************//
10
11#ifndef CAL_BONE_H
12#define CAL_BONE_H
13
14
15#include "cal3d/global.h"
16#include "cal3d/vector.h"
17#include "cal3d/quaternion.h"
18#include "cal3d/matrix.h"
19#include "cal3d/corebone.h"
20
21
22//class CalCoreBone;
23class CalSkeleton;
24class CalModel;
25class CalCoreModel;
26
27
28class CAL3D_API CalBone
29{
30public:
31 CalBone(CalCoreBone* coreBone);
32 ~CalBone() { }
33
34 void blendState(float weight, const CalVector& translation, const CalQuaternion& rotation);
35 void calculateState();
36 void clearState();
38 void setCoreState();
40 void setRotation(const CalQuaternion& rotation);
44 void setTranslation(const CalVector& translation);
49 void lockState();
50 void setSkeleton(CalSkeleton *pSkeleton);
53
54private:
55 CalCoreBone *m_pCoreBone;
56 CalSkeleton *m_pSkeleton;
57 float m_accumulatedWeight;
58 float m_accumulatedWeightAbsolute;
59 CalVector m_translation;
60 CalQuaternion m_rotation;
61 CalVector m_translationAbsolute;
62 CalQuaternion m_rotationAbsolute;
63 CalVector m_translationBoneSpace;
64 CalQuaternion m_rotationBoneSpace;
65 CalMatrix m_transformMatrix;
66 CalBoundingBox m_boundingBox;
67};
68
69#endif
70
71//****************************************************************************//
const CalVector & getTranslationBoneSpace()
Returns the current bone space translation.
Definition bone.cpp:315
const CalQuaternion & getRotationBoneSpace()
Returns the current bone space rotation.
Definition bone.cpp:260
void lockState()
Locks the current state.
Definition bone.cpp:342
void calculateBoundingBox()
Calculates the bounding box.
Definition bone.cpp:398
const CalVector & getTranslation()
Returns the current translation.
Definition bone.cpp:288
const CalMatrix & getTransformMatrix()
Returns the current bone space translation.
Definition bone.cpp:329
CalBoundingBox & getBoundingBox()
Returns the current bounding box.
Definition bone.cpp:458
void clearState()
Clears the current state.
Definition bone.cpp:139
void setTranslation(const CalVector &translation)
Sets the current translation.
Definition bone.cpp:273
CalCoreBone * getCoreBone()
Provides access to the core bone.
Definition bone.cpp:156
void setSkeleton(CalSkeleton *pSkeleton)
Sets the skeleton.
Definition bone.cpp:385
void setRotation(const CalQuaternion &rotation)
Sets the current rotation.
Definition bone.cpp:218
void calculateState()
Calculates the current state.
Definition bone.cpp:77
void setCoreStateRecursive()
Resets the bone and children to core states.
Definition bone.cpp:190
const CalQuaternion & getRotationAbsolute()
Returns the current absolute rotation.
Definition bone.cpp:246
void blendState(float weight, const CalVector &translation, const CalQuaternion &rotation)
Interpolates the current state to another state.
Definition bone.cpp:46
const CalVector & getTranslationAbsolute()
Returns the current absolute translation.
Definition bone.cpp:301
const CalQuaternion & getRotation()
Returns the current rotation.
Definition bone.cpp:233
void setCoreState()
Resets the bone to its core state.
Definition bone.cpp:169
The bounding box class.
Definition vector.h:221
Definition corebone.h:26
Definition coremodel.h:26
The matrix class.
Definition matrix.h:35
Definition model.h:31
The quaternion class.
Definition quaternion.h:36
Definition skeleton.h:21
The vector class.
Definition vector.h:37

Generated by The Cal3D Team with Doxygen 1.15.0