btCollisionObjectWrapper.h

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" // for SIMD_FORCE_INLINE definition
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&); // not implemented. Not allowed.
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