23 #ifndef BULLET_C_API_H
24 #define BULLET_C_API_H
26 #define PL_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name
28 #ifdef BT_USE_DOUBLE_PRECISION
81 extern void plDestroyProxy(plCollisionBroadphaseHandle bp, plBroadphaseProxyHandle proxyHandle);
100 extern void plAddRigidBody(plDynamicsWorldHandle world, plRigidBodyHandle
object);
102 extern void plRemoveRigidBody(plDynamicsWorldHandle world, plRigidBodyHandle
object);
107 extern plRigidBodyHandle
plCreateRigidBody(
void* user_data,
float mass, plCollisionShapeHandle cshape );
168 double plNearestPoints(
float p1[3],
float p2[3],
float p3[3],
float q1[3],
float q2[3],
float q3[3],
float *pa,
float *pb,
float normal[3]);
175 #endif //BULLET_C_API_H
plBroadphaseProxyHandle plCreateProxy(plCollisionBroadphaseHandle bp, void *clientData, plReal minX, plReal minY, plReal minZ, plReal maxX, plReal maxY, plReal maxZ)
plRigidBodyHandle plCreateRigidBody(void *user_data, float mass, plCollisionShapeHandle cshape)
plDynamicsWorldHandle plCreateDynamicsWorld(plPhysicsSdkHandle physicsSdk)
int plRayCast(plDynamicsWorldHandle world, const plVector3 rayStart, const plVector3 rayEnd, plRayCastResult res)
void plDestroyProxy(plCollisionBroadphaseHandle bp, plBroadphaseProxyHandle proxyHandle)
plCollisionShapeHandle plNewBoxShape(plReal x, plReal y, plReal z)
void plSetOpenGLMatrix(plRigidBodyHandle object, plReal *matrix)
void plAddChildShape(plCollisionShapeHandle compoundShape, plCollisionShapeHandle childShape, plVector3 childPos, plQuaternion childOrn)
void plAddVertex(plCollisionShapeHandle convexHull, plReal x, plReal y, plReal z)
plCollisionShapeHandle plNewConeShape(plReal radius, plReal height)
void plStepSimulation(plDynamicsWorldHandle, plReal timeStep)
void plSetOrientation(plRigidBodyHandle object, const plQuaternion orientation)
void plDeleteShape(plCollisionShapeHandle shape)
struct plRayCastResult plRayCastResult
plMeshInterfaceHandle plNewMeshInterface(void)
void(* btBroadphaseCallback)(void *clientData, void *object1, void *object2)
Collision World, not strictly necessary, you can also just create a Dynamics World with Rigid Bodies ...
#define PL_DECLARE_HANDLE(name)
plCollisionWorldHandle plCreateCollisionWorld(plPhysicsSdkHandle physicsSdk)
plVector3 m_positionWorld
plCollisionShapeHandle plNewCylinderShape(plReal radius, plReal height)
void plDeleteDynamicsWorld(plDynamicsWorldHandle world)
void plGetPosition(plRigidBodyHandle object, plVector3 position)
void plDestroyBroadphase(plCollisionBroadphaseHandle bp)
void plGetOrientation(plRigidBodyHandle object, plQuaternion orientation)
plCollisionShapeHandle plNewCompoundShape(void)
plPhysicsSdkHandle plNewBulletSdk(void)
Create and Delete a Physics SDK.
plCollisionShapeHandle plNewCapsuleShape(plReal radius, plReal height)
void plRemoveRigidBody(plDynamicsWorldHandle world, plRigidBodyHandle object)
void plSetScaling(plCollisionShapeHandle shape, plVector3 scaling)
void plSetEuler(plReal yaw, plReal pitch, plReal roll, plQuaternion orient)
void plDeleteRigidBody(plRigidBodyHandle body)
plCollisionBroadphaseHandle plCreateSapBroadphase(btBroadphaseCallback beginCallback, btBroadphaseCallback endCallback)
void plAddRigidBody(plDynamicsWorldHandle world, plRigidBodyHandle object)
plCollisionShapeHandle plNewStaticTriangleMeshShape(plMeshInterfaceHandle)
plCollisionShapeHandle plNewSphereShape(plReal radius)
plCollisionShapeHandle plNewConvexHullShape(void)
plCollisionShapeHandle m_shape
double plNearestPoints(float p1[3], float p2[3], float p3[3], float q1[3], float q2[3], float q3[3], float *pa, float *pb, float normal[3])
void plSetPosition(plRigidBodyHandle object, const plVector3 position)
void plSetBoundingBox(plBroadphaseProxyHandle proxyHandle, plReal minX, plReal minY, plReal minZ, plReal maxX, plReal maxY, plReal maxZ)
void plDeletePhysicsSdk(plPhysicsSdkHandle physicsSdk)
void plGetOpenGLMatrix(plRigidBodyHandle object, plReal *matrix)
void plAddTriangle(plMeshInterfaceHandle meshHandle, plVector3 v0, plVector3 v1, plVector3 v2)