|  | 
|  | btTriangleMesh (bool use32bitIndices=true, bool use4componentVertices=true) | 
|  | 
| bool | getUse32bitIndices () const | 
|  | 
| bool | getUse4componentVertices () const | 
|  | 
| void | addTriangle (const btVector3 &vertex0, const btVector3 &vertex1, const btVector3 &vertex2, bool removeDuplicateVertices=false) | 
|  | By default addTriangle won't search for duplicate vertices, because the search is very slow for large triangle meshes.  More... 
 | 
|  | 
| void | addTriangleIndices (int index1, int index2, int index3) | 
|  | Add a triangle using its indices. Make sure the indices are pointing within the vertices array, so add the vertices first (and to be sure, avoid removal of duplicate vertices)  More... 
 | 
|  | 
| int | getNumTriangles () const | 
|  | 
| virtual void | preallocateVertices (int numverts) | 
|  | 
| virtual void | preallocateIndices (int numindices) | 
|  | 
| int | findOrAddVertex (const btVector3 &vertex, bool removeDuplicateVertices) | 
|  | findOrAddVertex is an internal method, use addTriangle instead  More... 
 | 
|  | 
| void | addIndex (int index) | 
|  | addIndex is an internal method, use addTriangle instead  More... 
 | 
|  | 
|  | BT_DECLARE_ALIGNED_ALLOCATOR () | 
|  | 
|  | btTriangleIndexVertexArray () | 
|  | 
| virtual | ~btTriangleIndexVertexArray () | 
|  | 
|  | btTriangleIndexVertexArray (int numTriangles, int *triangleIndexBase, int triangleIndexStride, int numVertices, btScalar *vertexBase, int vertexStride) | 
|  | 
| void | addIndexedMesh (const btIndexedMesh &mesh, PHY_ScalarType indexType=PHY_INTEGER) | 
|  | 
| virtual void | getLockedVertexIndexBase (unsigned char **vertexbase, int &numverts, PHY_ScalarType &type, int &vertexStride, unsigned char **indexbase, int &indexstride, int &numfaces, PHY_ScalarType &indicestype, int subpart=0) | 
|  | get read and write access to a subpart of a triangle mesh this subpart has a continuous array of vertices and indices in this way the mesh can be handled as chunks of memory with striding very similar to OpenGL vertexarray support make a call to unLockVertexBase when the read and write access is finished  More... 
 | 
|  | 
| virtual void | getLockedReadOnlyVertexIndexBase (const unsigned char **vertexbase, int &numverts, PHY_ScalarType &type, int &vertexStride, const unsigned char **indexbase, int &indexstride, int &numfaces, PHY_ScalarType &indicestype, int subpart=0) const | 
|  | 
| virtual void | unLockVertexBase (int subpart) | 
|  | unLockVertexBase finishes the access to a subpart of the triangle mesh make a call to unLockVertexBase when the read and write access (using getLockedVertexIndexBase) is finished  More... 
 | 
|  | 
| virtual void | unLockReadOnlyVertexBase (int subpart) const | 
|  | 
| virtual int | getNumSubParts () const | 
|  | getNumSubParts returns the number of seperate subparts each subpart has a continuous array of vertices and indices  More... 
 | 
|  | 
| IndexedMeshArray & | getIndexedMeshArray () | 
|  | 
| const IndexedMeshArray & | getIndexedMeshArray () const | 
|  | 
| virtual bool | hasPremadeAabb () const | 
|  | 
| virtual void | setPremadeAabb (const btVector3 &aabbMin, const btVector3 &aabbMax) const | 
|  | 
| virtual void | getPremadeAabb (btVector3 *aabbMin, btVector3 *aabbMax) const | 
|  | 
|  | BT_DECLARE_ALIGNED_ALLOCATOR () | 
|  | 
|  | btStridingMeshInterface () | 
|  | 
| virtual | ~btStridingMeshInterface () | 
|  | 
| virtual void | InternalProcessAllTriangles (btInternalTriangleIndexCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const | 
|  | 
| void | calculateAabbBruteForce (btVector3 &aabbMin, btVector3 &aabbMax) | 
|  | brute force method to calculate aabb  More... 
 | 
|  | 
| const btVector3 & | getScaling () const | 
|  | 
| void | setScaling (const btVector3 &scaling) | 
|  | 
| virtual int | calculateSerializeBufferSize () const | 
|  | 
| virtual const char * | serialize (void *dataBuffer, btSerializer *serializer) const | 
|  | fills the dataBuffer and returns the struct name (and 0 on failure)  More... 
 | 
|  | 
The btTriangleMesh class is a convenience class derived from btTriangleIndexVertexArray, that provides storage for a concave triangle mesh. 
It can be used as data for the btBvhTriangleMeshShape. It allows either 32bit or 16bit indices, and 4 (x-y-z-w) or 3 (x-y-z) component vertices. If you want to share triangle/index data between graphics mesh and collision mesh (btBvhTriangleMeshShape), you can directly use btTriangleIndexVertexArray or derive your own class from btStridingMeshInterface. Performance of btTriangleMesh and btTriangleIndexVertexArray used in a btBvhTriangleMeshShape is the same. 
Definition at line 27 of file btTriangleMesh.h.