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.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user