Browse Source

mesh/convexhull colliders now use btEmptyShape if mesh is null.

Mark Sibly 7 years ago
parent
commit
62a63766b6

+ 8 - 1
modules/mojo3d/scene/components/collider.monkey2

@@ -7,7 +7,11 @@ Namespace mojo3d
 Extern Private
  
 Function CreateInternalEdgeInfo( mesh:btBvhTriangleMeshShape )="bbBullet::createInternalEdgeInfo"
+
+Private
 	
+Global emptyShape:=New btEmptyShape
+
 Public
 	
 Class Entity Extension
@@ -565,7 +569,6 @@ Class ConvexHullCollider Extends ConvexCollider
 		Return _mesh
 	
 	Setter( mesh:Mesh ) 
-		
 		If mesh=_mesh Return
 		
 		_mesh=mesh
@@ -579,6 +582,8 @@ Class ConvexHullCollider Extends ConvexCollider
 	
 	Method OnCreate:btCollisionShape() Override
 		
+		If Not _mesh Return emptyShape
+		
 		Local vertices:=_mesh.GetVertices()
 		
 		Local points:=New btScalar[vertices.Length*3]
@@ -664,6 +669,8 @@ Class MeshCollider Extends ConcaveCollider
 	
 	Method OnCreate:btCollisionShape() Override
 		
+		If Not _mesh Return emptyShape
+		
 		Local vertices:=_mesh.GetVertices()
 		_vertices=New btScalar[vertices.Length*3]
 		For Local i:=0 Until vertices.Length

+ 0 - 2
modules/mojo3d/scene/components/rigidbody.monkey2

@@ -3,8 +3,6 @@ Namespace mojo3d
 
 Private
 
-Global emptyShape:=New btEmptyShape
-
 Class MotionState Extends btMotionState
 	
 	Method New( entity:Entity )