Forráskód Böngészése

Merge pull request #341 from lukaspj/fix/break-shape-invalid-box

breakShape() - remove parts created with invalid object box .
Brian Roberts 5 éve
szülő
commit
2dae903a18
1 módosított fájl, 15 hozzáadás és 5 törlés
  1. 15 5
      Engine/source/ts/tsPartInstance.cpp

+ 15 - 5
Engine/source/ts/tsPartInstance.cpp

@@ -108,12 +108,22 @@ void TSPartInstance::breakShape(TSShapeInstance * shape, S32 subShape, Vector<TS
    for (S32 i=0; i<partList.size(); i++)
    {
       if (partList[i]->mMeshObjects.size())
-         partList[i]->updateBounds();
-      else
       {
-         partList.erase(i);
-         i--;
-      }
+         partList[i]->updateBounds();
+         // Remove any parts parts with invalid box
+         Box3F box = partList[i]->getBounds();
+         if (!box.isValidBox())
+         {
+            Con::warnf("TSPartInstance::breakShape - part created with invalid object box. Removing from list.");
+            partList.erase(i);
+            i--;
+         }
+     }
+     else
+     {
+        partList.erase(i);
+        i--;
+     }
    }
 }