1 #ifndef BT_COLLISION_OBJECT_WRAPPER_H 2 #define BT_COLLISION_OBJECT_WRAPPER_H 3 4 ///btCollisionObjectWrapperis an internal data structure. 5 ///Most users can ignore this and use btCollisionObject and btCollisionShape instead 6 class btCollisionShape; 7 class btCollisionObject; 8 class btTransform; 9 #include "LinearMath/btScalar.h" // for SIMD_FORCE_INLINE definition 10 11 #define BT_DECLARE_STACK_ONLY_OBJECT \ 12 private: \ 13 void* operator new(size_t size); \ 14 void operator delete(void*); 15 16 struct btCollisionObjectWrapper; 17 struct btCollisionObjectWrapper 18 { 19 BT_DECLARE_STACK_ONLY_OBJECT 20 21 private: 22 btCollisionObjectWrapper(const btCollisionObjectWrapper&); // not implemented. Not allowed. 23 btCollisionObjectWrapper* operator=(const btCollisionObjectWrapper&); 24 25 public: 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; 31 int m_partId; 32 int m_index; 33 btCollisionObjectWrapperbtCollisionObjectWrapper34 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) 36 { 37 } 38 btCollisionObjectWrapperbtCollisionObjectWrapper39 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) 41 { 42 } 43 getWorldTransformbtCollisionObjectWrapper44 SIMD_FORCE_INLINE const btTransform& getWorldTransform() const { return m_worldTransform; } getCollisionObjectbtCollisionObjectWrapper45 SIMD_FORCE_INLINE const btCollisionObject* getCollisionObject() const { return m_collisionObject; } getCollisionShapebtCollisionObjectWrapper46 SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { return m_shape; } 47 }; 48 49 #endif //BT_COLLISION_OBJECT_WRAPPER_H 50