port from perforce
This commit is contained in:
51
aiwaz/Aiwaz/Resources/Bone/BoneController.h
Normal file
51
aiwaz/Aiwaz/Resources/Bone/BoneController.h
Normal file
@@ -0,0 +1,51 @@
|
||||
#pragma once
|
||||
|
||||
#include "IBone.h"
|
||||
#include "IEngine.h"
|
||||
#include "ITimeLine.h"
|
||||
#include "IUpdatable.h"
|
||||
#include "../ShaderParameterCollection/ShaderParameterCollection.h"
|
||||
|
||||
|
||||
class BoneController
|
||||
: public IBoneController
|
||||
, public ShaderParameterCollection
|
||||
, public IUpdatable
|
||||
|
||||
{
|
||||
public:
|
||||
BoneController(IEngine& argEngine);
|
||||
virtual ~BoneController();
|
||||
|
||||
virtual void Initialize(IBone& argRootBone);
|
||||
virtual void Initialize(const IBoneController& argOther);
|
||||
virtual void Apply();
|
||||
|
||||
virtual void RegisterSequence(const string16& argName, float argStart, float argEnd, bool argLoop);
|
||||
virtual void PlaySequence(const string16& argName);
|
||||
|
||||
virtual const string16& get_CurrentSequence() const;
|
||||
virtual const std::map<string16, Sequence >& get_Sequences() const { return m_Sequences; }
|
||||
|
||||
virtual IBone& get_RootBone() const { return *m_RootBone; }
|
||||
|
||||
// IUpdatable
|
||||
virtual void Update(bool argForceUpdate) { this->Apply(); }
|
||||
virtual bool get_WantsUpdate() const { return true; }
|
||||
|
||||
protected:
|
||||
// ICommandUser
|
||||
virtual string8 get_UserName() const { return "BoneController"; }
|
||||
|
||||
private:
|
||||
|
||||
float get_CurrentTime();
|
||||
|
||||
IBone* m_RootBone;
|
||||
double m_StartTime;
|
||||
string16 m_CurrentSequence;
|
||||
Sequence m_CurrentSequenceInfo;
|
||||
std::map<string16, Sequence > m_Sequences;
|
||||
std::map<int, IBone*> m_Bones;
|
||||
D3DXMATRIX* m_LastMatrixArray;
|
||||
};
|
||||
Reference in New Issue
Block a user