Graphics/SkeletalModel: Update to new code

Former-commit-id: 74b17bf06b3c7c22477ee3a098301e70b093f890
This commit is contained in:
Lynix 2015-05-31 22:12:46 +02:00
parent d7e640fd1e
commit 8f8eca1d70
2 changed files with 11 additions and 73 deletions

View File

@ -34,11 +34,11 @@ class NAZARA_API NzSkeletalModel : public NzModel, NzUpdatable
public: public:
NzSkeletalModel(); NzSkeletalModel();
NzSkeletalModel(const NzSkeletalModel& model); NzSkeletalModel(const NzSkeletalModel& model) = default;
NzSkeletalModel(NzSkeletalModel&& model); NzSkeletalModel(NzSkeletalModel&& model) = default;
~NzSkeletalModel(); ~NzSkeletalModel() = default;
void AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const override; void AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) const override;
void AdvanceAnimation(float elapsedTime); void AdvanceAnimation(float elapsedTime);
NzSkeletalModel* Clone() const; NzSkeletalModel* Clone() const;
@ -67,13 +67,13 @@ class NAZARA_API NzSkeletalModel : public NzModel, NzUpdatable
bool SetSequence(const NzString& sequenceName); bool SetSequence(const NzString& sequenceName);
void SetSequence(unsigned int sequenceIndex); void SetSequence(unsigned int sequenceIndex);
NzSkeletalModel& operator=(const NzSkeletalModel& node); NzSkeletalModel& operator=(const NzSkeletalModel& node) = default;
NzSkeletalModel& operator=(NzSkeletalModel&& node); NzSkeletalModel& operator=(NzSkeletalModel&& node) = default;
private: private:
void MakeBoundingVolume() const override; void MakeBoundingVolume() const override;
void Register() override; /*void Register() override;
void Unregister() override; void Unregister() override;*/
void Update() override; void Update() override;
NzAnimationRef m_animation; NzAnimationRef m_animation;

View File

@ -31,27 +31,8 @@ m_animationEnabled(true)
{ {
} }
NzSkeletalModel::NzSkeletalModel(const NzSkeletalModel& model) : void NzSkeletalModel::AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) const
NzModel(model),
m_skeleton(model.m_skeleton),
m_currentSequence(model.m_currentSequence),
m_animationEnabled(model.m_animationEnabled),
m_interpolation(model.m_interpolation),
m_currentFrame(model.m_currentFrame),
m_nextFrame(model.m_nextFrame)
{ {
}
NzSkeletalModel::~NzSkeletalModel()
{
if (m_scene)
m_scene->UnregisterForUpdate(this);
}
void NzSkeletalModel::AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const
{
const NzMatrix4f& transformMatrix = GetTransformMatrix();
unsigned int submeshCount = m_mesh->GetSubMeshCount(); unsigned int submeshCount = m_mesh->GetSubMeshCount();
for (unsigned int i = 0; i < submeshCount; ++i) for (unsigned int i = 0; i < submeshCount; ++i)
{ {
@ -296,58 +277,15 @@ void NzSkeletalModel::SetSequence(unsigned int sequenceIndex)
m_nextFrame = m_currentSequence->firstFrame; m_nextFrame = m_currentSequence->firstFrame;
} }
NzSkeletalModel& NzSkeletalModel::operator=(const NzSkeletalModel& node)
{
NzSkeletalModel::operator=(node);
m_animation = node.m_animation;
m_animationEnabled = node.m_animationEnabled;
m_currentFrame = node.m_currentFrame;
m_currentSequence = node.m_currentSequence;
m_interpolation = node.m_interpolation;
m_nextFrame = node.m_nextFrame;
m_skeleton = node.m_skeleton;
return *this;
}
NzSkeletalModel& NzSkeletalModel::operator=(NzSkeletalModel&& node)
{
NzModel::operator=(node);
// Ressources
m_animation = std::move(node.m_animation);
m_skeleton = std::move(node.m_skeleton);
// Paramètres
m_animationEnabled = node.m_animationEnabled;
m_currentFrame = node.m_currentFrame;
m_currentSequence = node.m_currentSequence;
m_interpolation = node.m_interpolation;
m_nextFrame = node.m_nextFrame;
return *this;
}
void NzSkeletalModel::MakeBoundingVolume() const void NzSkeletalModel::MakeBoundingVolume() const
{ {
m_boundingVolume.Set(m_skeleton.GetAABB()); m_boundingVolume.Set(m_skeleton.GetAABB());
} }
void NzSkeletalModel::Register()
{
m_scene->RegisterForUpdate(this);
}
void NzSkeletalModel::Unregister()
{
m_scene->UnregisterForUpdate(this);
}
void NzSkeletalModel::Update() void NzSkeletalModel::Update()
{ {
if (m_animationEnabled && m_animation) /*if (m_animationEnabled && m_animation)
AdvanceAnimation(m_scene->GetUpdateTime()); AdvanceAnimation(m_scene->GetUpdateTime());*/
} }
NzSkeletalModelLoader::LoaderList NzSkeletalModel::s_loaders; NzSkeletalModelLoader::LoaderList NzSkeletalModel::s_loaders;