1
#ifndef BT_COLLISION_OBJECT_WRAPPER_H
2
#define BT_COLLISION_OBJECT_WRAPPER_H
4
///btCollisionObjectWrapperis an internal data structure.
5
///Most users can ignore this and use btCollisionObject and btCollisionShape instead
6
class btCollisionShape;
7
class btCollisionObject;
9
#include "LinearMath/btScalar.h" // for SIMD_FORCE_INLINE definition
11
#define BT_DECLARE_STACK_ONLY_OBJECT \
13
void* operator new(size_t size); \
14
void operator delete(void*);
16
struct btCollisionObjectWrapper;
17
struct btCollisionObjectWrapper
19
BT_DECLARE_STACK_ONLY_OBJECT
22
btCollisionObjectWrapper(const btCollisionObjectWrapper&); // not implemented. Not allowed.
23
btCollisionObjectWrapper* operator=(const btCollisionObjectWrapper&);
26
const btCollisionObjectWrapper* m_parent;
27
const btCollisionShape* m_shape;
28
const btCollisionObject* m_collisionObject;
29
const btTransform& m_worldTransform;
33
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)
38
SIMD_FORCE_INLINE const btTransform& getWorldTransform() const { return m_worldTransform; }
39
SIMD_FORCE_INLINE const btCollisionObject* getCollisionObject() const { return m_collisionObject; }
40
SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { return m_shape; }
43
#endif //BT_COLLISION_OBJECT_WRAPPER_H