Blender  V3.3
Public Member Functions | Public Attributes | List of all members
btTriangleMesh Class Reference

#include <btTriangleMesh.h>

Inheritance diagram for btTriangleMesh:

Public Member Functions

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

Public Attributes

btScalar m_weldingThreshold
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ btTriangleMesh()

btTriangleMesh::btTriangleMesh ( bool  use32bitIndices = true,
bool  use4componentVertices = true 
)

Member Function Documentation

◆ addIndex()

void btTriangleMesh::addIndex ( int  index)

addIndex is an internal method, use addTriangle instead

Definition at line 62 of file btTriangleMesh.cpp.

References btAlignedObjectArray< T >::push_back().

Referenced by addTriangle(), and addTriangleIndices().

◆ addTriangle()

void btTriangleMesh::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. In general it is better to directly use btTriangleIndexVertexArray instead.

Definition at line 128 of file btTriangleMesh.cpp.

References addIndex(), and findOrAddVertex().

◆ addTriangleIndices()

void btTriangleMesh::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)

Definition at line 76 of file btTriangleMesh.cpp.

References addIndex().

◆ findOrAddVertex()

int btTriangleMesh::findOrAddVertex ( const btVector3 vertex,
bool  removeDuplicateVertices 
)

findOrAddVertex is an internal method, use addTriangle instead

Todo:
: could use acceleration structure for this

Definition at line 84 of file btTriangleMesh.cpp.

References btVector3, length2(), m_weldingThreshold, btAlignedObjectArray< T >::push_back(), and btAlignedObjectArray< T >::size().

Referenced by addTriangle().

◆ getNumTriangles()

int btTriangleMesh::getNumTriangles ( ) const

Definition at line 136 of file btTriangleMesh.cpp.

References btAlignedObjectArray< T >::size().

◆ getUse32bitIndices()

bool btTriangleMesh::getUse32bitIndices ( ) const
inline

Definition at line 42 of file btTriangleMesh.h.

◆ getUse4componentVertices()

bool btTriangleMesh::getUse4componentVertices ( ) const
inline

Definition at line 47 of file btTriangleMesh.h.

◆ preallocateIndices()

void btTriangleMesh::preallocateIndices ( int  numindices)
virtual

Definition at line 157 of file btTriangleMesh.cpp.

References btAlignedObjectArray< T >::reserve().

◆ preallocateVertices()

void btTriangleMesh::preallocateVertices ( int  numverts)
virtual

Definition at line 145 of file btTriangleMesh.cpp.

References btAlignedObjectArray< T >::reserve().

Member Data Documentation

◆ m_weldingThreshold

btScalar btTriangleMesh::m_weldingThreshold

Definition at line 38 of file btTriangleMesh.h.

Referenced by findOrAddVertex().


The documentation for this class was generated from the following files: