16 #ifndef BT_COMPOUND_SHAPE_H    17 #define BT_COMPOUND_SHAPE_H    73         explicit btCompoundShape(
bool enableDynamicAabbTree = 
true, 
const int initialChildCapacity = 0);
    77         void    addChildShape(
const btTransform& localTransform,btCollisionShape* shape);
    80         virtual void removeChildShape(btCollisionShape* shape);
    82         void removeChildShapeByIndex(
int childShapeindex);
    87                 return int (m_children.
size());
    92                 return m_children[index].m_childShape;
    96                 return m_children[index].m_childShape;
   101                 return m_children[index].m_transform;
   105                 return m_children[index].m_transform;
   109         void    updateChildTransform(
int childIndex, 
const btTransform& newChildTransform, 
bool shouldRecalculateLocalAabb = 
true);
   114                 return &m_children[0];
   122         virtual void recalculateLocalAabb(); 
   124         virtual void    setLocalScaling(
const btVector3& scaling);
   128                 return m_localScaling;
   135                 m_collisionMargin = margin;
   139                 return m_collisionMargin;
   148                 return m_dynamicAabbTree;
   153                 return m_dynamicAabbTree;
   156         void createAabbTreeFromChildren();
   167                 return m_updateRevision;
   170         virtual int     calculateSerializeBufferSize() 
const;
   173         virtual const char*     serialize(
void* dataBuffer, 
btSerializer* serializer) 
const;
   212 #endif //BT_COMPOUND_SHAPE_H 
btCompoundShapeChildData * m_childShapePtr
const btTransform & getChildTransform(int index) const
btDbvt * m_dynamicAabbTree
btAlignedObjectArray< btCompoundShapeChild > m_children
virtual const btVector3 & getLocalScaling() const
const btDbvt * getDynamicAabbTree() const
const btCollisionShape * getChildShape(int index) const
The btDbvt class implements a fast dynamic bounding volume tree based on axis aligned bounding boxes ...
The btCollisionShape class provides an interface for collision shapes that can be shared among btColl...
#define SIMD_FORCE_INLINE
btCollisionShape * m_childShape
virtual void setMargin(btScalar margin)
int getUpdateRevision() const
btCollisionShapeData m_collisionShapeData
struct btDbvtNode * m_node
int getNumChildShapes() const
virtual int calculateSerializeBufferSize() const
int m_updateRevision
increment m_updateRevision when adding/removing/replacing child shapes, so that some caches can be up...
btDbvt * getDynamicAabbTree()
bool operator==(const btCompoundShapeChild &c1, const btCompoundShapeChild &c2)
btTransform & getChildTransform(int index)
btTransformFloatData m_transform
btScalar m_collisionMargin
btVector3 can be used to represent 3D points and vectors. 
#define ATTRIBUTE_ALIGNED16(a)
int size() const
return the number of elements in the array 
btCompoundShapeChild * getChildList()
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
#define BT_DECLARE_ALIGNED_ALLOCATOR()
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
The btCompoundShape allows to store multiple other btCollisionShapes This allows for moving concave c...
btCollisionShapeData * m_childShape
btCollisionShape * getChildShape(int index)
virtual btScalar getMargin() const
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
virtual const char * getName() const