The btBvhTriangleMeshShape is a static-triangle mesh shape with several optimizations, such as bounding volume hierarchy and cache friendly traversal for PlayStation 3 Cell SPU. More...
#include <btBvhTriangleMeshShape.h>
Public Member Functions | |
BT_DECLARE_ALIGNED_ALLOCATOR () | |
btBvhTriangleMeshShape (btStridingMeshInterface *meshInterface, bool useQuantizedAabbCompression, bool buildBvh=true) | |
Bvh Concave triangle mesh is a static-triangle mesh shape with Bounding Volume Hierarchy optimization. | |
btBvhTriangleMeshShape (btStridingMeshInterface *meshInterface, bool useQuantizedAabbCompression, const btVector3 &bvhAabbMin, const btVector3 &bvhAabbMax, bool buildBvh=true) | |
optionally pass in a larger bvh aabb, used for quantization. This allows for deformations within this aabb | |
virtual | ~btBvhTriangleMeshShape () |
bool | getOwnsBvh () const |
void | performRaycast (btTriangleCallback *callback, const btVector3 &raySource, const btVector3 &rayTarget) |
void | performConvexcast (btTriangleCallback *callback, const btVector3 &boxSource, const btVector3 &boxTarget, const btVector3 &boxMin, const btVector3 &boxMax) |
virtual void | processAllTriangles (btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const |
void | refitTree (const btVector3 &aabbMin, const btVector3 &aabbMax) |
void | partialRefitTree (const btVector3 &aabbMin, const btVector3 &aabbMax) |
for a fast incremental refit of parts of the tree. Note: the entire AABB of the tree will become more conservative, it never shrinks | |
virtual const char * | getName () const |
virtual void | setLocalScaling (const btVector3 &scaling) |
btOptimizedBvh * | getOptimizedBvh () |
void | setOptimizedBvh (btOptimizedBvh *bvh, const btVector3 &localScaling=btVector3(1, 1, 1)) |
void | buildOptimizedBvh () |
bool | usesQuantizedAabbCompression () const |
void | setTriangleInfoMap (btTriangleInfoMap *triangleInfoMap) |
const btTriangleInfoMap * | getTriangleInfoMap () const |
btTriangleInfoMap * | getTriangleInfoMap () |
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) | |
virtual void | serializeSingleBvh (btSerializer *serializer) const |
virtual void | serializeSingleTriangleInfoMap (btSerializer *serializer) const |
Private Attributes | |
btOptimizedBvh * | m_bvh |
btTriangleInfoMap * | m_triangleInfoMap |
bool | m_useQuantizedAabbCompression |
bool | m_ownsBvh |
bool | m_pad [11] |
The btBvhTriangleMeshShape is a static-triangle mesh shape with several optimizations, such as bounding volume hierarchy and cache friendly traversal for PlayStation 3 Cell SPU.
It is recommended to enable useQuantizedAabbCompression for better memory usage. It takes a triangle mesh as input, for example a btTriangleMesh or btTriangleIndexVertexArray. The btBvhTriangleMeshShape class allows for triangle mesh deformations by a refit or partialRefit method. Instead of building the bounding volume hierarchy acceleration structure, it is also possible to serialize (save) and deserialize (load) the structure from disk. See Demos\ConcaveDemo\ConcavePhysicsDemo.cpp for an example.
Definition at line 28 of file btBvhTriangleMeshShape.h.
btBvhTriangleMeshShape::btBvhTriangleMeshShape | ( | btStridingMeshInterface * | meshInterface, | |
bool | useQuantizedAabbCompression, | |||
bool | buildBvh = true | |||
) |
Bvh Concave triangle mesh is a static-triangle mesh shape with Bounding Volume Hierarchy optimization.
Uses an interface to access the triangles to allow for sharing graphics/physics triangles.
Definition at line 24 of file btBvhTriangleMeshShape.cpp.
btBvhTriangleMeshShape::btBvhTriangleMeshShape | ( | btStridingMeshInterface * | meshInterface, | |
bool | useQuantizedAabbCompression, | |||
const btVector3 & | bvhAabbMin, | |||
const btVector3 & | bvhAabbMax, | |||
bool | buildBvh = true | |||
) |
optionally pass in a larger bvh aabb, used for quantization. This allows for deformations within this aabb
Definition at line 44 of file btBvhTriangleMeshShape.cpp.
btBvhTriangleMeshShape::~btBvhTriangleMeshShape | ( | ) | [virtual] |
Definition at line 84 of file btBvhTriangleMeshShape.cpp.
btBvhTriangleMeshShape::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
Reimplemented from btTriangleMeshShape.
Reimplemented in btMultimaterialTriangleMeshShape.
void btBvhTriangleMeshShape::buildOptimizedBvh | ( | ) |
m_localAabbMin/m_localAabbMax is already re-calculated in btTriangleMeshShape. We could just scale aabb, but this needs some more work
Definition at line 340 of file btBvhTriangleMeshShape.cpp.
int btBvhTriangleMeshShape::calculateSerializeBufferSize | ( | ) | const [inline, virtual] |
Reimplemented from btCollisionShape.
Definition at line 132 of file btBvhTriangleMeshShape.h.
virtual const char* btBvhTriangleMeshShape::getName | ( | ) | const [inline, virtual] |
Reimplemented from btTriangleMeshShape.
Reimplemented in btMultimaterialTriangleMeshShape.
Definition at line 68 of file btBvhTriangleMeshShape.h.
btOptimizedBvh* btBvhTriangleMeshShape::getOptimizedBvh | ( | ) | [inline] |
Definition at line 73 of file btBvhTriangleMeshShape.h.
bool btBvhTriangleMeshShape::getOwnsBvh | ( | ) | const [inline] |
Definition at line 50 of file btBvhTriangleMeshShape.h.
btTriangleInfoMap* btBvhTriangleMeshShape::getTriangleInfoMap | ( | ) | [inline] |
Definition at line 97 of file btBvhTriangleMeshShape.h.
const btTriangleInfoMap* btBvhTriangleMeshShape::getTriangleInfoMap | ( | ) | const [inline] |
Definition at line 92 of file btBvhTriangleMeshShape.h.
void btBvhTriangleMeshShape::partialRefitTree | ( | const btVector3 & | aabbMin, | |
const btVector3 & | aabbMax | |||
) |
for a fast incremental refit of parts of the tree. Note: the entire AABB of the tree will become more conservative, it never shrinks
Definition at line 68 of file btBvhTriangleMeshShape.cpp.
void btBvhTriangleMeshShape::performConvexcast | ( | btTriangleCallback * | callback, | |
const btVector3 & | boxSource, | |||
const btVector3 & | boxTarget, | |||
const btVector3 & | boxMin, | |||
const btVector3 & | boxMax | |||
) |
Definition at line 162 of file btBvhTriangleMeshShape.cpp.
void btBvhTriangleMeshShape::performRaycast | ( | btTriangleCallback * | callback, | |
const btVector3 & | raySource, | |||
const btVector3 & | rayTarget | |||
) |
Definition at line 93 of file btBvhTriangleMeshShape.cpp.
void btBvhTriangleMeshShape::processAllTriangles | ( | btTriangleCallback * | callback, | |
const btVector3 & | aabbMin, | |||
const btVector3 & | aabbMax | |||
) | const [virtual] |
Reimplemented from btTriangleMeshShape.
Definition at line 232 of file btBvhTriangleMeshShape.cpp.
Definition at line 77 of file btBvhTriangleMeshShape.cpp.
const char * btBvhTriangleMeshShape::serialize | ( | void * | dataBuffer, | |
btSerializer * | serializer | |||
) | const [virtual] |
fills the dataBuffer and returns the struct name (and 0 on failure)
Reimplemented from btCollisionShape.
Definition at line 372 of file btBvhTriangleMeshShape.cpp.
void btBvhTriangleMeshShape::serializeSingleBvh | ( | btSerializer * | serializer | ) | const [virtual] |
Definition at line 442 of file btBvhTriangleMeshShape.cpp.
void btBvhTriangleMeshShape::serializeSingleTriangleInfoMap | ( | btSerializer * | serializer | ) | const [virtual] |
Definition at line 453 of file btBvhTriangleMeshShape.cpp.
void btBvhTriangleMeshShape::setLocalScaling | ( | const btVector3 & | scaling | ) | [virtual] |
Reimplemented from btTriangleMeshShape.
Definition at line 331 of file btBvhTriangleMeshShape.cpp.
void btBvhTriangleMeshShape::setOptimizedBvh | ( | btOptimizedBvh * | bvh, | |
const btVector3 & | localScaling = btVector3(1,1,1) | |||
) |
Definition at line 355 of file btBvhTriangleMeshShape.cpp.
void btBvhTriangleMeshShape::setTriangleInfoMap | ( | btTriangleInfoMap * | triangleInfoMap | ) | [inline] |
Definition at line 87 of file btBvhTriangleMeshShape.h.
bool btBvhTriangleMeshShape::usesQuantizedAabbCompression | ( | ) | const [inline] |
Definition at line 82 of file btBvhTriangleMeshShape.h.
btOptimizedBvh* btBvhTriangleMeshShape::m_bvh [private] |
Definition at line 31 of file btBvhTriangleMeshShape.h.
bool btBvhTriangleMeshShape::m_ownsBvh [private] |
Definition at line 35 of file btBvhTriangleMeshShape.h.
bool btBvhTriangleMeshShape::m_pad[11] [private] |
Definition at line 36 of file btBvhTriangleMeshShape.h.
Definition at line 32 of file btBvhTriangleMeshShape.h.
bool btBvhTriangleMeshShape::m_useQuantizedAabbCompression [private] |
Definition at line 34 of file btBvhTriangleMeshShape.h.