#ifndef BULLET2_COLLISION_SDK_H #define BULLET2_COLLISION_SDK_H #include "CollisionSdkInterface.h" class Bullet2CollisionSdk : public CollisionSdkInterface { struct Bullet2CollisionSdkInternalData* m_internalData; public: Bullet2CollisionSdk(); virtual ~Bullet2CollisionSdk(); virtual plCollisionWorldHandle createCollisionWorld(int maxNumObjsCapacity, int maxNumShapesCapacity, int maxNumPairsCapacity); virtual void deleteCollisionWorld(plCollisionWorldHandle worldHandle); virtual plCollisionShapeHandle createSphereShape(plCollisionWorldHandle worldHandle, plReal radius); virtual plCollisionShapeHandle createPlaneShape(plCollisionWorldHandle worldHandle, plReal planeNormalX, plReal planeNormalY, plReal planeNormalZ, plReal planeConstant); virtual plCollisionShapeHandle createCapsuleShape(plCollisionWorldHandle worldHandle, plReal radius, plReal height, int capsuleAxis); virtual plCollisionShapeHandle createCompoundShape(plCollisionWorldHandle worldHandle); virtual void addChildShape(plCollisionWorldHandle worldHandle, plCollisionShapeHandle compoundShape, plCollisionShapeHandle childShape, plVector3 childPos, plQuaternion childOrn); virtual void deleteShape(plCollisionWorldHandle worldHandle, plCollisionShapeHandle shape); virtual void addCollisionObject(plCollisionWorldHandle world, plCollisionObjectHandle object); virtual void removeCollisionObject(plCollisionWorldHandle world, plCollisionObjectHandle object); virtual plCollisionObjectHandle createCollisionObject(plCollisionWorldHandle worldHandle, void* userPointer, int userIndex, plCollisionShapeHandle cshape, plVector3 startPosition, plQuaternion startOrientation); virtual void deleteCollisionObject(plCollisionObjectHandle body); virtual void setCollisionObjectTransform(plCollisionWorldHandle world, plCollisionObjectHandle body, plVector3 position, plQuaternion orientation); virtual int collide(plCollisionWorldHandle world, plCollisionObjectHandle colA, plCollisionObjectHandle colB, lwContactPoint* pointsOut, int pointCapacity); virtual void collideWorld(plCollisionWorldHandle world, plNearCallback filter, void* userData); static plCollisionSdkHandle createBullet2SdkHandle(); }; #endif //BULLET2_COLLISION_SDK_H