Can BulletX in XNA support TriangleMeshShape?

Post Reply
ocean2oo6
Posts: 18
Joined: Thu Nov 15, 2007 2:01 pm
Location: Sichuan province, China
Contact:

Can BulletX in XNA support TriangleMeshShape?

Post by ocean2oo6 »

I wanna use TriangleMeshShape for box-tri collision test,however it doesn't seem to work..
CollisionDispatcher Dispatcher = new CollisionDispatcher();
Vector3 worldAabbMin = new Vector3(-1000000, -1000000, -1000000);
Vector3 worldAabbMax = new Vector3(1000000, 1000000, 1000000);
const int maxProxies = 2000;
OverlappingPairCache broadphase = new AxisSweep3(worldAabbMin, worldAabbMax, maxProxies);
// Dispatcher.RegisterCollisionCreateFunc(BroadphaseNativeTypes.Box,BroadphaseNativeTypes.TriangleMesh,new ConvexConcaveCollisionAlgorithm.CreateFunc());
cWorldX = new CollisionWorld(Dispatcher, broadphase);

AddBox(new Vector3(5,5,5), new Vector3(5, 5, 5), 2, null);
CollisionObject cObj=new CollisionObject();
TriangleMesh tm=new TriangleMesh();
tm.AddTriangle(new Vector3(0,5,10),new Vector3(5,0,0),new Vector3(0,0,0));
cObj.CollisionShape = new TriangleMeshShape(tm);
cObj.WorldTransform = Matrix.Identity;
cWorldX.AddCollisionObject(cObj);
cWorldX.PerformDiscreteCollisionDetection();
for (int i = 0; i < cWorldX.Dispatcher.ManifoldCount; i++)
{
PersistentManifold contactManifold = cWorldX.Dispatcher.GetManifoldByIndex(i);
CollisionObject obA = contactManifold.BodyA as CollisionObject;
CollisionObject obB = contactManifold.BodyB as CollisionObject;
contactManifold.RefreshContactPoints(obA.WorldTransform, obB.WorldTransform);
int numContacts = contactManifold.ContactsCount;

for (int j = 0; j < numContacts; j++)
{
It cann't tatch here,why?
Is there anything i'm missing?


AddBox Method:
public CollisionObject AddBox(Vector3 position, Vector3 halfExtents, float mass, Object o)
{
CollisionObject cObj = new CollisionObject();
BoxShape boxShape = new BoxShape(halfExtents);
Matrix center = Matrix.Identity;
center.Translation = position;
cObj.WorldTransform = center;
cObj.CollisionShape = boxShape;
cObj.UserData = o;
cWorldX.AddCollisionObject(cObj, BroadphaseProxy.CollisionFilterGroups.Static, BroadphaseProxy.CollisionFilterGroups.Static);
}

And i notice class TriangleMesh and one of it's method "AddTriangle" is "Private", which is different from C++ version,
so Can BulletX in XNA support TriangleMeshShape? i just wonder ....
ocean2oo6
Posts: 18
Joined: Thu Nov 15, 2007 2:01 pm
Location: Sichuan province, China
Contact:

Re: Can BulletX in XNA support TriangleMeshShape?

Post by ocean2oo6 »

ok i know there is a bug in TriangleMeshShape which was reported at http://www.codeplex.com/xnadevru/WorkIt ... emId=11068

but it seems that btBvhTriangleMeshShape hasn't been implement, so if i want to test a box and a mesh,
which shape can i use?
can i just use TriangleMeshShape?
what's the difference?
KleMiX
Posts: 19
Joined: Tue Sep 19, 2006 6:38 pm

Re: Can BulletX in XNA support TriangleMeshShape?

Post by KleMiX »

Hello,
BulletX is frozen for now... :(
mb it will be active sometime around July...
ocean2oo6
Posts: 18
Joined: Thu Nov 15, 2007 2:01 pm
Location: Sichuan province, China
Contact:

Re: Can BulletX in XNA support TriangleMeshShape?

Post by ocean2oo6 »

ok ic
but i really hope it continue as soon as possible...
:P
Post Reply