1 #ifndef BT_COLLISION_OBJECT_WRAPPER_H
2 #define BT_COLLISION_OBJECT_WRAPPER_H
4 ///btCollisionObjectWrapperis an internal data structure.
5 ///Most users can ignore this and use btCollisionObject and btCollisionShape instead
6 class btCollisionShape;
7 class btCollisionObject;
9 #include "LinearMath/btScalar.h" // for SIMD_FORCE_INLINE definition
11 #define BT_DECLARE_STACK_ONLY_OBJECT \
13 void* operator new(size_t size); \
14 void operator delete(void*);
16 struct btCollisionObjectWrapper;
17 struct btCollisionObjectWrapper
19 BT_DECLARE_STACK_ONLY_OBJECT
22 btCollisionObjectWrapper(const btCollisionObjectWrapper&); // not implemented. Not allowed.
23 btCollisionObjectWrapper* operator=(const btCollisionObjectWrapper&);
26 const btCollisionObjectWrapper* m_parent;
27 const btCollisionShape* m_shape;
28 const btCollisionObject* m_collisionObject;
29 const btTransform& m_worldTransform;
30 const btTransform* m_preTransform;
34 btCollisionObjectWrapper(const btCollisionObjectWrapper* parent, const btCollisionShape* shape, const btCollisionObject* collisionObject, const btTransform& worldTransform, int partId, int index)
35 : m_parent(parent), m_shape(shape), m_collisionObject(collisionObject), m_worldTransform(worldTransform), m_preTransform(NULL), m_partId(partId), m_index(index)
39 btCollisionObjectWrapper(const btCollisionObjectWrapper* parent, const btCollisionShape* shape, const btCollisionObject* collisionObject, const btTransform& worldTransform, const btTransform& preTransform, int partId, int index)
40 : m_parent(parent), m_shape(shape), m_collisionObject(collisionObject), m_worldTransform(worldTransform), m_preTransform(&preTransform), m_partId(partId), m_index(index)
44 SIMD_FORCE_INLINE const btTransform& getWorldTransform() const { return m_worldTransform; }
45 SIMD_FORCE_INLINE const btCollisionObject* getCollisionObject() const { return m_collisionObject; }
46 SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { return m_shape; }
49 #endif //BT_COLLISION_OBJECT_WRAPPER_H