Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErwin Coumans <blender@erwincoumans.com>2005-12-31 10:20:08 +0300
committerErwin Coumans <blender@erwincoumans.com>2005-12-31 10:20:08 +0300
commit9119b6e8a547303ce9a7ccd3a00636153b53cb0e (patch)
tree1816973e2baf4888d571e87cfb548cafafe46d41 /source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
parent625c553e2077ec0a252ddd934d4267c61011d61f (diff)
Fixed several bugs: python refcounting related and Bullet related (basic add/remove object support, bounding volume hierarchy). Added a few files, updated the Bullet scons. Vc6/7 Bullet projectfiles need to add a couple of files: 'Bullet/CollisionShapes/BvhTriangleMeshShape.cpp',
'Bullet/CollisionShapes/ConvexTriangleCallback.cpp', 'Bullet/CollisionShapes/EmptyShape.cpp', 'Bullet/CollisionShapes/OptimizedBvh.cpp', 'Bullet/CollisionShapes/TriangleCallback.cpp', 'Bullet/CollisionShapes/TriangleIndexVertexArray.cpp', 'Bullet/NarrowPhaseCollision/ManifoldContactAddResult.cpp'. Sorry, no armatures fix yet.
Diffstat (limited to 'source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp26
1 files changed, 22 insertions, 4 deletions
diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
index e9a6c2442b0..646fc93dadb 100644
--- a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
+++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
@@ -673,6 +673,7 @@ void KX_ConvertODEEngineObject(KX_GameObject* gameobj,
#include "CollisionShapes/ConvexHullShape.h"
#include "CollisionShapes/TriangleMesh.h"
#include "CollisionShapes/TriangleMeshShape.h"
+#include "CollisionShapes/BvhTriangleMeshShape.h"
static GEN_Map<GEN_HashedPtr,CollisionShape*> map_gamemesh_to_bulletshape;
@@ -770,8 +771,8 @@ static CollisionShape* CreateBulletShapeFromMesh(RAS_MeshObject* meshobj, bool p
} else
{
collisionMeshData = new TriangleMesh();
- concaveShape = new TriangleMeshShape(collisionMeshData);
- collisionMeshShape = concaveShape;
+// concaveShape = new TriangleMeshShape(collisionMeshData);
+ //collisionMeshShape = concaveShape;
}
@@ -843,7 +844,20 @@ static CollisionShape* CreateBulletShapeFromMesh(RAS_MeshObject* meshobj, bool p
if (numvalidpolys > 0)
{
+
//map_gamemesh_to_bulletshape.insert(GEN_HashedPtr(meshobj),collisionMeshShape);
+ if (!polytope)
+ {
+ concaveShape = new BvhTriangleMeshShape( collisionMeshData );
+ //concaveShape = new TriangleMeshShape( collisionMeshData );
+
+ concaveShape->RecalcLocalAabb();
+ collisionMeshShape = concaveShape;
+
+ }
+
+
+
return collisionMeshShape;
}
@@ -1002,7 +1016,7 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj,
ci.m_broadphaseHandle = 0;
ci.m_friction = smmaterial->m_friction;
ci.m_restitution = smmaterial->m_restitution;
-
+ ci.m_physicsEnv = env;
// drag / damping is inverted
ci.m_linearDamping = 1.f - shapeprops->m_lin_drag;
ci.m_angularDamping = 1.f - shapeprops->m_ang_drag;
@@ -1010,7 +1024,11 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj,
KX_BulletPhysicsController* physicscontroller = new KX_BulletPhysicsController(ci,isbulletdyna);
- env->addCcdPhysicsController( physicscontroller);
+
+ if (objprop->m_in_active_layer)
+ {
+ env->addCcdPhysicsController( physicscontroller);
+ }
gameobj->SetPhysicsController(physicscontroller,isbulletdyna);