2
0
Эх сурвалжийг харах

- add fix for physics mesh generation and physics collision shape ignore flag to native bullet

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7687 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
nor..67 14 жил өмнө
parent
commit
19403e5660

+ 6 - 1
engine/src/bullet/com/jme3/bullet/util/CollisionShapeFactory.java

@@ -46,6 +46,7 @@ import com.jme3.scene.Geometry;
 import com.jme3.scene.Mesh;
 import com.jme3.scene.Node;
 import com.jme3.scene.Spatial;
+import com.jme3.scene.UserData;
 import com.jme3.terrain.geomipmap.TerrainPatch;
 import com.jme3.terrain.geomipmap.TerrainQuad;
 import java.util.Iterator;
@@ -91,6 +92,10 @@ public class CollisionShapeFactory {
             if (spatial instanceof Node) {
                 createCompoundShape(realRootNode, (Node) spatial, shape, meshAccurate, dynamic);
             } else if (spatial instanceof Geometry) {
+                Boolean bool = spatial.getUserData(UserData.JME_PHYSICSIGNORE);
+                if (bool != null && bool.booleanValue()) {
+                    continue; // go to the next child in the loop
+                }
                 if (meshAccurate) {
                     CollisionShape childShape = dynamic
                             ? createSingleDynamicMeshShape((Geometry) spatial, realRootNode)
@@ -229,7 +234,7 @@ public class CollisionShapeFactory {
             return null;
         }
     }
-    
+
     /**
      * This method moves each child shape of a compound shape by the given vector
      * @param vector

+ 1 - 1
engine/src/bullet/com/jme3/bullet/util/NativeMeshUtil.java

@@ -52,7 +52,7 @@ public class NativeMeshUtil {
         int numTriangles = mesh.getTriangleCount();
         int triangleIndexStride = 12; //3 index entries * 4 bytes each.
 
-        IndexBuffer indices = mesh.getIndexBuffer();
+        IndexBuffer indices = mesh.getIndicesAsList();
         FloatBuffer vertices = mesh.getFloatBuffer(Type.Position);
         vertices.rewind();