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     const btTransform* m_preTransform;
31 	int m_partId;
32 	int m_index;
33 
btCollisionObjectWrapperbtCollisionObjectWrapper34 	btCollisionObjectWrapper(const btCollisionObjectWrapper* parent, const btCollisionShape* shape, const btCollisionObject* collisionObject, const btTransform& worldTransform, int partId, int index)
35 		: m_parent(parent), m_shape(shape), m_collisionObject(collisionObject), m_worldTransform(worldTransform), m_preTransform(NULL), m_partId(partId), m_index(index)
36 	{
37 	}
38 
btCollisionObjectWrapperbtCollisionObjectWrapper39     btCollisionObjectWrapper(const btCollisionObjectWrapper* parent, const btCollisionShape* shape, const btCollisionObject* collisionObject, const btTransform& worldTransform, const btTransform& preTransform, int partId, int index)
40     : m_parent(parent), m_shape(shape), m_collisionObject(collisionObject), m_worldTransform(worldTransform), m_preTransform(&preTransform), m_partId(partId), m_index(index)
41     {
42     }
43 
getWorldTransformbtCollisionObjectWrapper44 	SIMD_FORCE_INLINE const btTransform& getWorldTransform() const { return m_worldTransform; }
getCollisionObjectbtCollisionObjectWrapper45 	SIMD_FORCE_INLINE const btCollisionObject* getCollisionObject() const { return m_collisionObject; }
getCollisionShapebtCollisionObjectWrapper46 	SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { return m_shape; }
47 };
48 
49 #endif  //BT_COLLISION_OBJECT_WRAPPER_H
50