diff --git a/src/Core/Resource/Model/CModel.cpp b/src/Core/Resource/Model/CModel.cpp index ed0d478b..c2186a3d 100644 --- a/src/Core/Resource/Model/CModel.cpp +++ b/src/Core/Resource/Model/CModel.cpp @@ -272,7 +272,7 @@ CMaterial* CModel::GetMaterialBySurface(size_t MatSet, size_t Surface) return GetMaterialByIndex(MatSet, mSurfaces[Surface]->MaterialID); } -bool CModel::HasTransparency(size_t MatSet) +bool CModel::HasTransparency(size_t MatSet) const { if (MatSet >= mMaterialSets.size()) MatSet = mMaterialSets.size() - 1; @@ -286,7 +286,7 @@ bool CModel::HasTransparency(size_t MatSet) return false; } -bool CModel::IsSurfaceTransparent(size_t Surface, size_t MatSet) +bool CModel::IsSurfaceTransparent(size_t Surface, size_t MatSet) const { if (MatSet >= mMaterialSets.size()) MatSet = mMaterialSets.size() - 1; diff --git a/src/Core/Resource/Model/CModel.h b/src/Core/Resource/Model/CModel.h index 29ce221e..8458aab5 100644 --- a/src/Core/Resource/Model/CModel.h +++ b/src/Core/Resource/Model/CModel.h @@ -39,8 +39,8 @@ public: CMaterialSet* GetMatSet(size_t MatSet); CMaterial* GetMaterialByIndex(size_t MatSet, size_t Index); CMaterial* GetMaterialBySurface(size_t MatSet, size_t Surface); - bool HasTransparency(size_t MatSet); - bool IsSurfaceTransparent(size_t Surface, size_t MatSet); + bool HasTransparency(size_t MatSet) const; + bool IsSurfaceTransparent(size_t Surface, size_t MatSet) const; bool IsLightmapped() const; bool IsSkinned() const { return mpSkin != nullptr; } diff --git a/src/Core/Scene/CSceneNode.cpp b/src/Core/Scene/CSceneNode.cpp index eb91606a..bd8377aa 100644 --- a/src/Core/Scene/CSceneNode.cpp +++ b/src/Core/Scene/CSceneNode.cpp @@ -209,15 +209,15 @@ void CSceneNode::AddModelToRenderer(CRenderer *pRenderer, CModel *pModel, size_t { ASSERT(pModel); - if (!pModel->HasTransparency(MatSet)) - { - pRenderer->AddMesh(this, -1, AABox(), false, ERenderCommand::DrawMesh); - } - else + if (pModel->HasTransparency(MatSet)) { pRenderer->AddMesh(this, -1, AABox(), false, ERenderCommand::DrawOpaqueParts); pRenderer->AddMesh(this, -1, AABox(), true, ERenderCommand::DrawTransparentParts); } + else + { + pRenderer->AddMesh(this, -1, AABox(), false, ERenderCommand::DrawMesh); + } } void CSceneNode::DrawModelParts(CModel *pModel, FRenderOptions Options, size_t MatSet, ERenderCommand RenderCommand) diff --git a/src/Editor/CGizmo.cpp b/src/Editor/CGizmo.cpp index 094ad3b2..ba6e5caa 100644 --- a/src/Editor/CGizmo.cpp +++ b/src/Editor/CGizmo.cpp @@ -21,12 +21,12 @@ void CGizmo::AddToRenderer(CRenderer *pRenderer, const SViewInfo&) // Transform is updated every frame even if the user doesn't modify the gizmo // in order to account for scale changes based on camera distance UpdateTransform(); - SModelPart *pPart = mpCurrentParts; + const SModelPart* pPart = mpCurrentParts; // Add all parts to renderer for (uint32 iPart = 0; iPart < mNumCurrentParts; iPart++) { - CModel *pModel = pPart->pModel; + const CModel* pModel = pPart->pModel; // Determine whether to use the mat set for regular (0) or highlight (1) const FAxes PartAxes = pPart->ModelAxes;