Bullet Collision Detection & Physics Library
Public Member Functions | Protected Attributes | List of all members
btTriangleIndexVertexArray Class Reference

The btTriangleIndexVertexArray allows to access multiple triangle meshes, by indexing into existing triangle/index arrays. More...

#include <btTriangleIndexVertexArray.h>

Inheritance diagram for btTriangleIndexVertexArray:
Inheritance graph
[legend]
Collaboration diagram for btTriangleIndexVertexArray:
Collaboration graph
[legend]

Public Member Functions

 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...
 
IndexedMeshArraygetIndexedMeshArray ()
 
const IndexedMeshArraygetIndexedMeshArray () const
 
virtual void preallocateVertices (int numverts)
 
virtual void preallocateIndices (int numindices)
 
virtual bool hasPremadeAabb () const
 
virtual void setPremadeAabb (const btVector3 &aabbMin, const btVector3 &aabbMax) const
 
virtual void getPremadeAabb (btVector3 *aabbMin, btVector3 *aabbMax) const
 
- Public Member Functions inherited from btStridingMeshInterface
 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 btVector3getScaling () 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...
 

Protected Attributes

IndexedMeshArray m_indexedMeshes
 
int m_pad [2]
 
int m_hasAabb
 
btVector3 m_aabbMin
 
btVector3 m_aabbMax
 
- Protected Attributes inherited from btStridingMeshInterface
btVector3 m_scaling
 

Detailed Description

The btTriangleIndexVertexArray allows to access multiple triangle meshes, by indexing into existing triangle/index arrays.

Additional meshes can be added using addIndexedMesh No duplcate is made of the vertex/index data, it only indexes into external vertex/index arrays. So keep those arrays around during the lifetime of this btTriangleIndexVertexArray.

Definition at line 68 of file btTriangleIndexVertexArray.h.

Constructor & Destructor Documentation

btTriangleIndexVertexArray::btTriangleIndexVertexArray ( )
inline

Definition at line 81 of file btTriangleIndexVertexArray.h.

btTriangleIndexVertexArray::~btTriangleIndexVertexArray ( )
virtual

Definition at line 34 of file btTriangleIndexVertexArray.cpp.

btTriangleIndexVertexArray::btTriangleIndexVertexArray ( int  numTriangles,
int *  triangleIndexBase,
int  triangleIndexStride,
int  numVertices,
btScalar vertexBase,
int  vertexStride 
)

Definition at line 18 of file btTriangleIndexVertexArray.cpp.

Member Function Documentation

void btTriangleIndexVertexArray::addIndexedMesh ( const btIndexedMesh mesh,
PHY_ScalarType  indexType = PHY_INTEGER 
)
inline

Definition at line 90 of file btTriangleIndexVertexArray.h.

btTriangleIndexVertexArray::BT_DECLARE_ALIGNED_ALLOCATOR ( )
IndexedMeshArray& btTriangleIndexVertexArray::getIndexedMeshArray ( )
inline

Definition at line 113 of file btTriangleIndexVertexArray.h.

const IndexedMeshArray& btTriangleIndexVertexArray::getIndexedMeshArray ( ) const
inline

Definition at line 118 of file btTriangleIndexVertexArray.h.

void btTriangleIndexVertexArray::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

Implements btStridingMeshInterface.

Definition at line 59 of file btTriangleIndexVertexArray.cpp.

void btTriangleIndexVertexArray::getLockedVertexIndexBase ( unsigned char **  vertexbase,
int &  numverts,
PHY_ScalarType type,
int &  stride,
unsigned char **  indexbase,
int &  indexstride,
int &  numfaces,
PHY_ScalarType indicestype,
int  subpart = 0 
)
virtual

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

Implements btStridingMeshInterface.

Definition at line 39 of file btTriangleIndexVertexArray.cpp.

virtual int btTriangleIndexVertexArray::getNumSubParts ( ) const
inlinevirtual

getNumSubParts returns the number of seperate subparts each subpart has a continuous array of vertices and indices

Implements btStridingMeshInterface.

Definition at line 109 of file btTriangleIndexVertexArray.h.

void btTriangleIndexVertexArray::getPremadeAabb ( btVector3 aabbMin,
btVector3 aabbMax 
) const
virtual

Reimplemented from btStridingMeshInterface.

Definition at line 89 of file btTriangleIndexVertexArray.cpp.

bool btTriangleIndexVertexArray::hasPremadeAabb ( ) const
virtual

Reimplemented from btStridingMeshInterface.

Definition at line 76 of file btTriangleIndexVertexArray.cpp.

virtual void btTriangleIndexVertexArray::preallocateIndices ( int  numindices)
inlinevirtual

Implements btStridingMeshInterface.

Reimplemented in btTriangleMesh.

Definition at line 124 of file btTriangleIndexVertexArray.h.

virtual void btTriangleIndexVertexArray::preallocateVertices ( int  numverts)
inlinevirtual

Implements btStridingMeshInterface.

Reimplemented in btTriangleMesh.

Definition at line 123 of file btTriangleIndexVertexArray.h.

void btTriangleIndexVertexArray::setPremadeAabb ( const btVector3 aabbMin,
const btVector3 aabbMax 
) const
virtual

Reimplemented from btStridingMeshInterface.

Definition at line 82 of file btTriangleIndexVertexArray.cpp.

virtual void btTriangleIndexVertexArray::unLockReadOnlyVertexBase ( int  subpart) const
inlinevirtual

Implements btStridingMeshInterface.

Definition at line 105 of file btTriangleIndexVertexArray.h.

virtual void btTriangleIndexVertexArray::unLockVertexBase ( int  subpart)
inlinevirtual

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

Implements btStridingMeshInterface.

Definition at line 103 of file btTriangleIndexVertexArray.h.

Member Data Documentation

btVector3 btTriangleIndexVertexArray::m_aabbMax
mutableprotected

Definition at line 75 of file btTriangleIndexVertexArray.h.

btVector3 btTriangleIndexVertexArray::m_aabbMin
mutableprotected

Definition at line 74 of file btTriangleIndexVertexArray.h.

int btTriangleIndexVertexArray::m_hasAabb
mutableprotected

Definition at line 73 of file btTriangleIndexVertexArray.h.

IndexedMeshArray btTriangleIndexVertexArray::m_indexedMeshes
protected

Definition at line 71 of file btTriangleIndexVertexArray.h.

int btTriangleIndexVertexArray::m_pad[2]
protected

Definition at line 72 of file btTriangleIndexVertexArray.h.


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