Browse Source

Fix for Issue #56 for ShapeEditor save crash

David Wyand 13 years ago
parent
commit
a1a5a2c3d7
1 changed files with 8 additions and 4 deletions
  1. 8 4
      Engine/source/ts/tsMesh.cpp

+ 8 - 4
Engine/source/ts/tsMesh.cpp

@@ -2636,10 +2636,14 @@ void TSMesh::disassemble()
       {
       {
          const TSDrawPrimitive& prim = primitives[i];
          const TSDrawPrimitive& prim = primitives[i];
 
 
-         TriListOpt::OptimizeTriangleOrdering(verts.size(), prim.numElements,
-            indices.address() + prim.start, tmpIdxs.address());
-         dCopyArray(indices.address() + prim.start, tmpIdxs.address(), 
-            prim.numElements);
+         // only optimize triangle lists (strips and fans are assumed to be already optimized)
+         if ( (prim.matIndex & TSDrawPrimitive::TypeMask) == TSDrawPrimitive::Triangles )
+         {
+            TriListOpt::OptimizeTriangleOrdering(verts.size(), prim.numElements,
+               indices.address() + prim.start, tmpIdxs.address());
+            dCopyArray(indices.address() + prim.start, tmpIdxs.address(), 
+               prim.numElements);
+         }
       }
       }
    }
    }