- add option to make heightfield collision shape for TerrainPatch

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7480 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
nor..67 2011-05-10 16:15:49 +00:00
parent d1fb15579a
commit 9853bd266d

View File

@ -40,13 +40,13 @@ import com.jme3.bullet.collision.shapes.HullCollisionShape;
import com.jme3.bullet.collision.shapes.MeshCollisionShape; import com.jme3.bullet.collision.shapes.MeshCollisionShape;
import com.jme3.bullet.collision.shapes.infos.ChildCollisionShape; import com.jme3.bullet.collision.shapes.infos.ChildCollisionShape;
import com.jme3.math.Matrix3f; import com.jme3.math.Matrix3f;
import com.jme3.math.Quaternion;
import com.jme3.math.Transform; import com.jme3.math.Transform;
import com.jme3.math.Vector3f; import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry; 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.terrain.geomipmap.TerrainPatch;
import com.jme3.terrain.geomipmap.TerrainQuad; import com.jme3.terrain.geomipmap.TerrainQuad;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
@ -147,6 +147,9 @@ public class CollisionShapeFactory {
if (spatial instanceof TerrainQuad) { if (spatial instanceof TerrainQuad) {
TerrainQuad terrain = (TerrainQuad) spatial; TerrainQuad terrain = (TerrainQuad) spatial;
return new HeightfieldCollisionShape(terrain.getHeightMap(), terrain.getLocalScale()); return new HeightfieldCollisionShape(terrain.getHeightMap(), terrain.getLocalScale());
} else if (spatial instanceof TerrainPatch) {
TerrainPatch terrain = (TerrainPatch) spatial;
return new HeightfieldCollisionShape(terrain.getHeightmap().array(), terrain.getLocalScale());
} else if (spatial instanceof Geometry) { } else if (spatial instanceof Geometry) {
return createSingleMeshShape((Geometry) spatial, spatial); return createSingleMeshShape((Geometry) spatial, spatial);
} else if (spatial instanceof Node) { } else if (spatial instanceof Node) {