CollisionSdkInterface.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef COLLISION_SDK_INTERFACE_H
  2. #define COLLISION_SDK_INTERFACE_H
  3. #include "../CollisionSdkC_Api.h"
  4. class CollisionSdkInterface
  5. {
  6. public:
  7. virtual ~CollisionSdkInterface()
  8. {
  9. }
  10. virtual plCollisionWorldHandle createCollisionWorld(int maxNumObjsCapacity, int maxNumShapesCapacity, int maxNumPairsCapacity) = 0;
  11. virtual void deleteCollisionWorld(plCollisionWorldHandle worldHandle) = 0;
  12. virtual plCollisionShapeHandle createSphereShape(plCollisionWorldHandle worldHandle, plReal radius) = 0;
  13. virtual plCollisionShapeHandle createPlaneShape(plCollisionWorldHandle worldHandle,
  14. plReal planeNormalX,
  15. plReal planeNormalY,
  16. plReal planeNormalZ,
  17. plReal planeConstant) = 0;
  18. virtual plCollisionShapeHandle createCapsuleShape(plCollisionWorldHandle worldHandle,
  19. plReal radius,
  20. plReal height,
  21. int capsuleAxis) = 0;
  22. virtual plCollisionShapeHandle createCompoundShape(plCollisionWorldHandle worldHandle) = 0;
  23. virtual void addChildShape(plCollisionWorldHandle worldHandle,plCollisionShapeHandle compoundShape, plCollisionShapeHandle childShape,plVector3 childPos,plQuaternion childOrn)=0;
  24. virtual void deleteShape(plCollisionWorldHandle worldHandle, plCollisionShapeHandle shape) = 0;
  25. virtual void addCollisionObject(plCollisionWorldHandle world, plCollisionObjectHandle object)=0;
  26. virtual void removeCollisionObject(plCollisionWorldHandle world, plCollisionObjectHandle object)=0;
  27. virtual plCollisionObjectHandle createCollisionObject( plCollisionWorldHandle worldHandle, void* userPointer, int userIndex, plCollisionShapeHandle cshape ,
  28. plVector3 startPosition,plQuaternion startOrientation )=0;
  29. virtual void deleteCollisionObject(plCollisionObjectHandle body)=0;
  30. virtual void setCollisionObjectTransform(plCollisionWorldHandle world, plCollisionObjectHandle body,
  31. plVector3 position,plQuaternion orientation )=0;
  32. virtual int collide(plCollisionWorldHandle world,plCollisionObjectHandle colA, plCollisionObjectHandle colB,
  33. lwContactPoint* pointsOut, int pointCapacity)=0;
  34. virtual void collideWorld( plCollisionWorldHandle world,
  35. plNearCallback filter, void* userData)=0;
  36. };
  37. #endif //COLLISION_SDK_INTERFACE_H