- 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
3.0
nor..67 14 years ago
parent 4a9f7ab979
commit 19403e5660
  1. 7
      engine/src/bullet/com/jme3/bullet/util/CollisionShapeFactory.java
  2. 2
      engine/src/bullet/com/jme3/bullet/util/NativeMeshUtil.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

@ -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();

Loading…
Cancel
Save