btCollisionObjectWrapper.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 "bullet/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. int m_partId;
  26. int m_index;
  27. btCollisionObjectWrapper(const btCollisionObjectWrapper* parent, const btCollisionShape* shape, const btCollisionObject* collisionObject, const btTransform& worldTransform, int partId, int index)
  28. : m_parent(parent), m_shape(shape), m_collisionObject(collisionObject), m_worldTransform(worldTransform),
  29. m_partId(partId), m_index(index)
  30. {}
  31. SIMD_FORCE_INLINE const btTransform& getWorldTransform() const { return m_worldTransform; }
  32. SIMD_FORCE_INLINE const btCollisionObject* getCollisionObject() const { return m_collisionObject; }
  33. SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { return m_shape; }
  34. };
  35. #endif //BT_COLLISION_OBJECT_WRAPPER_H