- 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
This commit is contained in:
parent
4a9f7ab979
commit
19403e5660
@ -46,6 +46,7 @@ import com.jme3.scene.Geometry;
|
|||||||
import com.jme3.scene.Mesh;
|
import com.jme3.scene.Mesh;
|
||||||
import com.jme3.scene.Node;
|
import com.jme3.scene.Node;
|
||||||
import com.jme3.scene.Spatial;
|
import com.jme3.scene.Spatial;
|
||||||
|
import com.jme3.scene.UserData;
|
||||||
import com.jme3.terrain.geomipmap.TerrainPatch;
|
import com.jme3.terrain.geomipmap.TerrainPatch;
|
||||||
import com.jme3.terrain.geomipmap.TerrainQuad;
|
import com.jme3.terrain.geomipmap.TerrainQuad;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -91,6 +92,10 @@ public class CollisionShapeFactory {
|
|||||||
if (spatial instanceof Node) {
|
if (spatial instanceof Node) {
|
||||||
createCompoundShape(realRootNode, (Node) spatial, shape, meshAccurate, dynamic);
|
createCompoundShape(realRootNode, (Node) spatial, shape, meshAccurate, dynamic);
|
||||||
} else if (spatial instanceof Geometry) {
|
} 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) {
|
if (meshAccurate) {
|
||||||
CollisionShape childShape = dynamic
|
CollisionShape childShape = dynamic
|
||||||
? createSingleDynamicMeshShape((Geometry) spatial, realRootNode)
|
? createSingleDynamicMeshShape((Geometry) spatial, realRootNode)
|
||||||
|
@ -52,7 +52,7 @@ public class NativeMeshUtil {
|
|||||||
int numTriangles = mesh.getTriangleCount();
|
int numTriangles = mesh.getTriangleCount();
|
||||||
int triangleIndexStride = 12; //3 index entries * 4 bytes each.
|
int triangleIndexStride = 12; //3 index entries * 4 bytes each.
|
||||||
|
|
||||||
IndexBuffer indices = mesh.getIndexBuffer();
|
IndexBuffer indices = mesh.getIndicesAsList();
|
||||||
FloatBuffer vertices = mesh.getFloatBuffer(Type.Position);
|
FloatBuffer vertices = mesh.getFloatBuffer(Type.Position);
|
||||||
vertices.rewind();
|
vertices.rewind();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user