Blender V2.61 - r43446
|
#include <btConvexTriangleMeshShape.h>
Public Member Functions | |
btConvexTriangleMeshShape (btStridingMeshInterface *meshInterface, bool calcAabb=true) | |
class btStridingMeshInterface * | getMeshInterface () |
class btStridingMeshInterface * | getMeshInterface () 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 btVector3 & | getLocalScaling () const |
void | calculatePrincipalAxisTransform (btTransform &principal, btVector3 &inertia, btScalar &volume) const |
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.
btConvexTriangleMeshShape::btConvexTriangleMeshShape | ( | btStridingMeshInterface * | meshInterface, |
bool | calcAabb = true |
||
) |
Definition at line 23 of file btConvexTriangleMeshShape.cpp.
References CONVEX_TRIANGLEMESH_SHAPE_PROXYTYPE, and btPolyhedralConvexAabbCachingShape::recalcLocalAabb().
void btConvexTriangleMeshShape::batchedUnitVectorGetSupportingVertexWithoutMargin | ( | const btVector3 * | vectors, |
btVector3 * | supportVerticesOut, | ||
int | numVectors | ||
) | const [virtual] |
Reimplemented from btPolyhedralConvexShape.
Definition at line 102 of file btConvexTriangleMeshShape.cpp.
References BT_LARGE_FLOAT, LocalSupportVertexCallback::GetSupportVertexLocal(), i, and btStridingMeshInterface::InternalProcessAllTriangles().
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.
References BT_LARGE_FLOAT, btFabs(), btMatrix3x3::diagonalize(), btTransform::getBasis(), i, btStridingMeshInterface::InternalProcessAllTriangles(), btTransform::setOrigin(), and sum().
void btConvexTriangleMeshShape::getEdge | ( | int | i, |
btVector3 & | pa, | ||
btVector3 & | pb | ||
) | const [virtual] |
Implements btPolyhedralConvexShape.
Definition at line 167 of file btConvexTriangleMeshShape.cpp.
References btAssert.
const btVector3 & btConvexTriangleMeshShape::getLocalScaling | ( | ) | const [virtual] |
Reimplemented from btConvexInternalShape.
Definition at line 205 of file btConvexTriangleMeshShape.cpp.
References btStridingMeshInterface::getScaling().
class btStridingMeshInterface* btConvexTriangleMeshShape::getMeshInterface | ( | ) | [inline] |
Definition at line 33 of file btConvexTriangleMeshShape.h.
Referenced by btCollisionWorld::debugDrawObject().
class btStridingMeshInterface* btConvexTriangleMeshShape::getMeshInterface | ( | ) | const [inline] |
Definition at line 37 of file btConvexTriangleMeshShape.h.
virtual const char* btConvexTriangleMeshShape::getName | ( | void | ) | const [inline, virtual] |
Definition at line 47 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.
References btAssert.
void btConvexTriangleMeshShape::getVertex | ( | int | i, |
btVector3 & | vtx | ||
) | const [virtual] |
Implements btPolyhedralConvexShape.
Definition at line 172 of file btConvexTriangleMeshShape.cpp.
References btAssert.
bool btConvexTriangleMeshShape::isInside | ( | const btVector3 & | pt, |
btScalar | tolerance | ||
) | const [virtual] |
Implements btPolyhedralConvexShape.
Definition at line 188 of file btConvexTriangleMeshShape.cpp.
References btAssert.
btVector3 btConvexTriangleMeshShape::localGetSupportingVertex | ( | const btVector3 & | vec | ) | const [virtual] |
Reimplemented from btConvexInternalShape.
Definition at line 128 of file btConvexTriangleMeshShape.cpp.
References btConvexInternalShape::getMargin(), localGetSupportingVertexWithoutMargin(), and SIMD_EPSILON.
btVector3 btConvexTriangleMeshShape::localGetSupportingVertexWithoutMargin | ( | const btVector3 & | vec | ) | const [virtual] |
Reimplemented from btPolyhedralConvexShape.
Definition at line 79 of file btConvexTriangleMeshShape.cpp.
References BT_LARGE_FLOAT, btSqrt(), LocalSupportVertexCallback::GetSupportVertexLocal(), and btStridingMeshInterface::InternalProcessAllTriangles().
Referenced by localGetSupportingVertex().
void btConvexTriangleMeshShape::setLocalScaling | ( | const btVector3 & | scaling | ) | [virtual] |
Reimplemented from btPolyhedralConvexAabbCachingShape.
Definition at line 196 of file btConvexTriangleMeshShape.cpp.
References btPolyhedralConvexAabbCachingShape::recalcLocalAabb(), and btStridingMeshInterface::setScaling().