• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 	int		m_partId;
31 	int		m_index;
32 
btCollisionObjectWrapperbtCollisionObjectWrapper33 	btCollisionObjectWrapper(const btCollisionObjectWrapper* parent, const btCollisionShape* shape, const btCollisionObject* collisionObject, const btTransform& worldTransform, int partId, int index)
34 	: m_parent(parent), m_shape(shape), m_collisionObject(collisionObject), m_worldTransform(worldTransform),
35 	m_partId(partId), m_index(index)
36 	{}
37 
getWorldTransformbtCollisionObjectWrapper38 	SIMD_FORCE_INLINE const btTransform& getWorldTransform() const { return m_worldTransform; }
getCollisionObjectbtCollisionObjectWrapper39 	SIMD_FORCE_INLINE const btCollisionObject* getCollisionObject() const { return m_collisionObject; }
getCollisionShapebtCollisionObjectWrapper40 	SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { return m_shape; }
41 };
42 
43 #endif //BT_COLLISION_OBJECT_WRAPPER_H
44