|
| | 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.