Extracting box Vector3 from LPD3DXMESH box

Started by
7 comments, last by Steve_Segreto 11 years, 4 months ago
I have LPD3DXMESH box that I load from .x file, I'm trying to setup physics for it.

LPD3DXMESH box;
btBoxShape *box = new btBoxShape(btVector3(???));


How can I get btBoxShape Vector3 in order to create a box with the same length, width, height in bullet physics?

Basically, I am trying to convert LPD3DXMESH to btBoxShape.
Advertisement

Maybe you have to compute the vertex info, getting it from ID3DXBaseMesh::GetVertexBuffer and calculate the with, length and height to pass them to the btBoxShape constructor.

Hi,

I'm able to get the width, length and height by using D3DXComputeBoundingBox()


float width = max.x - min.x;
float length = max.y - min.y;
float height = max.z - min.z;

The problem is that I'm not sure how can I pass the values to btBoxShape, I tried:


btBoxShape* box = new btBoxShape(btVector3(width / 2.0f, length / 2.0f, height / 2.0f));

But, I'm not getting a box with the same size.

Hi,

I'm able to get the width, length and height by using D3DXComputeBoundingBox()


float width = max.x - min.x;
float length = max.y - min.y;
float height = max.z - min.z;

The problem is that I'm not sure how can I pass the values to btBoxShape, I tried:


btBoxShape* box = new btBoxShape(btVector3(width / 2.0f, length / 2.0f, height / 2.0f));

But, I'm not getting a box with the same size.

Maybe you are getting an AABB and you are expecting a not axis aligned bounding box?

Hi,

I'm able to get the width, length and height by using D3DXComputeBoundingBox()


float width = max.x - min.x;
float length = max.y - min.y;
float height = max.z - min.z;

The problem is that I'm not sure how can I pass the values to btBoxShape, I tried:


btBoxShape* box = new btBoxShape(btVector3(width / 2.0f, length / 2.0f, height / 2.0f));

But, I'm not getting a box with the same size.

Maybe you are getting an AABB and you are expecting a not axis aligned bounding box?

This is bound to be the problem - Bullet documentation describes the btBoxShape as an OBB and MSDN describes D3DXComputeBoundingBox as returning an AABB.

You forgot a *bdum tish* after the "bound to be the problem" gag ;)
"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley
You forgot a *bdum tish* after the "bound to be the problem" gag ;)

XD

Sorry, I had forgotten completely how to say OBB in English, so I said non AABB

[quote name='Steve_Segreto' timestamp='1356293167' post='5013750']
This is bound to be the problem - Bullet documentation describes the btBoxShape as an OBB[/quote]Actually not. At least not in the documentation I remember. Could you point out the exact statement?

btBoxShape is an AABB. A btRigidBody using btBoxShape can be arbitrarly oriented, therefore making it an OBB.

Previously "Krohm"

btBoxShape.h: Line 26
///The btBoxShape is a box primitive around the origin, its sides axis aligned with length specified by half extents, in local shape coordinates. When used as part of a btCollisionObject or btRigidBody it will be an oriented box in world space.
Thanks for the clarification, I was wrong ... btBoxShape *IS* AABB

This topic is closed to new replies.

Advertisement