diff options
author | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-05-04 13:34:02 +0400 |
---|---|---|
committer | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-05-04 13:34:02 +0400 |
commit | f03fa79d28a112c39fcbab5d71b952333dc66fac (patch) | |
tree | 349af2572f240d3b78312cf7f28d0d949e10f8a5 /source/gameengine/Rasterizer/RAS_MeshObject.cpp | |
parent | 79f3e880217215d5af09a9083f868ce7b80baaa5 (diff) |
Fix for bug #945 getVertexArrayLength(x) returns different values on different runs of the game engine.
http://projects.blender.org/tracker/index.php?func=detail&aid=945&group_id=9&atid=125
The material buckets were being sorted by pointer (ie their location in memory.)
Also fixed find shared verticies.
Diffstat (limited to 'source/gameengine/Rasterizer/RAS_MeshObject.cpp')
-rw-r--r-- | source/gameengine/Rasterizer/RAS_MeshObject.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.cpp b/source/gameengine/Rasterizer/RAS_MeshObject.cpp index 79ec632ce73..4f5833df50b 100644 --- a/source/gameengine/Rasterizer/RAS_MeshObject.cpp +++ b/source/gameengine/Rasterizer/RAS_MeshObject.cpp @@ -108,7 +108,7 @@ RAS_MaterialBucket* RAS_MeshObject::GetMaterialBucket(unsigned int matid) { if (m_materials.size() > 0 && (matid < m_materials.size())) { - BucketMaterialSet::const_iterator it = m_materials.begin(); + RAS_MaterialBucket::Set::const_iterator it = m_materials.begin(); while (matid--) ++it; return *it; } @@ -270,7 +270,7 @@ int RAS_MeshObject::FindOrAddVertex(int vtxarray, { if ((*it).m_arrayindex1 == ao->m_index1 && ((*it).m_array == vtxarray) && - (RAS_IPolyMaterial*) (*it).m_matid == mat + (*(RAS_IPolyMaterial*) (*it).m_matid) == *mat ) { return (*it).m_index; @@ -396,7 +396,7 @@ void RAS_MeshObject::Bucketize(double* oglmatrix, ms.m_bObjectColor = useObjectColor; ms.m_RGBAcolor = rgbavec; - for (BucketMaterialSet::iterator it = m_materials.begin();it!=m_materials.end();++it) + for (RAS_MaterialBucket::Set::iterator it = m_materials.begin();it!=m_materials.end();++it) { RAS_MaterialBucket* bucket = *it; bucket->SchedulePolygons(0); @@ -421,7 +421,7 @@ void RAS_MeshObject::MarkVisible(double* oglmatrix, ms.m_RGBAcolor = rgbavec; ms.m_bObjectColor= useObjectColor; - for (BucketMaterialSet::iterator it = m_materials.begin();it!=m_materials.end();++it) + for (RAS_MaterialBucket::Set::iterator it = m_materials.begin();it!=m_materials.end();++it) { RAS_MaterialBucket* bucket = *it; bucket->SchedulePolygons(0); @@ -440,7 +440,7 @@ void RAS_MeshObject::RemoveFromBuckets(double* oglmatrix, ms.m_mesh = this; ms.m_OpenGLMatrix = oglmatrix; - for (BucketMaterialSet::iterator it = m_materials.begin();it!=m_materials.end();++it) + for (RAS_MaterialBucket::Set::iterator it = m_materials.begin();it!=m_materials.end();++it) { RAS_MaterialBucket* bucket = *it; // RAS_IPolyMaterial* polymat = bucket->GetPolyMaterial(); @@ -562,7 +562,7 @@ void RAS_MeshObject::SchedulePolygons(int drawingmode,RAS_IRasterizer* rasty) if (m_bModified) { - for (BucketMaterialSet::iterator it = m_materials.begin();it!=m_materials.end();++it) + for (RAS_MaterialBucket::Set::iterator it = m_materials.begin();it!=m_materials.end();++it) { RAS_MaterialBucket* bucket = *it; |