btTriangleIndexVertexArray with SHORT as index type

Post Reply
avithohol
Posts: 34
Joined: Sun Feb 12, 2017 10:22 am

btTriangleIndexVertexArray with SHORT as index type

Post by avithohol »

Hello,

I can beautifully create btBvhTriangleMeshShape-s in my app, passing in mTriangleIndexVertexArray like this:

Code: Select all

mTriangleIndexVertexArray = new btTriangleIndexVertexArray(int)(mVertexIndexes.size()/3),  //number of triangle faces
                                                                (int*)&mVertexIndexes[0],         //index array
                                                                (int)(3*sizeof(vInt)),         //index stride
                                                                (int)mVertexPositions.size(),    //number of vertexes
                                                                (btScalar*)&mVertexPositions[0].x,       //vertex array
                                                                (int)sizeof(cVec3) );

mCollisionShape = new btBvhTriangleMeshShape( [b]mTriangleIndexVertexArray[/b], true, true );
All is fine, and works, the only thing bothers me, that I need to pass the indexes as INT type to the btTriangleIndexVertexArray, but I wish to use UNSIGNED SHORT.

Without any drastic changes to BULLETT code, how can I achive to pass in a UNSIGNED SHORT type indexes to btTriangleIndexVertexArray?
(btTriangleMesh has such related constructor info, but no idea how to utilize it).

How do you guys would do this?
ktfh
Posts: 44
Joined: Thu Apr 14, 2016 3:44 pm

Re: btTriangleIndexVertexArray with SHORT as index type

Post by ktfh »

I think using a indexed mesh would work http://bulletphysics.org/Bullet/BulletF ... dMesh.html

Code: Select all

btIndexedMesh mIndexedMesh;
// set this stuff
mIndexedMesh.m_numTriangles;
mIndexedMesh.m_triangleIndexBase;
mIndexedMesh.m_triangleIndexStride;
mIndexedMesh.m_numVertices;
mIndexedMesh.m_vertexBase;
mIndexedMesh.m_vertexStride;
// make mesh striding interface and add indexed mesh to it
mTriangleIndexVertexArray = new btTriangleIndexVertexArray();
mTriangleIndexVertexArray.addIndexedMesh(mIndexedMesh, PHY_SHORT);// PHY_SHORT sets index type

mCollisionShape = new btBvhTriangleMeshShape(mTriangleIndexVertexArray, true, true );
avithohol
Posts: 34
Joined: Sun Feb 12, 2017 10:22 am

Re: btTriangleIndexVertexArray with SHORT as index type

Post by avithohol »

ktfh wrote:I think using a indexed mesh would work http://bulletphysics.org/Bullet/BulletF ... dMesh.html

Code: Select all

btIndexedMesh mIndexedMesh;
// set this stuff
mIndexedMesh.m_numTriangles;
mIndexedMesh.m_triangleIndexBase;
mIndexedMesh.m_triangleIndexStride;
mIndexedMesh.m_numVertices;
mIndexedMesh.m_vertexBase;
mIndexedMesh.m_vertexStride;
// make mesh striding interface and add indexed mesh to it
mTriangleIndexVertexArray = new btTriangleIndexVertexArray();
mTriangleIndexVertexArray.addIndexedMesh(mIndexedMesh, PHY_SHORT);// PHY_SHORT sets index type

mCollisionShape = new btBvhTriangleMeshShape(mTriangleIndexVertexArray, true, true );
This just works! Thanks so much!
This thread is answered.
Post Reply