4 replies to this topic

Posted 28 November 2012 - 02:20 AM

If I have LPD3DXMESH, how do I get btConeShape information from it?

btConeShape require radius and height to create a cone shape, how do I get this information from LPD3DXMESH?

Also, how do I get the radius of LPD3DXMESH sphere so I can create btSphereShape from it?

I am trying to convert:

LPD3DXMESH to btConeShape

LPD3DXMESH to btSphereShape

LPD3DXMESH to btBoxShape

btConeShape require radius and height to create a cone shape, how do I get this information from LPD3DXMESH?

Also, how do I get the radius of LPD3DXMESH sphere so I can create btSphereShape from it?

I am trying to convert:

LPD3DXMESH to btConeShape

LPD3DXMESH to btSphereShape

LPD3DXMESH to btBoxShape

Posted 28 November 2012 - 12:52 PM

Did you create those primitive shapes (cone, sphere, box) with the D3DX routines to make them LPD3DXMESH? If so, can you just use the parameters you fed in there for width, radius, height, etc and use them for Bullet?

btw ... getting the radius of a mesh is simply finding the min/max vertices and constructing a bounding sphere (same with the box). So that gives you the box and sphere. The same technique would give you the radius of the cone around the y-axis and the bounding box extent gives you the height.

btw ... getting the radius of a mesh is simply finding the min/max vertices and constructing a bounding sphere (same with the box). So that gives you the box and sphere. The same technique would give you the radius of the cone around the y-axis and the bounding box extent gives you the height.

**Edited by Steve_Segreto, 28 November 2012 - 12:55 PM.**

Love DAOC? Tryout my DAOC clone: https://dl.dropboxusercontent.com/u/8974528/VON_Dist.zip

Posted 28 November 2012 - 01:26 PM

.... Assuming that the box is axis aligned, and the cone is aligned with y-axis.

Posted 28 November 2012 - 09:39 PM

LPD3DXMESH will be loaded from .x file, LPD3DXMESH will be used for rendering purpose, I'm trying to make Bullet physics interact as well, sometimes I know LPD3DXMESH is a primitive (box, sphere, cone, ...) so I'm looking for any example on how to get the radius of LPD3DXMESH sphere or (raduis and height) of LPD3DXMESH if it's a cone, or Vector3 of the box if LPD3DXMESH is a box.

Posted 28 November 2012 - 10:30 PM

Here is the code that I wrote to find the sphere raduis:

I see that the radius is not EXACTLY the same, in the modeling software I set the radius to for example 19.0 and when I get it I get a slightly larger number something like 19.4.

For the box, I'm able to get min and max using:

Now, how do I create btBoxShape from pMin and pMax that I calculated above?

LPD3DXMESH sphere; D3DXVECTOR3 *pVertices; sphere->LockVertexBuffer(D3DLOCK_READONLY, (void **)&pVertices); D3DXVECTOR3 pCenter; float raduis; D3DXComputeBoundingSphere(pVertices, sphere->GetNumVertices(), D3DXGetFVFVertexSize(sphere->GetFVF()), &pCenter, &raduis); sphere->UnlockVertexBuffer();

I see that the radius is not EXACTLY the same, in the modeling software I set the radius to for example 19.0 and when I get it I get a slightly larger number something like 19.4.

For the box, I'm able to get min and max using:

LPD3DXMESH box; D3DXVECTOR3 pMin; D3DXVECTOR3 pMax; D3DXComputeBoundingBox(pVertices, box->GetNumVertices(), D3DXGetFVFVertexSize(sphere->GetFVF()), &pMin, &pMax);

Now, how do I create btBoxShape from pMin and pMax that I calculated above?