Go to the documentation of this file.00001 #ifndef BT_COLLISION_OBJECT_WRAPPER_H
00002 #define BT_COLLISION_OBJECT_WRAPPER_H
00003
00006 class btCollisionShape;
00007 class btCollisionObject;
00008 class btTransform;
00009 #include "LinearMath/btScalar.h"
00010
00011 #define BT_DECLARE_STACK_ONLY_OBJECT \
00012 private: \
00013 void* operator new(size_t size); \
00014 void operator delete(void*);
00015
00016 struct btCollisionObjectWrapper;
00017 struct btCollisionObjectWrapper
00018 {
00019 BT_DECLARE_STACK_ONLY_OBJECT
00020
00021 private:
00022 btCollisionObjectWrapper(const btCollisionObjectWrapper&);
00023 btCollisionObjectWrapper* operator=(const btCollisionObjectWrapper&);
00024
00025 public:
00026 const btCollisionObjectWrapper* m_parent;
00027 const btCollisionShape* m_shape;
00028 const btCollisionObject* m_collisionObject;
00029 const btTransform& m_worldTransform;
00030 int m_partId;
00031 int m_index;
00032
00033 btCollisionObjectWrapper(const btCollisionObjectWrapper* parent, const btCollisionShape* shape, const btCollisionObject* collisionObject, const btTransform& worldTransform, int partId, int index)
00034 : m_parent(parent), m_shape(shape), m_collisionObject(collisionObject), m_worldTransform(worldTransform),
00035 m_partId(partId), m_index(index)
00036 {}
00037
00038 SIMD_FORCE_INLINE const btTransform& getWorldTransform() const { return m_worldTransform; }
00039 SIMD_FORCE_INLINE const btCollisionObject* getCollisionObject() const { return m_collisionObject; }
00040 SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { return m_shape; }
00041 };
00042
00043 #endif //BT_COLLISION_OBJECT_WRAPPER_H