Public Member Functions | Private Attributes

btConvexTriangleMeshShape Class Reference

The btConvexTriangleMeshShape is a convex hull of a triangle mesh, but the performance is not as good as btConvexHullShape. More...

#include <btConvexTriangleMeshShape.h>

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

List of all members.

Public Member Functions

 BT_DECLARE_ALIGNED_ALLOCATOR ()
 btConvexTriangleMeshShape (btStridingMeshInterface *meshInterface, bool calcAabb=true)
class btStridingMeshInterfacegetMeshInterface ()
class btStridingMeshInterfacegetMeshInterface () const
virtual btVector3 localGetSupportingVertex (const btVector3 &vec) const
virtual btVector3 localGetSupportingVertexWithoutMargin (const btVector3 &vec) const
virtual void batchedUnitVectorGetSupportingVertexWithoutMargin (const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const
virtual const char * getName () const
virtual int getNumVertices () const
virtual int getNumEdges () const
virtual void getEdge (int i, btVector3 &pa, btVector3 &pb) const
virtual void getVertex (int i, btVector3 &vtx) const
virtual int getNumPlanes () const
virtual void getPlane (btVector3 &planeNormal, btVector3 &planeSupport, int i) const
virtual bool isInside (const btVector3 &pt, btScalar tolerance) const
virtual void setLocalScaling (const btVector3 &scaling)
virtual const btVector3getLocalScaling () const
void calculatePrincipalAxisTransform (btTransform &principal, btVector3 &inertia, btScalar &volume) const
 computes the exact moment of inertia and the transform from the coordinate system defined by the principal axes of the moment of inertia and the center of mass to the current coordinate system.

Private Attributes

class btStridingMeshInterfacem_stridingMesh

Detailed Description

The btConvexTriangleMeshShape is a convex hull of a triangle mesh, but the performance is not as good as btConvexHullShape.

A small benefit of this class is that it uses the btStridingMeshInterface, so you can avoid the duplication of the triangle mesh data. Nevertheless, most users should use the much better performing btConvexHullShape instead.

Definition at line 25 of file btConvexTriangleMeshShape.h.


Constructor & Destructor Documentation

btConvexTriangleMeshShape::btConvexTriangleMeshShape ( btStridingMeshInterface meshInterface,
bool  calcAabb = true 
)

Definition at line 23 of file btConvexTriangleMeshShape.cpp.


Member Function Documentation

void btConvexTriangleMeshShape::batchedUnitVectorGetSupportingVertexWithoutMargin ( const btVector3 vectors,
btVector3 supportVerticesOut,
int  numVectors 
) const [virtual]

Reimplemented from btPolyhedralConvexShape.

Definition at line 102 of file btConvexTriangleMeshShape.cpp.

btConvexTriangleMeshShape::BT_DECLARE_ALIGNED_ALLOCATOR (  ) 

Reimplemented from btPolyhedralConvexShape.

void btConvexTriangleMeshShape::calculatePrincipalAxisTransform ( btTransform principal,
btVector3 inertia,
btScalar volume 
) const

computes the exact moment of inertia and the transform from the coordinate system defined by the principal axes of the moment of inertia and the center of mass to the current coordinate system.

A mass of 1 is assumed, for other masses just multiply the computed "inertia" by the mass. The resulting transform "principal" has to be applied inversely to the mesh in order for the local coordinate system of the shape to be centered at the center of mass and to coincide with the principal axes. This also necessitates a correction of the world transform of the collision object by the principal transform. This method also computes the volume of the convex mesh.

Definition at line 210 of file btConvexTriangleMeshShape.cpp.

void btConvexTriangleMeshShape::getEdge ( int  i,
btVector3 pa,
btVector3 pb 
) const [virtual]

Implements btPolyhedralConvexShape.

Definition at line 167 of file btConvexTriangleMeshShape.cpp.

const btVector3 & btConvexTriangleMeshShape::getLocalScaling (  )  const [virtual]

Reimplemented from btConvexInternalShape.

Definition at line 205 of file btConvexTriangleMeshShape.cpp.

class btStridingMeshInterface* btConvexTriangleMeshShape::getMeshInterface (  )  [inline]

Definition at line 35 of file btConvexTriangleMeshShape.h.

class btStridingMeshInterface* btConvexTriangleMeshShape::getMeshInterface (  )  const [inline]

Definition at line 39 of file btConvexTriangleMeshShape.h.

virtual const char* btConvexTriangleMeshShape::getName (  )  const [inline, virtual]

Implements btCollisionShape.

Definition at line 49 of file btConvexTriangleMeshShape.h.

int btConvexTriangleMeshShape::getNumEdges (  )  const [virtual]

Implements btPolyhedralConvexShape.

Definition at line 162 of file btConvexTriangleMeshShape.cpp.

int btConvexTriangleMeshShape::getNumPlanes (  )  const [virtual]

Implements btPolyhedralConvexShape.

Definition at line 177 of file btConvexTriangleMeshShape.cpp.

int btConvexTriangleMeshShape::getNumVertices (  )  const [virtual]

Implements btPolyhedralConvexShape.

Definition at line 155 of file btConvexTriangleMeshShape.cpp.

void btConvexTriangleMeshShape::getPlane ( btVector3 planeNormal,
btVector3 planeSupport,
int  i 
) const [virtual]

Implements btPolyhedralConvexShape.

Definition at line 182 of file btConvexTriangleMeshShape.cpp.

void btConvexTriangleMeshShape::getVertex ( int  i,
btVector3 vtx 
) const [virtual]

Implements btPolyhedralConvexShape.

Definition at line 172 of file btConvexTriangleMeshShape.cpp.

bool btConvexTriangleMeshShape::isInside ( const btVector3 pt,
btScalar  tolerance 
) const [virtual]

Implements btPolyhedralConvexShape.

Definition at line 188 of file btConvexTriangleMeshShape.cpp.

btVector3 btConvexTriangleMeshShape::localGetSupportingVertex ( const btVector3 vec  )  const [virtual]

Reimplemented from btConvexInternalShape.

Definition at line 128 of file btConvexTriangleMeshShape.cpp.

btVector3 btConvexTriangleMeshShape::localGetSupportingVertexWithoutMargin ( const btVector3 vec  )  const [virtual]

Reimplemented from btPolyhedralConvexShape.

Definition at line 79 of file btConvexTriangleMeshShape.cpp.

void btConvexTriangleMeshShape::setLocalScaling ( const btVector3 scaling  )  [virtual]

Reimplemented from btPolyhedralConvexAabbCachingShape.

Definition at line 196 of file btConvexTriangleMeshShape.cpp.


Member Data Documentation

Definition at line 28 of file btConvexTriangleMeshShape.h.


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