I've difficulties in getting my vehicle to stay on the terrain which uses btBvhTriangleMeshShape. I'm using Bullet with OpenSceneGraph and btBvhTriangleMeshShape is constructed from btTriangleMesh as follows:
Code: Select all
btTriangleMesh* mesh = new btTriangleMesh;
for( size_t i = 0; i + 3 < vertices->size(); i += 3 )
{
osg::Vec3& p1 = ( *vertices )[ i ];
osg::Vec3& p2 = ( *vertices )[ i + 1 ];
osg::Vec3& p3 = ( *vertices )[ i + 2 ];
mesh->addTriangle( btVector3( p1.x(), p1.y(), p1.z() ), btVector3( p2.x(), p2.y(), p2.z() ), btVector3( p3.x(), p3.y(), p3.z() ) );
}
btBvhTriangleMeshShape* meshShape = new btBvhTriangleMeshShape( mesh, true );
For setCenterOfMassTransform function, why must we pass in btTransform::getIdentity() in order to get it working?
Thanks,
CG