From a97da928a23921d09de9ecded7716c2f7aaa53bd Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 5 Mar 2013 10:42:18 +0100 Subject: [PATCH] Merged MeshParameters into ModelParameters Former-commit-id: 187541bd30255f64758d96b80e6280842699124d --- include/Nazara/3D/Model.hpp | 11 ++++++----- src/Nazara/3D/Model.cpp | 18 +++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/include/Nazara/3D/Model.hpp b/include/Nazara/3D/Model.hpp index 0eda190ef..cf543e9b5 100644 --- a/include/Nazara/3D/Model.hpp +++ b/include/Nazara/3D/Model.hpp @@ -18,8 +18,9 @@ struct NzModelParameters { bool loadAnimation = true; bool loadMaterials = true; - NzAnimationParams animationParams; - NzMaterialParams materialParams; + NzAnimationParams animation; + NzMaterialParams material; + NzMeshParams mesh; }; class NAZARA_API NzModel : public NzSceneNode, public NzUpdatable @@ -55,9 +56,9 @@ class NAZARA_API NzModel : public NzSceneNode, public NzUpdatable bool IsDrawEnabled() const; bool IsVisible(const NzFrustumf& frustum) const override; - bool LoadFromFile(const NzString& meshPath, const NzMeshParams& meshParameters = NzMeshParams(), const NzModelParameters& modelParameters = NzModelParameters()); - bool LoadFromMemory(const void* data, std::size_t size, const NzMeshParams& meshParameters = NzMeshParams(), const NzModelParameters& modelParameters = NzModelParameters()); - bool LoadFromStream(NzInputStream& stream, const NzMeshParams& meshParameters = NzMeshParams(), const NzModelParameters& modelParameters = NzModelParameters()); + bool LoadFromFile(const NzString& meshPath, const NzModelParameters& modelParameters = NzModelParameters()); + bool LoadFromMemory(const void* data, std::size_t size, const NzModelParameters& modelParameters = NzModelParameters()); + bool LoadFromStream(NzInputStream& stream, const NzModelParameters& modelParameters = NzModelParameters()); void Reset(); diff --git a/src/Nazara/3D/Model.cpp b/src/Nazara/3D/Model.cpp index 26e14d86a..8708ffed0 100644 --- a/src/Nazara/3D/Model.cpp +++ b/src/Nazara/3D/Model.cpp @@ -277,11 +277,11 @@ bool NzModel::IsVisible(const NzFrustumf& frustum) const return frustum.Contains(m_boundingBox); } -bool NzModel::LoadFromFile(const NzString& meshPath, const NzMeshParams& meshParameters, const NzModelParameters& modelParameters) +bool NzModel::LoadFromFile(const NzString& meshPath, const NzModelParameters& modelParameters) { ///TODO: ResourceManager std::unique_ptr mesh(new NzMesh); - if (!mesh->LoadFromFile(meshPath, meshParameters)) + if (!mesh->LoadFromFile(meshPath, modelParameters.mesh)) { NazaraError("Failed to load mesh"); return false; @@ -293,10 +293,10 @@ bool NzModel::LoadFromFile(const NzString& meshPath, const NzMeshParams& meshPar return true; } -bool NzModel::LoadFromMemory(const void* data, std::size_t size, const NzMeshParams& meshParameters, const NzModelParameters& modelParameters) +bool NzModel::LoadFromMemory(const void* data, std::size_t size, const NzModelParameters& modelParameters) { std::unique_ptr mesh(new NzMesh); - if (!mesh->LoadFromMemory(data, size, meshParameters)) + if (!mesh->LoadFromMemory(data, size, modelParameters.mesh)) { NazaraError("Failed to load mesh"); return false; @@ -308,10 +308,10 @@ bool NzModel::LoadFromMemory(const void* data, std::size_t size, const NzMeshPar return true; } -bool NzModel::LoadFromStream(NzInputStream& stream, const NzMeshParams& meshParameters, const NzModelParameters& modelParameters) +bool NzModel::LoadFromStream(NzInputStream& stream, const NzModelParameters& modelParameters) { std::unique_ptr mesh(new NzMesh); - if (!mesh->LoadFromStream(stream, meshParameters)) + if (!mesh->LoadFromStream(stream, modelParameters.mesh)) { NazaraError("Failed to load mesh"); return false; @@ -457,6 +457,7 @@ void NzModel::SetMesh(NzMesh* mesh, const NzModelParameters& modelParameters) if (mesh) { + m_boundingBoxUpdated = false; m_mesh = mesh; m_mesh->AddResourceReference(); @@ -469,7 +470,7 @@ void NzModel::SetMesh(NzMesh* mesh, const NzModelParameters& modelParameters) if (!animationPath.IsEmpty()) { std::unique_ptr animation(new NzAnimation); - if (animation->LoadFromFile(animationPath, modelParameters.animationParams) && SetAnimation(animation.get())) + if (animation->LoadFromFile(animationPath, modelParameters.animation) && SetAnimation(animation.get())) { animation->SetPersistent(false); animation.release(); @@ -479,7 +480,6 @@ void NzModel::SetMesh(NzMesh* mesh, const NzModelParameters& modelParameters) } } - m_boundingBoxUpdated = false; m_matCount = mesh->GetMaterialCount(); m_materials.resize(m_matCount, NzMaterial::GetDefault()); if (modelParameters.loadMaterials) @@ -490,7 +490,7 @@ void NzModel::SetMesh(NzMesh* mesh, const NzModelParameters& modelParameters) if (!mat.IsEmpty()) { std::unique_ptr material(new NzMaterial); - if (material->LoadFromFile(mat, modelParameters.materialParams)) + if (material->LoadFromFile(mat, modelParameters.material)) { material->SetPersistent(false, false); // Pas de vérification des références car nous n'y avons pas encore accroché de référence m_materials[i] = material.release();