added preliminary broadphase/collision C-API
This commit is contained in:
@@ -40,17 +40,27 @@ extern "C" {
|
|||||||
|
|
||||||
/* Particular physics SDK */
|
/* Particular physics SDK */
|
||||||
PL_DECLARE_HANDLE(plPhysicsSdkHandle);
|
PL_DECLARE_HANDLE(plPhysicsSdkHandle);
|
||||||
|
|
||||||
/* Dynamics world, belonging to some physics SDK */
|
/* Dynamics world, belonging to some physics SDK */
|
||||||
PL_DECLARE_HANDLE(plDynamicsWorldHandle);
|
PL_DECLARE_HANDLE(plDynamicsWorldHandle);
|
||||||
|
|
||||||
/* Rigid Body that can be part of a Dynamics World */
|
/* Rigid Body that can be part of a Dynamics World */
|
||||||
PL_DECLARE_HANDLE(plRigidBodyHandle);
|
PL_DECLARE_HANDLE(plRigidBodyHandle);
|
||||||
|
|
||||||
/* Collision Shape/Geometry, property of a Rigid Body */
|
/* Collision Shape/Geometry, property of a Rigid Body */
|
||||||
PL_DECLARE_HANDLE(plCollisionShapeHandle);
|
PL_DECLARE_HANDLE(plCollisionShapeHandle);
|
||||||
|
|
||||||
/* Constraint for Rigid Bodies */
|
/* Constraint for Rigid Bodies */
|
||||||
PL_DECLARE_HANDLE(plConstraintHandle);
|
PL_DECLARE_HANDLE(plConstraintHandle);
|
||||||
|
|
||||||
/* Triangle Mesh interface */
|
/* Triangle Mesh interface */
|
||||||
PL_DECLARE_HANDLE(plMeshInterfaceHandle);
|
PL_DECLARE_HANDLE(plMeshInterfaceHandle);
|
||||||
|
|
||||||
|
/* Broadphase Scene/Proxy Handles */
|
||||||
|
PL_DECLARE_HANDLE(plCollisionBroadphaseHandle);
|
||||||
|
PL_DECLARE_HANDLE(plBroadphaseProxyHandle);
|
||||||
|
PL_DECLARE_HANDLE(plCollisionWorldHandle);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Create and Delete a Physics SDK
|
Create and Delete a Physics SDK
|
||||||
*/
|
*/
|
||||||
@@ -58,6 +68,27 @@ extern "C" {
|
|||||||
extern plPhysicsSdkHandle plNewBulletSdk(); //this could be also another sdk, like ODE, PhysX etc.
|
extern plPhysicsSdkHandle plNewBulletSdk(); //this could be also another sdk, like ODE, PhysX etc.
|
||||||
extern void plDeletePhysicsSdk(plPhysicsSdkHandle physicsSdk);
|
extern void plDeletePhysicsSdk(plPhysicsSdkHandle physicsSdk);
|
||||||
|
|
||||||
|
/* Collision World, not strictly necessary, you can also just create a Dynamics World with Rigid Bodies which internally manages the Collision World with Collision Objects */
|
||||||
|
|
||||||
|
typedef void(*btBroadphaseCallback)(void* clientData, void* object1,void* object2);
|
||||||
|
|
||||||
|
extern plCollisionBroadphaseHandle plCreateSapBroadphase(btBroadphaseCallback beginCallback,btBroadphaseCallback endCallback);
|
||||||
|
|
||||||
|
extern void plDestroyBroadphase(plCollisionBroadphaseHandle bp);
|
||||||
|
|
||||||
|
extern plBroadphaseProxyHandle plCreateProxy(plCollisionBroadphaseHandle bp, void* clientData, plReal minX,plReal minY,plReal minZ, plReal maxX,plReal maxY, plReal maxZ);
|
||||||
|
|
||||||
|
extern void plDestroyProxy(plCollisionBroadphaseHandle bp, plBroadphaseProxyHandle proxyHandle);
|
||||||
|
|
||||||
|
extern void plSetBoundingBox(plBroadphaseProxyHandle proxyHandle, plReal minX,plReal minY,plReal minZ, plReal maxX,plReal maxY, plReal maxZ);
|
||||||
|
|
||||||
|
/* todo: add pair cache support with queries like add/remove/find pair */
|
||||||
|
|
||||||
|
extern plCollisionWorldHandle plCreateCollisionWorld(plPhysicsSdkHandle physicsSdk);
|
||||||
|
|
||||||
|
/* todo: add/remove objects */
|
||||||
|
|
||||||
|
|
||||||
/* Dynamics World */
|
/* Dynamics World */
|
||||||
|
|
||||||
extern plDynamicsWorldHandle plCreateDynamicsWorld(plPhysicsSdkHandle physicsSdk);
|
extern plDynamicsWorldHandle plCreateDynamicsWorld(plPhysicsSdkHandle physicsSdk);
|
||||||
|
|||||||
Reference in New Issue
Block a user