From 4c53f38756976704bab11a3dd8c33c71d926e6b8 Mon Sep 17 00:00:00 2001 From: Kester Maddock Date: Sat, 26 Jun 2004 09:15:41 +0000 Subject: Minor Fixes: Better use of booleans for python #include fixes for Windows Python Doc fixes Use the farthest vertex as the face position when z sorting faces. (Camera is on -z axis!) --- source/gameengine/Rasterizer/RAS_MaterialBucket.h | 7 ++++--- source/gameengine/Rasterizer/RAS_MeshObject.cpp | 9 ++++----- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'source/gameengine/Rasterizer') diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.h b/source/gameengine/Rasterizer/RAS_MaterialBucket.h index 28185dabca6..480bd9f1d11 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.h +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.h @@ -70,10 +70,11 @@ public: class KX_MeshSlot { public: - void* m_clientObj; + void* m_clientObj; RAS_Deformer* m_pDeformer; // __NLA - double* m_OpenGLMatrix; - class RAS_MeshObject* m_mesh; + double* m_OpenGLMatrix; + class RAS_MeshObject* m_mesh; + mutable bool m_bVisible; // for visibility mutable bool m_bObjectColor; mutable MT_Vector4 m_RGBAcolor; diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.cpp b/source/gameengine/Rasterizer/RAS_MeshObject.cpp index c048479a46e..ff5e674150b 100644 --- a/source/gameengine/Rasterizer/RAS_MeshObject.cpp +++ b/source/gameengine/Rasterizer/RAS_MeshObject.cpp @@ -564,14 +564,14 @@ RAS_MeshObject::polygonSlot::polygonSlot(const MT_Vector3 &pnorm, const MT_Scala { vert = mesh->GetVertex(base.m_vtxarray, base.m_indexarray[i], poly->GetMaterial()->GetPolyMaterial()); float z = MT_dot(pnorm, vert->getLocalXYZ()) + pval; - if (z > m_z) + if (z < m_z) m_z = z; } } void RAS_MeshObject::SortPolygons(const MT_Transform &transform) { - + // Extract camera Z plane... const MT_Vector3 pnorm(transform.getBasis()[2]); const MT_Scalar pval = transform.getOrigin()[2]; @@ -593,6 +593,7 @@ void RAS_MeshObject::SortPolygons(const MT_Transform &transform) } } + // Clear current array data. for (RAS_MaterialBucket::Set::iterator it = m_materials.begin();it!=m_materials.end();++it) { vector *indexcache = &GetArrayOptimizer((*it)->GetPolyMaterial())->m_IndexArrayCache1; @@ -600,8 +601,6 @@ void RAS_MeshObject::SortPolygons(const MT_Transform &transform) (*iit)->clear(); } - //ClearArrayData(); - std::multiset::iterator sit = solidpolyset.begin(); for (; sit != solidpolyset.end(); ++sit) SchedulePoly((*sit).m_poly->GetVertexIndexBase(), (*sit).m_poly->VertexCount(), (*sit).m_poly->GetMaterial()->GetPolyMaterial()); @@ -659,7 +658,7 @@ void RAS_MeshObject::SchedulePolygons(const MT_Transform &transform, int drawing m_bModified = false; } - if (m_zsort) + if (m_zsort && rasty->GetDrawingMode() >= RAS_IRasterizer::KX_SOLID) { SortPolygons(transform); } -- cgit v1.2.3