Ver Fonte

Fixed issue https://github.com/jMonkeyEngine/jmonkeyengine/issues/291

Nehon há 10 anos atrás
pai
commit
c7606ccff2

+ 7 - 1
jme3-core/src/main/java/com/jme3/collision/bih/BIHTree.java

@@ -48,6 +48,7 @@ import com.jme3.math.Vector3f;
 import com.jme3.scene.CollisionData;
 import com.jme3.scene.Mesh;
 import com.jme3.scene.Mesh.Mode;
+import com.jme3.scene.VertexBuffer;
 import com.jme3.scene.VertexBuffer.Type;
 import com.jme3.scene.mesh.IndexBuffer;
 import com.jme3.scene.mesh.VirtualIndexBuffer;
@@ -114,8 +115,13 @@ public class BIHTree implements CollisionData {
 
         bihSwapTmp = new float[9];
 
-        FloatBuffer vb = (FloatBuffer) mesh.getBuffer(Type.Position).getData();
+        VertexBuffer vBuffer = mesh.getBuffer(Type.Position);
+        if(vBuffer == null){
+            throw new IllegalArgumentException("A mesh should at least contain a Position buffer");
+        }        
         IndexBuffer ib = mesh.getIndexBuffer();
+        FloatBuffer vb = (FloatBuffer) vBuffer.getData();
+        
         if (ib == null) {
             ib = new VirtualIndexBuffer(mesh.getVertexCount(), mesh.getMode());
         } else if (mesh.getMode() != Mode.Triangles) {