diff options
author | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-06-26 13:15:41 +0400 |
---|---|---|
committer | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-06-26 13:15:41 +0400 |
commit | 4c53f38756976704bab11a3dd8c33c71d926e6b8 (patch) | |
tree | 5db17347afbc71062a77f01f1197a9bfe7f0c20d /source/gameengine/Rasterizer/RAS_MeshObject.cpp | |
parent | f69cc652e283bfa1958ae6945b0a014eb7d50906 (diff) |
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!)
Diffstat (limited to 'source/gameengine/Rasterizer/RAS_MeshObject.cpp')
-rw-r--r-- | source/gameengine/Rasterizer/RAS_MeshObject.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
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<KX_IndexArray*> *indexcache = &GetArrayOptimizer((*it)->GetPolyMaterial())->m_IndexArrayCache1; @@ -600,8 +601,6 @@ void RAS_MeshObject::SortPolygons(const MT_Transform &transform) (*iit)->clear(); } - //ClearArrayData(); - std::multiset<polygonSlot, fronttoback>::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); } |