浏览代码

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

Mark Sibly 7 年之前
父节点
当前提交
62a63766b6

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

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

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

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