From e332193cd1d75ae269067d30480c8216e5cf4043 Mon Sep 17 00:00:00 2001 From: Lynix Date: Thu, 28 May 2015 13:49:25 +0200 Subject: [PATCH 1/2] Graphics/Model: Default move constructor/operator Former-commit-id: 0bf6787057d807dfaf4e27c965ea0d654c369b85 --- include/Nazara/Graphics/Model.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/Nazara/Graphics/Model.hpp b/include/Nazara/Graphics/Model.hpp index 53458e09d..d0de7cb6f 100644 --- a/include/Nazara/Graphics/Model.hpp +++ b/include/Nazara/Graphics/Model.hpp @@ -37,6 +37,7 @@ class NAZARA_API NzModel : public NzRenderable, public NzResource public: NzModel(); NzModel(const NzModel& model) = default; + NzModel(NzModel&& model) = default; virtual ~NzModel(); void AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) const override; @@ -72,6 +73,7 @@ class NAZARA_API NzModel : public NzRenderable, public NzResource void SetSkinCount(unsigned int skinCount); NzModel& operator=(const NzModel& node) = default; + NzModel& operator=(NzModel&& node) = default; protected: void MakeBoundingVolume() const override; From 962c1f236220f9a53f98eb57b90bac026ebd77dd Mon Sep 17 00:00:00 2001 From: Lynix Date: Thu, 28 May 2015 14:37:40 +0200 Subject: [PATCH 2/2] Graphics/SkeletalModel: Begin update to Renderable Former-commit-id: c05e8a85bf3f0227fe2e75480df12045c8384124 --- include/Nazara/Graphics/SkeletalModel.hpp | 12 ++--- src/Nazara/Graphics/SkeletalModel.cpp | 53 +---------------------- 2 files changed, 7 insertions(+), 58 deletions(-) diff --git a/include/Nazara/Graphics/SkeletalModel.hpp b/include/Nazara/Graphics/SkeletalModel.hpp index e29fc4d79..c6807fec9 100644 --- a/include/Nazara/Graphics/SkeletalModel.hpp +++ b/include/Nazara/Graphics/SkeletalModel.hpp @@ -34,11 +34,12 @@ class NAZARA_API NzSkeletalModel : public NzModel, NzUpdatable public: NzSkeletalModel(); - NzSkeletalModel(const NzSkeletalModel& model); - NzSkeletalModel(NzSkeletalModel&& model); + NzSkeletalModel(const NzSkeletalModel& model) = default; + NzSkeletalModel(NzSkeletalModel&& model) = default; ~NzSkeletalModel(); - void AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const override; + void AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) const override; + void AdvanceAnimation(float elapsedTime); NzSkeletalModel* Clone() const; @@ -54,7 +55,6 @@ class NAZARA_API NzSkeletalModel : public NzModel, NzUpdatable bool IsAnimated() const; bool IsAnimationEnabled() const; - bool IsDrawable() const; bool LoadFromFile(const NzString& filePath, 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); void SetSequence(unsigned int sequenceIndex); - NzSkeletalModel& operator=(const NzSkeletalModel& node); - NzSkeletalModel& operator=(NzSkeletalModel&& node); + NzSkeletalModel& operator=(const NzSkeletalModel& node) = default; + NzSkeletalModel& operator=(NzSkeletalModel&& node) = default: private: void MakeBoundingVolume() const override; diff --git a/src/Nazara/Graphics/SkeletalModel.cpp b/src/Nazara/Graphics/SkeletalModel.cpp index 212461ef2..a5fc96196 100644 --- a/src/Nazara/Graphics/SkeletalModel.cpp +++ b/src/Nazara/Graphics/SkeletalModel.cpp @@ -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() { if (m_scene) 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(); for (unsigned int i = 0; i < submeshCount; ++i) { @@ -155,11 +142,6 @@ bool NzSkeletalModel::IsAnimationEnabled() const return m_animationEnabled; } -bool NzSkeletalModel::IsDrawable() const -{ - return m_mesh != nullptr && m_mesh->GetSubMeshCount() >= 1; -} - bool NzSkeletalModel::LoadFromFile(const NzString& filePath, const NzSkeletalModelParameters& params) { return NzSkeletalModelLoader::LoadFromFile(this, filePath, params); @@ -296,39 +278,6 @@ void NzSkeletalModel::SetSequence(unsigned int sequenceIndex) 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 { m_boundingVolume.Set(m_skeleton.GetAABB());