Browse Source

Start model's geometries with at least 1 LOD level to prevent error when a call to SetNumGeometryLodLevels() is forgotten. 0 LOD levels does not make sense.

Lasse Öörni 11 years ago
parent
commit
d07dc5919a

+ 7 - 0
Source/Engine/Graphics/Model.cpp

@@ -489,6 +489,13 @@ void Model::SetNumGeometries(unsigned num)
     geometries_.Resize(num);
     geometryBoneMappings_.Resize(num);
     geometryCenters_.Resize(num);
+    
+    // For easier creation of from-scratch geometry, ensure that all geometries start with at least 1 LOD level (0 makes no sense)
+    for (unsigned i = 0; i < geometries_.Size(); ++i)
+    {
+        if (geometries_[i].Empty())
+            geometries_[i].Resize(1);
+    }
 }
 
 bool Model::SetNumGeometryLodLevels(unsigned index, unsigned num)

+ 0 - 1
Source/Samples/34_DynamicGeometry/DynamicGeometry.cpp

@@ -232,7 +232,6 @@ void DynamicGeometry::CreateScene()
         geom->SetDrawRange(TRIANGLE_LIST, 0, numVertices);
         
         fromScratchModel->SetNumGeometries(1);
-        fromScratchModel->SetNumGeometryLodLevels(0, 1);
         fromScratchModel->SetGeometry(0, 0, geom);
         fromScratchModel->SetBoundingBox(BoundingBox(Vector3(-0.5f, -0.5f, -0.5f), Vector3(0.5f, 0.5f, 0.5f)));