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