port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
#pragma once
#include "IBone.h"
#include "IEngine.h"
class Bone
: public IBone
{
public:
Bone(IEngine& argEngine);
virtual ~Bone();
virtual void Initialize(const string16& argName, int argIndex, const D3DXVECTOR3& argPoseTranslation, const D3DXVECTOR3& argPoseScale, const D3DXQUATERNION& argPoseRotation);
virtual const D3DXMATRIX& GetTransformationAtTime(float argTime, const D3DXMATRIX& argRootTransformationMatrix);
virtual const D3DXMATRIX& get_PoseTransformation() const;
virtual void set_Parent(IBone* argParent_);
virtual IBone* get_Parent() const;
virtual std::vector<IBone*>& get_ChildBones();
virtual string16 get_Name() const;
virtual int get_Index() const;
virtual void set_TransformationAnimation(ITransformationAnimation* argTransformationAnimation);
virtual ITransformationAnimation* get_TransformationAnimation() const;
virtual std::map<int, IBone*>& get_BoneIndexList();
virtual D3DXMATRIX* get_MatrixArray();
virtual unsigned int get_MatrixArraySize();
private:
void FillBoneIndexList(IBone* argCurrentBone, std::map<int, IBone*>& argList);
private:
IEngine& m_Engine;
string16 m_Name;
int m_BoneIndex;
D3DXMATRIX m_PoseTransformation;
D3DXMATRIX m_InvPoseTransformation;
float m_LastAnimationTime;
D3DXMATRIX m_Transformation;
std::vector<IBone*> m_Children;
IBone* m_Parent;
ITransformationAnimation* m_TransformationAnimation;
std::map<int, IBone*> m_BoneIndexList;
D3DXMATRIX* m_MatrixArray;
unsigned int m_MatrixArraySize;
};