2
0

btCollisionObjectWrapper.h 2.1 KB

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