libliquidfun-sys 0.4.0

A thin Rust ffi wrapper on top of Box2D and LiquidFun. Built using autocxx.
Documentation
#pragma once

#include <box2d/box2d.h>

class b2CircleShape;
class b2DistanceJoint;
class b2FrictionJoint;
class b2GearJoint;
class b2MotorJoint;
class b2MouseJoint;
class b2PrismaticJoint;
class b2PulleyJoint;
class b2RevoluteJoint;
class b2RopeJoint;
class b2WeldJoint;
class b2WheelJoint;
class b2World;
enum b2JointType;
struct b2DistanceJointDef;
struct b2FrictionJointDef;
struct b2GearJointDef;
struct b2MotorJointDef;
struct b2MouseJointDef;
struct b2ParticleGroupDef;
struct b2PrismaticJointDef;
struct b2PulleyJointDef;
struct b2RevoluteJointDef;
struct b2RopeJointDef;
struct b2Vec2;
struct b2WeldJointDef;
struct b2WheelJointDef;

void SetCircleRadius(b2CircleShape& self, float radius);

void SetCirclePosition(b2CircleShape& self, const b2Vec2& position);

b2ParticleGroupDef* CreateParticleGroupDef(
    uint32 flags,
    uint32 groupFlags,
    b2Vec2 position,
    float angle,
    b2Vec2 linearVelocity,
    float angularVelocity,
    float strength,
    const b2Shape& shape,
    float stride,
    float lifetime
    );

b2RevoluteJoint* CreateRevoluteJoint(
        b2World& world,
        b2Body* bodyA,
        b2Body* bodyB,
        bool collideConnected,
        b2Vec2 localAnchorA,
        b2Vec2 localAnchorB,
        float referenceAngle,
        bool enableLimit,
        float lowerAngle,
        float upperAngle,
        bool enableMotor,
        float maxMotorTorque,
        float motorSpeed);


b2PrismaticJoint* CreatePrismaticJoint(
        b2World& world,
        b2Body* bodyA,
        b2Body* bodyB,
        bool collideConnected,
        b2Vec2 localAnchorA,
        b2Vec2 localAnchorB,
        b2Vec2 localAxisA,
        float referenceAngle,
        bool enableLimit,
        float lowerTranslation,
        float upperTranslation,
        bool enableMotor,
        float maxMotorForce,
        float motorSpeed);

b2DistanceJoint* CreateDistanceJoint(
    b2World& world,
    b2Body* bodyA,
    b2Body* bodyB,
    bool collideConnected,
    b2Vec2 localAnchorA,
    b2Vec2 localAnchorB,
    float length,
    float minLength,
    float maxLength,
    float stiffness,
    float damping
 );

b2PulleyJoint* CreatePulleyJoint(
    b2World& world,
    b2Body* bodyA,
    b2Body* bodyB,
    bool collideConnected,
    b2Vec2 groundAnchorA,
    b2Vec2 groundAnchorB,
    b2Vec2 localAnchorA,
    b2Vec2 localAnchorB,
    float lengthA,
    float lengthB,
    float ratio
);

b2MouseJoint* CreateMouseJoint(
    b2World& world,
    b2Body* bodyA,
    b2Body* bodyB,
    bool collideConnected,
    b2Vec2 target,
    float maxForce,
    float stiffness,
    float damping
);

b2GearJoint* CreateGearJoint(
    b2World& world,
    b2Body* bodyA,
    b2Body* bodyB,
    bool collideConnected,
    b2Joint* joint1,
    b2Joint* joint2,
    float ratio
);

b2WheelJoint* CreateWheelJoint(
    b2World& world,
    b2Body* bodyA,
    b2Body* bodyB,
    bool collideConnected,
    b2Vec2 localAnchorA,
    b2Vec2 localAnchorB,
    b2Vec2 localAxisA,
    bool enableLimit,
    float lowerTranslation,
    float upperTranslation,
    bool enableMotor,
    float maxMotorTorque,
    float motorSpeed,
    float stiffness,
    float damping
);

b2WeldJoint* CreateWeldJoint(
    b2World& world,
    b2Body* bodyA,
    b2Body* bodyB,
    bool collideConnected,
    b2Vec2 localAnchorA,
    b2Vec2 localAnchorB,
    float referenceAngle,
    float stiffness,
    float damping
);

b2FrictionJoint* CreateFrictionJoint(
    b2World& world,
    b2Body* bodyA,
    b2Body* bodyB,
    bool collideConnected,
    b2Vec2 localAnchorA,
    b2Vec2 localAnchorB,
    float maxForce,
    float maxTorque
);

b2MotorJoint* CreateMotorJoint(
    b2World& world,
    b2Body* bodyA,
    b2Body* bodyB,
    bool collideConnected,
    b2Vec2 linearOffset,
    float angularOffset,
    float maxForce,
    float maxTorque,
    float correctionFactor
);