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 int m_partId; 31 int m_index; 32 33 btCollisionObjectWrapper(const btCollisionObjectWrapper* parent, const btCollisionShape* shape, const btCollisionObject* collisionObject, const btTransform& worldTransform, int partId, int index) 34 : m_parent(parent), m_shape(shape), m_collisionObject(collisionObject), m_worldTransform(worldTransform), 35 m_partId(partId), m_index(index) 36 {} 37 38 SIMD_FORCE_INLINE const btTransform& getWorldTransform() const { return m_worldTransform; } 39 SIMD_FORCE_INLINE const btCollisionObject* getCollisionObject() const { return m_collisionObject; } 40 SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { return m_shape; } 41 }; 42 43 #endif //BT_COLLISION_OBJECT_WRAPPER_H 44