Graphics/SkeletalModel: Begin update to Renderable

Former-commit-id: c05e8a85bf3f0227fe2e75480df12045c8384124
This commit is contained in:
Lynix 2015-05-28 14:37:40 +02:00
parent e332193cd1
commit 962c1f2362
2 changed files with 7 additions and 58 deletions

View File

@ -34,11 +34,12 @@ 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();
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;
@ -54,7 +55,6 @@ class NAZARA_API NzSkeletalModel : public NzModel, NzUpdatable
bool IsAnimated() const; bool IsAnimated() const;
bool IsAnimationEnabled() const; bool IsAnimationEnabled() const;
bool IsDrawable() const;
bool LoadFromFile(const NzString& filePath, const NzSkeletalModelParameters& params = NzSkeletalModelParameters()); bool LoadFromFile(const NzString& filePath, const NzSkeletalModelParameters& params = NzSkeletalModelParameters());
bool LoadFromMemory(const void* data, std::size_t size, const NzSkeletalModelParameters& params = NzSkeletalModelParameters()); bool LoadFromMemory(const void* data, std::size_t size, const NzSkeletalModelParameters& params = NzSkeletalModelParameters());
@ -67,8 +67,8 @@ 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;

View File

@ -31,27 +31,14 @@ m_animationEnabled(true)
{ {
} }
NzSkeletalModel::NzSkeletalModel(const NzSkeletalModel& model) :
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() NzSkeletalModel::~NzSkeletalModel()
{ {
if (m_scene) if (m_scene)
m_scene->UnregisterForUpdate(this); m_scene->UnregisterForUpdate(this);
} }
void NzSkeletalModel::AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const void NzSkeletalModel::AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) 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)
{ {
@ -155,11 +142,6 @@ bool NzSkeletalModel::IsAnimationEnabled() const
return m_animationEnabled; return m_animationEnabled;
} }
bool NzSkeletalModel::IsDrawable() const
{
return m_mesh != nullptr && m_mesh->GetSubMeshCount() >= 1;
}
bool NzSkeletalModel::LoadFromFile(const NzString& filePath, const NzSkeletalModelParameters& params) bool NzSkeletalModel::LoadFromFile(const NzString& filePath, const NzSkeletalModelParameters& params)
{ {
return NzSkeletalModelLoader::LoadFromFile(this, filePath, params); return NzSkeletalModelLoader::LoadFromFile(this, filePath, params);
@ -296,39 +278,6 @@ 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());