The btCompoundShape allows to store multiple other btCollisionShapes This allows for moving concave collision objects. More...
#include <btCompoundShape.h>


Public Member Functions | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btCompoundShape (bool enableDynamicAabbTree=true) | |
| virtual | ~btCompoundShape () |
| void | addChildShape (const btTransform &localTransform, btCollisionShape *shape) |
| virtual void | removeChildShape (btCollisionShape *shape) |
| Remove all children shapes that contain the specified shape. | |
| void | removeChildShapeByIndex (int childShapeindex) |
| int | getNumChildShapes () const |
| btCollisionShape * | getChildShape (int index) |
| const btCollisionShape * | getChildShape (int index) const |
| btTransform & | getChildTransform (int index) |
| const btTransform & | getChildTransform (int index) const |
| void | updateChildTransform (int childIndex, const btTransform &newChildTransform) |
| set a new transform for a child, and update internal data structures (local aabb and dynamic tree) | |
| btCompoundShapeChild * | getChildList () |
| virtual void | getAabb (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const |
| getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version | |
| virtual void | recalculateLocalAabb () |
| Re-calculate the local Aabb. | |
| virtual void | setLocalScaling (const btVector3 &scaling) |
| virtual const btVector3 & | getLocalScaling () const |
| virtual void | calculateLocalInertia (btScalar mass, btVector3 &inertia) const |
| virtual void | setMargin (btScalar margin) |
| virtual btScalar | getMargin () const |
| virtual const char * | getName () const |
| btDbvt * | getDynamicAabbTree () |
| void | calculatePrincipalAxisTransform (btScalar *masses, btTransform &principal, btVector3 &inertia) 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. | |
| int | getUpdateRevision () const |
| 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) | |
Protected Attributes | |
| btVector3 | m_localScaling |
Private Attributes | |
| btAlignedObjectArray < btCompoundShapeChild > | m_children |
| btVector3 | m_localAabbMin |
| btVector3 | m_localAabbMax |
| btDbvt * | m_dynamicAabbTree |
| int | m_updateRevision |
| increment m_updateRevision when adding/removing/replacing child shapes, so that some caches can be updated | |
| btScalar | m_collisionMargin |
The btCompoundShape allows to store multiple other btCollisionShapes This allows for moving concave collision objects.
This is more general then the static concave btBvhTriangleMeshShape. It has an (optional) dynamic aabb tree to accelerate early rejection tests.
Definition at line 54 of file btCompoundShape.h.
| btCompoundShape::btCompoundShape | ( | bool | enableDynamicAabbTree = true |
) |
Definition at line 21 of file btCompoundShape.cpp.
| btCompoundShape::~btCompoundShape | ( | ) | [virtual] |
Definition at line 40 of file btCompoundShape.cpp.
| void btCompoundShape::addChildShape | ( | const btTransform & | localTransform, | |
| btCollisionShape * | shape | |||
| ) |
Definition at line 49 of file btCompoundShape.cpp.
| btCompoundShape::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
Implements btCollisionShape.
Definition at line 187 of file btCompoundShape.cpp.
| void btCompoundShape::calculatePrincipalAxisTransform | ( | btScalar * | masses, | |
| btTransform & | principal, | |||
| btVector3 & | inertia | |||
| ) | 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.
"masses" points to an array of masses of the children. The resulting transform "principal" has to be applied inversely to all children transforms in order for the local coordinate system of the compound 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.
Definition at line 210 of file btCompoundShape.cpp.
| SIMD_FORCE_INLINE int btCompoundShape::calculateSerializeBufferSize | ( | ) | const [virtual] |
Reimplemented from btCollisionShape.
Definition at line 195 of file btCompoundShape.h.
| void btCompoundShape::getAabb | ( | const btTransform & | t, | |
| btVector3 & | aabbMin, | |||
| btVector3 & | aabbMax | |||
| ) | const [virtual] |
getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version
Implements btCollisionShape.
Definition at line 161 of file btCompoundShape.cpp.
| btCompoundShapeChild* btCompoundShape::getChildList | ( | ) | [inline] |
Definition at line 112 of file btCompoundShape.h.
| const btCollisionShape* btCompoundShape::getChildShape | ( | int | index | ) | const [inline] |
Definition at line 94 of file btCompoundShape.h.
| btCollisionShape* btCompoundShape::getChildShape | ( | int | index | ) | [inline] |
Definition at line 90 of file btCompoundShape.h.
| const btTransform& btCompoundShape::getChildTransform | ( | int | index | ) | const [inline] |
Definition at line 103 of file btCompoundShape.h.
| btTransform& btCompoundShape::getChildTransform | ( | int | index | ) | [inline] |
Definition at line 99 of file btCompoundShape.h.
| btDbvt* btCompoundShape::getDynamicAabbTree | ( | ) | [inline] |
Definition at line 147 of file btCompoundShape.h.
| virtual const btVector3& btCompoundShape::getLocalScaling | ( | ) | const [inline, virtual] |
Implements btCollisionShape.
Definition at line 126 of file btCompoundShape.h.
| virtual btScalar btCompoundShape::getMargin | ( | ) | const [inline, virtual] |
Implements btCollisionShape.
Definition at line 137 of file btCompoundShape.h.
| virtual const char* btCompoundShape::getName | ( | ) | const [inline, virtual] |
Implements btCollisionShape.
Definition at line 141 of file btCompoundShape.h.
| int btCompoundShape::getNumChildShapes | ( | ) | const [inline] |
Definition at line 85 of file btCompoundShape.h.
| int btCompoundShape::getUpdateRevision | ( | ) | const [inline] |
Definition at line 159 of file btCompoundShape.h.
| void btCompoundShape::recalculateLocalAabb | ( | ) | [virtual] |
Re-calculate the local Aabb.
Is called at the end of removeChildShapes. Use this yourself if you modify the children or their transforms.
Definition at line 137 of file btCompoundShape.cpp.
| void btCompoundShape::removeChildShape | ( | btCollisionShape * | shape | ) | [virtual] |
Remove all children shapes that contain the specified shape.
Definition at line 119 of file btCompoundShape.cpp.
| void btCompoundShape::removeChildShapeByIndex | ( | int | childShapeindex | ) |
Definition at line 104 of file btCompoundShape.cpp.
| const char * btCompoundShape::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 289 of file btCompoundShape.cpp.
| void btCompoundShape::setLocalScaling | ( | const btVector3 & | scaling | ) | [virtual] |
Implements btCollisionShape.
Definition at line 268 of file btCompoundShape.cpp.
| virtual void btCompoundShape::setMargin | ( | btScalar | margin | ) | [inline, virtual] |
Implements btCollisionShape.
Definition at line 133 of file btCompoundShape.h.
| void btCompoundShape::updateChildTransform | ( | int | childIndex, | |
| const btTransform & | newChildTransform | |||
| ) |
set a new transform for a child, and update internal data structures (local aabb and dynamic tree)
update the dynamic aabb tree
Definition at line 87 of file btCompoundShape.cpp.
Definition at line 56 of file btCompoundShape.h.
btScalar btCompoundShape::m_collisionMargin [private] |
Definition at line 65 of file btCompoundShape.h.
btDbvt* btCompoundShape::m_dynamicAabbTree [private] |
Definition at line 60 of file btCompoundShape.h.
btVector3 btCompoundShape::m_localAabbMax [private] |
Definition at line 58 of file btCompoundShape.h.
btVector3 btCompoundShape::m_localAabbMin [private] |
Definition at line 57 of file btCompoundShape.h.
btVector3 btCompoundShape::m_localScaling [protected] |
Definition at line 68 of file btCompoundShape.h.
int btCompoundShape::m_updateRevision [private] |
increment m_updateRevision when adding/removing/replacing child shapes, so that some caches can be updated
Definition at line 63 of file btCompoundShape.h.
1.6.1