Sign in

    Milky2018/moon_rapier/dynamics does not have a README file

    AxesMask

    pub struct AxesMask {
    bits : Int
    }
    fn AxesMask::AxesMask(bits : Int) -> AxesMask

    AxesMask::all

    fn AxesMask::all() -> AxesMask

    AxesMask::ang_axes

    fn AxesMask::ang_axes() -> AxesMask

    AxesMask::ang_x

    fn AxesMask::ang_x() -> AxesMask

    AxesMask::ang_y

    fn AxesMask::ang_y() -> AxesMask

    AxesMask::ang_z

    fn AxesMask::ang_z() -> AxesMask

    AxesMask::bits

    fn AxesMask::bits(self : AxesMask) -> Int

    AxesMask::contains

    fn AxesMask::contains(self : AxesMask, other : AxesMask) -> Bool

    AxesMask::empty

    fn AxesMask::empty() -> AxesMask

    AxesMask::insert

    fn AxesMask::insert(self : AxesMask, other : AxesMask) -> AxesMask

    AxesMask::lin_axes

    fn AxesMask::lin_axes() -> AxesMask

    AxesMask::lin_x

    fn AxesMask::lin_x() -> AxesMask

    AxesMask::lin_y

    fn AxesMask::lin_y() -> AxesMask

    AxesMask::lin_z

    fn AxesMask::lin_z() -> AxesMask

    AxesMask::remove

    fn AxesMask::remove(self : AxesMask, other : AxesMask) -> AxesMask

    AxisState3DReal

    pub(all) enum AxisState3DReal {
    Free
    Locked
    Limited(Float, Float)
    }

    Builder helpers for the real dim3 joint constraints.

    BodyPair

    pub struct BodyPair {
    body1 : RigidBodyHandle
    body2 : RigidBodyHandle
    }
    fn BodyPair::BodyPair(body1 : RigidBodyHandle, body2 : RigidBodyHandle) -> BodyPair

    CCDSolver

    pub struct CCDSolver {
    // private fields
    }
    fn CCDSolver::CCDSolver() -> CCDSolver

    CCDSolver::clamp_motions

    fn CCDSolver::clamp_motions(self : CCDSolver, dt : Float, bodies : RigidBodySet, impacts : PredictedImpacts) -> Unit

    CCDSolver::clamp_motions3

    fn CCDSolver::clamp_motions3(self : CCDSolver, dt : Float, bodies : RigidBodySet3, impacts : PredictedImpacts) -> Unit

    CCDSolver::find_first_impact

    fn CCDSolver::find_first_impact(self : CCDSolver, impacts : PredictedImpacts) -> (RigidBodyHandle, Float)?

    Find the first time-of-impact among the predicted impacts.

    This port currently does not compute CCD impacts, so this always returns None.

    CCDSolver::predict_impacts_at_next_positions

    fn CCDSolver::predict_impacts_at_next_positions(self : CCDSolver, _bodies : RigidBodySet, _dt : Float) -> PredictedImpacts

    Predicts potential impacts if all bodies moved to their next_position.

    This port currently does not perform CCD shape-casts against colliders here, so it returns NoImpacts. It is still exposed for pub parity.

    CCDSolver::update_ccd_active_flags

    fn CCDSolver::update_ccd_active_flags(self : CCDSolver, islands : IslandManager, bodies : RigidBodySet, dt : Float, include_forces : Bool) -> Bool

    CCDSolver::update_ccd_active_flags3

    fn CCDSolver::update_ccd_active_flags3(self : CCDSolver, islands : IslandManager3, bodies : RigidBodySet3, dt : Float, include_forces : Bool) -> Bool

    CoefficientCombineRule

    pub(all) enum CoefficientCombineRule {
    Average
    Min
    Multiply
    Max
    ClampedSum
    }

    CoefficientCombineRule::combine

    fn CoefficientCombineRule::combine(coeff1 : Float, coeff2 : Float, rule_value1 : CoefficientCombineRule, rule_value2 : CoefficientCombineRule) -> Float

    ContactGraph

    pub struct ContactGraph {
    pairs : Array[(RigidBodyHandle, RigidBodyHandle)]
    }
    fn ContactGraph::ContactGraph() -> ContactGraph

    ContactGraph::add_pair

    fn ContactGraph::add_pair(self : ContactGraph, body1 : RigidBodyHandle, body2 : RigidBodyHandle) -> Unit

    ContactGraph::clear

    fn ContactGraph::clear(self : ContactGraph) -> Unit

    DVector

    type DVector

    DVector::as_array

    fn DVector::as_array(self : DVector) -> Array[Float]

    DVector::equals

    fn DVector::equals(self : DVector, other : DVector) -> Bool

    DVector::from_array

    fn DVector::from_array(values : Array[Float]) -> DVector

    DVector::from_fn

    fn DVector::from_fn(size : Int, init : (Int) -> Float) -> DVector

    DVector::len

    fn DVector::len(self : DVector) -> Int

    DVector::scale_in_place

    fn DVector::scale_in_place(self : DVector, value : Float) -> Unit

    FixedJoint

    pub struct FixedJoint {
    local_anchor1 :
    Vec2

    local_anchor2 :
    Vec2

    }
    fn FixedJoint::FixedJoint() -> FixedJoint

    FixedJoint3DRealBuilder

    pub struct FixedJoint3DRealBuilder {
    inner : GenericJoint3DRealBuilder
    }
    fn FixedJoint3DRealBuilder::FixedJoint3DRealBuilder() -> FixedJoint3DRealBuilder

    FixedJoint3DRealBuilder::build

    FixedJoint3DRealBuilder::local_anchor1

    FixedJoint3DRealBuilder::local_anchor2

    FixedJoint3DRealBuilder::local_basis1

    FixedJoint3DRealBuilder::local_basis2

    FixedJointBuilder

    pub struct FixedJointBuilder {
    // private fields
    }
    fn FixedJointBuilder::FixedJointBuilder() -> FixedJointBuilder

    FixedJointBuilder::build

    FixedJointBuilder::local_anchor1

    FixedJointBuilder::local_anchor2

    FrictionModel

    pub enum FrictionModel {
    Simplified
    Coulomb
    }

    Friction models for contact constraints.

    Rapier exposes this in 3D; we include it unconditionally for pub parity.

    FrictionModel::coulomb

    fn FrictionModel::coulomb() -> FrictionModel

    FrictionModel::default

    fn FrictionModel::default() -> FrictionModel

    FrictionModel::simplified

    fn FrictionModel::simplified() -> FrictionModel

    GenericJoint

    pub struct GenericJoint {
    local_frame1 :
    Isometry2

    local_frame2 :
    Isometry2

    axis3 :
    Vec3

    local_anchor1_3 :
    Vec3

    local_anchor2_3 :
    Vec3

    local_frame1_rotation :
    Quat

    local_frame2_rotation :
    Quat

    locked_axes : JointAxesMask
    limit_axes : JointAxesMask
    motor_axes : JointAxesMask
    coupled_axes : JointAxesMask
    limits : JointLimits3
    motors : JointMotors3
    softness : SpringCoefficients
    contacts_enabled : Bool
    enabled : JointEnabled
    user_data : Int
    }
    fn GenericJoint::GenericJoint(locked_axes : JointAxesMask) -> GenericJoint

    GenericJoint::as_fixed

    fn GenericJoint::as_fixed(self : GenericJoint) -> GenericJoint?

    GenericJoint::as_fixed_mut

    fn GenericJoint::as_fixed_mut(self : GenericJoint) -> GenericJoint?

    GenericJoint::as_prismatic

    fn GenericJoint::as_prismatic(self : GenericJoint) -> GenericJoint?

    GenericJoint::as_prismatic_mut

    fn GenericJoint::as_prismatic_mut(self : GenericJoint) -> GenericJoint?

    GenericJoint::as_revolute

    fn GenericJoint::as_revolute(self : GenericJoint) -> GenericJoint?

    GenericJoint::as_revolute_mut

    fn GenericJoint::as_revolute_mut(self : GenericJoint) -> GenericJoint?

    GenericJoint::as_rope

    fn GenericJoint::as_rope(self : GenericJoint) -> GenericJoint?

    GenericJoint::as_rope_mut

    fn GenericJoint::as_rope_mut(self : GenericJoint) -> GenericJoint?

    GenericJoint::as_spherical

    fn GenericJoint::as_spherical(self : GenericJoint) -> GenericJoint?

    GenericJoint::as_spherical_mut

    fn GenericJoint::as_spherical_mut(self : GenericJoint) -> GenericJoint?

    GenericJoint::contacts_enabled

    fn GenericJoint::contacts_enabled(self : GenericJoint) -> Bool

    GenericJoint::coupled_axes

    fn GenericJoint::coupled_axes(self : GenericJoint) -> JointAxesMask

    GenericJoint::default

    fn GenericJoint::default() -> GenericJoint

    GenericJoint::flip

    Flips the orientation of the joint, including limits and motors.

    Ported from rapier-reference GenericJoint::flip.

    GenericJoint::from_3d_real

    fn GenericJoint::from_3d_real(joint : GenericJoint3DReal) -> GenericJoint

    GenericJoint::from_fixed

    fn GenericJoint::from_fixed(joint : FixedJoint) -> GenericJoint

    GenericJoint::from_pin_slot

    fn GenericJoint::from_pin_slot(joint : PinSlotJoint) -> GenericJoint

    GenericJoint::from_prismatic

    fn GenericJoint::from_prismatic(joint : PrismaticJoint) -> GenericJoint

    GenericJoint::from_revolute

    fn GenericJoint::from_revolute(joint : RevoluteJoint) -> GenericJoint

    GenericJoint::from_rope

    fn GenericJoint::from_rope(joint : RopeJoint) -> GenericJoint

    GenericJoint::from_spring

    fn GenericJoint::from_spring(joint : SpringJoint) -> GenericJoint

    GenericJoint::is_enabled

    fn GenericJoint::is_enabled(self : GenericJoint) -> Bool

    GenericJoint::limit_axes

    fn GenericJoint::limit_axes(self : GenericJoint) -> JointAxesMask

    GenericJoint::limits

    fn GenericJoint::limits(self : GenericJoint) -> JointLimits3

    GenericJoint::limits_axis

    fn GenericJoint::limits_axis(self : GenericJoint, axis : JointAxis) -> JointLimits?

    GenericJoint::local_anchor1

    GenericJoint::local_anchor1_3

    GenericJoint::local_anchor2

    GenericJoint::local_anchor2_3

    GenericJoint::local_frame1

    GenericJoint::local_frame1_3

    GenericJoint::local_frame1_rotation

    GenericJoint::local_frame2

    GenericJoint::local_frame2_3

    GenericJoint::local_frame2_rotation

    GenericJoint::lock_axes

    fn GenericJoint::lock_axes(self : GenericJoint, axes : JointAxesMask) -> GenericJoint

    GenericJoint::locked_axes

    fn GenericJoint::locked_axes(self : GenericJoint) -> JointAxesMask

    GenericJoint::motor

    fn GenericJoint::motor(self : GenericJoint, axis : JointAxis) -> JointMotor?

    GenericJoint::motor_axes

    fn GenericJoint::motor_axes(self : GenericJoint) -> JointAxesMask

    GenericJoint::motor_model

    fn GenericJoint::motor_model(self : GenericJoint, axis : JointAxis) -> MotorModel?

    GenericJoint::motors

    fn GenericJoint::motors(self : GenericJoint) -> JointMotors3

    GenericJoint::set_contacts_enabled

    fn GenericJoint::set_contacts_enabled(self : GenericJoint, enabled : Bool) -> GenericJoint

    GenericJoint::set_coupled_axes

    fn GenericJoint::set_coupled_axes(self : GenericJoint, axes : JointAxesMask) -> GenericJoint

    GenericJoint::set_enabled

    fn GenericJoint::set_enabled(self : GenericJoint, enabled : Bool) -> GenericJoint

    GenericJoint::set_enabled_by_attached_body

    fn GenericJoint::set_enabled_by_attached_body(self : GenericJoint, attached_enabled : Bool) -> GenericJoint

    GenericJoint::set_limit_axes

    fn GenericJoint::set_limit_axes(self : GenericJoint, axes : JointAxesMask) -> GenericJoint

    GenericJoint::set_limits

    fn GenericJoint::set_limits(self : GenericJoint, limits : JointLimits3) -> GenericJoint

    GenericJoint::set_limits_axis

    fn GenericJoint::set_limits_axis(self : GenericJoint, axis : JointAxis, min : Float, max : Float) -> GenericJoint

    GenericJoint::set_local_anchor1

    GenericJoint::set_local_anchor1_3

    fn GenericJoint::set_local_anchor1_3(self : GenericJoint, anchor :
    Vec3
    ) -> GenericJoint

    GenericJoint::set_local_anchor2

    GenericJoint::set_local_anchor2_3

    fn GenericJoint::set_local_anchor2_3(self : GenericJoint, anchor :
    Vec3
    ) -> GenericJoint

    GenericJoint::set_local_frame1

    GenericJoint::set_local_frame1_3

    GenericJoint::set_local_frame1_rotation

    fn GenericJoint::set_local_frame1_rotation(self : GenericJoint, rotation :
    Quat
    ) -> GenericJoint

    GenericJoint::set_local_frame2

    GenericJoint::set_local_frame2_3

    GenericJoint::set_local_frame2_rotation

    fn GenericJoint::set_local_frame2_rotation(self : GenericJoint, rotation :
    Quat
    ) -> GenericJoint

    GenericJoint::set_locked_axes

    fn GenericJoint::set_locked_axes(self : GenericJoint, axes : JointAxesMask) -> GenericJoint

    GenericJoint::set_motor

    fn GenericJoint::set_motor(self : GenericJoint, axis : JointAxis, target_pos : Float, target_vel : Float, stiffness : Float, damping : Float) -> GenericJoint

    GenericJoint::set_motor_axes

    fn GenericJoint::set_motor_axes(self : GenericJoint, axes : JointAxesMask) -> GenericJoint

    GenericJoint::set_motor_max_force

    fn GenericJoint::set_motor_max_force(self : GenericJoint, axis : JointAxis, max_force : Float) -> GenericJoint

    GenericJoint::set_motor_model

    fn GenericJoint::set_motor_model(self : GenericJoint, axis : JointAxis, model : MotorModel) -> GenericJoint

    GenericJoint::set_motor_position

    fn GenericJoint::set_motor_position(self : GenericJoint, axis : JointAxis, target_pos : Float, stiffness : Float, damping : Float) -> GenericJoint

    GenericJoint::set_motor_velocity

    fn GenericJoint::set_motor_velocity(self : GenericJoint, axis : JointAxis, target_vel : Float, factor : Float) -> GenericJoint

    GenericJoint::set_motors

    fn GenericJoint::set_motors(self : GenericJoint, motors : JointMotors3) -> GenericJoint

    GenericJoint::set_softness

    fn GenericJoint::set_softness(self : GenericJoint, softness : SpringCoefficients) -> GenericJoint

    GenericJoint::softness

    GenericJoint::to_3d_real

    fn GenericJoint::to_3d_real(self : GenericJoint) -> GenericJoint3DReal

    GenericJoint3DReal

    pub struct GenericJoint3DReal {
    local_frame1 :
    Isometry3

    local_frame2 :
    Isometry3

    axis_states : Array[AxisState3DReal]
    motors : Array[MotorState3DReal]
    coupled_axes : JointAxesMask3DReal
    contacts_enabled : Bool
    }

    Generic 3D joint configuration used by the real dim3 backend.

    The constraint is defined in a joint frame attached to each body: body.pos * local_frame1 and body.pos * local_frame2. Axis limits/motors are expressed in the joint frame of body1.

    GenericJoint3DReal::to_generic_joint

    fn GenericJoint3DReal::to_generic_joint(self : GenericJoint3DReal) -> GenericJoint

    GenericJoint3DRealBuilder

    pub struct GenericJoint3DRealBuilder {
    locked_axes : JointAxesMask3DReal
    contacts_enabled : Bool
    coupled_axes : JointAxesMask3DReal
    local_anchor1 :
    Vec3

    local_anchor2 :
    Vec3

    local_basis1 :
    Quat

    local_basis2 :
    Quat

    axis_states : Array[AxisState3DReal]
    motors : Array[MotorState3DReal]
    }
    fn GenericJoint3DRealBuilder::GenericJoint3DRealBuilder(locked_axes : JointAxesMask3DReal) -> GenericJoint3DRealBuilder

    GenericJoint3DRealBuilder::build

    GenericJoint3DRealBuilder::contacts_enabled

    fn GenericJoint3DRealBuilder::contacts_enabled(self : GenericJoint3DRealBuilder, enabled : Bool) -> GenericJoint3DRealBuilder

    GenericJoint3DRealBuilder::coupled_axes

    GenericJoint3DRealBuilder::limits

    GenericJoint3DRealBuilder::local_anchor1

    GenericJoint3DRealBuilder::local_anchor2

    GenericJoint3DRealBuilder::local_basis1

    GenericJoint3DRealBuilder::local_basis2

    GenericJoint3DRealBuilder::motor_max_force

    fn GenericJoint3DRealBuilder::motor_max_force(self : GenericJoint3DRealBuilder, axis : JointAxis3DReal, max_force : Float) -> GenericJoint3DRealBuilder

    GenericJoint3DRealBuilder::motor_position

    fn GenericJoint3DRealBuilder::motor_position(self : GenericJoint3DRealBuilder, axis : JointAxis3DReal, target_pos : Float, stiffness : Float, damping : Float) -> GenericJoint3DRealBuilder

    GenericJoint3DRealBuilder::motor_velocity

    fn GenericJoint3DRealBuilder::motor_velocity(self : GenericJoint3DRealBuilder, axis : JointAxis3DReal, target_vel : Float, damping : Float) -> GenericJoint3DRealBuilder

    GenericJointConstraint

    pub struct GenericJointConstraint {
    is_rigid_body1 : Bool
    is_rigid_body2 : Bool
    solver_vel1 : Int
    solver_vel2 : Int
    ndofs1 : Int
    j_id1 : Int
    ndofs2 : Int
    j_id2 : Int
    joint_id : Int
    impulse : Float
    impulse_bounds : (Float, Float)
    inv_lhs : Float
    rhs : Float
    rhs_wo_bias : Float
    cfm_coeff : Float
    cfm_gain : Float
    writeback_id : WritebackId
    }

    A single scalar constraint used by Rapier's generic joint constraint machinery.

    This is exposed for pub parity and as a stable data container. The actual solver implementation in this repository may not use this type directly.

    GenericJointConstraint::invalid

    GenericJointConstraint3DReal

    pub struct GenericJointConstraint3DReal {
    body1 : RigidBodyHandle
    body2 : RigidBodyHandle
    data : GenericJoint3DReal
    }

    Internal storage type for generic constraints in JointSet3DReal.

    Group

    pub struct Group {
    value : Int
    }
    fn Group::Group(bits : Int) -> Group

    Group::all

    fn Group::all() -> Group

    Group::bits

    fn Group::bits(self : Group) -> Int

    Group::equals

    fn Group::equals(self : Group, other : Group) -> Bool

    Group::group_1

    fn Group::group_1() -> Group

    Group::group_10

    fn Group::group_10() -> Group

    Group::group_11

    fn Group::group_11() -> Group

    Group::group_12

    fn Group::group_12() -> Group

    Group::group_13

    fn Group::group_13() -> Group

    Group::group_14

    fn Group::group_14() -> Group

    Group::group_15

    fn Group::group_15() -> Group

    Group::group_16

    fn Group::group_16() -> Group

    Group::group_17

    fn Group::group_17() -> Group

    Group::group_18

    fn Group::group_18() -> Group

    Group::group_19

    fn Group::group_19() -> Group

    Group::group_2

    fn Group::group_2() -> Group

    Group::group_20

    fn Group::group_20() -> Group

    Group::group_21

    fn Group::group_21() -> Group

    Group::group_22

    fn Group::group_22() -> Group

    Group::group_23

    fn Group::group_23() -> Group

    Group::group_24

    fn Group::group_24() -> Group

    Group::group_25

    fn Group::group_25() -> Group

    Group::group_26

    fn Group::group_26() -> Group

    Group::group_27

    fn Group::group_27() -> Group

    Group::group_28

    fn Group::group_28() -> Group

    Group::group_29

    fn Group::group_29() -> Group

    Group::group_3

    fn Group::group_3() -> Group

    Group::group_30

    fn Group::group_30() -> Group

    Group::group_31

    fn Group::group_31() -> Group

    Group::group_32

    fn Group::group_32() -> Group

    Group::group_4

    fn Group::group_4() -> Group

    Group::group_5

    fn Group::group_5() -> Group

    Group::group_6

    fn Group::group_6() -> Group

    Group::group_7

    fn Group::group_7() -> Group

    Group::group_8

    fn Group::group_8() -> Group

    Group::group_9

    fn Group::group_9() -> Group

    Group::intersection

    fn Group::intersection(self : Group, other : Group) -> Group

    Group::none

    fn Group::none() -> Group

    Group::or

    fn Group::or(self : Group, other : Group) -> Group

    ImpulseJoint

    pub struct ImpulseJoint {
    body1 : RigidBodyHandle
    body2 : RigidBodyHandle
    data : GenericJoint
    impulses :
    Vec2

    ang_impulse : Float
    handle : ImpulseJointHandle
    }

    ImpulseJoint::is_enabled

    fn ImpulseJoint::is_enabled(self : ImpulseJoint) -> Bool

    ImpulseJoint::set_enabled

    fn ImpulseJoint::set_enabled(self : ImpulseJoint, enabled : Bool) -> ImpulseJoint

    ImpulseJoint::set_enabled_by_attached_body

    fn ImpulseJoint::set_enabled_by_attached_body(self : ImpulseJoint, attached_enabled : Bool) -> ImpulseJoint

    ImpulseJointGraph

    pub struct ImpulseJointGraph {
    nodes : Array[RigidBodyHandle]
    edges : Array[(RigidBodyHandle, RigidBodyHandle, ImpulseJoint)]
    }

    ImpulseJointGraph::nodes

    ImpulseJointHandle

    pub struct ImpulseJointHandle {
    id : Int
    generation : Int
    }

    ImpulseJointHandle::from_raw_parts

    fn ImpulseJointHandle::from_raw_parts(id : Int, generation : Int) -> ImpulseJointHandle

    ImpulseJointHandle::into_raw_parts

    fn ImpulseJointHandle::into_raw_parts(self : ImpulseJointHandle) -> (Int, Int)

    ImpulseJointHandle::invalid

    ImpulseJointSet

    pub struct ImpulseJointSet {
    // private fields
    }
    fn ImpulseJointSet::ImpulseJointSet() -> ImpulseJointSet

    ImpulseJointSet::attached_enabled_joints

    ImpulseJointSet::attached_joints

    ImpulseJointSet::contains

    fn ImpulseJointSet::contains(self : ImpulseJointSet, handle : ImpulseJointHandle) -> Bool

    ImpulseJointSet::deserialize

    fn ImpulseJointSet::deserialize(data : String) -> ImpulseJointSet

    ImpulseJointSet::get

    ImpulseJointSet::get_mut

    fn ImpulseJointSet::get_mut(self : ImpulseJointSet, handle : ImpulseJointHandle, wake_up : Bool) -> ImpulseJoint?

    ImpulseJointSet::get_unknown_gen

    fn ImpulseJointSet::get_unknown_gen(self : ImpulseJointSet, id : Int) -> (ImpulseJoint, ImpulseJointHandle)?

    ImpulseJointSet::get_unknown_gen_mut

    fn ImpulseJointSet::get_unknown_gen_mut(self : ImpulseJointSet, id : Int) -> (ImpulseJoint, ImpulseJointHandle)?

    ImpulseJointSet::insert

    fn ImpulseJointSet::insert(self : ImpulseJointSet, body1 : RigidBodyHandle, body2 : RigidBodyHandle, joint : GenericJoint, wake_up : Bool) -> ImpulseJointHandle

    ImpulseJointSet::is_empty

    fn ImpulseJointSet::is_empty(self : ImpulseJointSet) -> Bool

    ImpulseJointSet::iter

    ImpulseJointSet::iter_mut

    ImpulseJointSet::joint_graph

    ImpulseJointSet::joints_between

    ImpulseJointSet::len

    fn ImpulseJointSet::len(self : ImpulseJointSet) -> Int

    ImpulseJointSet::map_attached_joints_mut

    fn ImpulseJointSet::map_attached_joints_mut(self : ImpulseJointSet, handle : RigidBodyHandle, f : (RigidBodyHandle, RigidBodyHandle, ImpulseJointHandle, ImpulseJoint) -> Unit) -> Unit

    ImpulseJointSet::remove

    fn ImpulseJointSet::remove(self : ImpulseJointSet, handle : ImpulseJointHandle, wake_up : Bool) -> ImpulseJoint?

    ImpulseJointSet::remove_joints_attached_to_rigid_body

    fn ImpulseJointSet::remove_joints_attached_to_rigid_body(self : ImpulseJointSet, handle : RigidBodyHandle) -> Array[ImpulseJointHandle]

    ImpulseJointSet::select_active_interactions

    fn ImpulseJointSet::select_active_interactions(self : ImpulseJointSet, islands : IslandManager, bodies : RigidBodySet, out : Array[Array[Int]]) -> Unit

    ImpulseJointSet::serialize

    fn ImpulseJointSet::serialize(self : ImpulseJointSet) -> String

    ImpulseJointSet::set_enabled

    fn ImpulseJointSet::set_enabled(self : ImpulseJointSet, handle : ImpulseJointHandle, enabled : Bool) -> Unit

    ImpulseJointSet::set_impulses

    fn ImpulseJointSet::set_impulses(self : ImpulseJointSet, handle : ImpulseJointHandle, impulses :
    Vec2
    ) -> Unit

    ImpulseJointSet::set_solver_impulses

    fn ImpulseJointSet::set_solver_impulses(self : ImpulseJointSet, handle : ImpulseJointHandle, impulses :
    Vec2
    , ang_impulse : Float, motor_lin_x : Float, motor_lin_y : Float, motor_ang_z : Float, limit_lin_x : Float, limit_lin_y : Float, limit_ang_z : Float) -> Unit

    ImpulseJointSet::take_to_join

    ImpulseJointSet::take_wake_up

    ImpulseJointSet3

    pub struct ImpulseJointSet3 {
    // private fields
    }
    fn ImpulseJointSet3::ImpulseJointSet3() -> ImpulseJointSet3

    3D-flavored impulse joint set.

    ImpulseJointSet3::as_2d

    ImpulseJointSet3::attached_enabled_joints

    ImpulseJointSet3::attached_joints

    ImpulseJointSet3::contains

    fn ImpulseJointSet3::contains(self : ImpulseJointSet3, handle : ImpulseJointHandle) -> Bool

    ImpulseJointSet3::get

    ImpulseJointSet3::get_mut

    fn ImpulseJointSet3::get_mut(self : ImpulseJointSet3, handle : ImpulseJointHandle, wake_up : Bool) -> ImpulseJoint?

    ImpulseJointSet3::get_unknown_gen

    fn ImpulseJointSet3::get_unknown_gen(self : ImpulseJointSet3, id : Int) -> (ImpulseJoint, ImpulseJointHandle)?

    ImpulseJointSet3::get_unknown_gen_mut

    fn ImpulseJointSet3::get_unknown_gen_mut(self : ImpulseJointSet3, id : Int) -> (ImpulseJoint, ImpulseJointHandle)?

    ImpulseJointSet3::insert

    fn ImpulseJointSet3::insert(self : ImpulseJointSet3, body1 : RigidBodyHandle, body2 : RigidBodyHandle, joint : GenericJoint, wake_up : Bool) -> ImpulseJointHandle

    ImpulseJointSet3::is_empty

    fn ImpulseJointSet3::is_empty(self : ImpulseJointSet3) -> Bool

    ImpulseJointSet3::iter

    ImpulseJointSet3::iter_mut

    ImpulseJointSet3::joint_graph

    ImpulseJointSet3::joints_between

    ImpulseJointSet3::len

    fn ImpulseJointSet3::len(self : ImpulseJointSet3) -> Int

    ImpulseJointSet3::map_attached_joints_mut

    fn ImpulseJointSet3::map_attached_joints_mut(self : ImpulseJointSet3, handle : RigidBodyHandle, f : (RigidBodyHandle, RigidBodyHandle, ImpulseJointHandle, ImpulseJoint) -> Unit) -> Unit

    ImpulseJointSet3::remove

    fn ImpulseJointSet3::remove(self : ImpulseJointSet3, handle : ImpulseJointHandle, wake_up : Bool) -> ImpulseJoint?

    ImpulseJointSet3::remove_joints_attached_to_rigid_body

    fn ImpulseJointSet3::remove_joints_attached_to_rigid_body(self : ImpulseJointSet3, handle : RigidBodyHandle) -> Array[ImpulseJointHandle]

    ImpulseJointSet3::select_active_interactions

    fn ImpulseJointSet3::select_active_interactions(self : ImpulseJointSet3, islands : IslandManager, bodies : RigidBodySet, out : Array[Array[Int]]) -> Unit

    ImpulseJointSet3::set_enabled

    fn ImpulseJointSet3::set_enabled(self : ImpulseJointSet3, handle : ImpulseJointHandle, enabled : Bool) -> Unit

    ImpulseJointSet3::set_impulses

    fn ImpulseJointSet3::set_impulses(self : ImpulseJointSet3, handle : ImpulseJointHandle, impulses :
    Vec2
    ) -> Unit

    ImpulseJointSet3::set_solver_impulses

    fn ImpulseJointSet3::set_solver_impulses(self : ImpulseJointSet3, handle : ImpulseJointHandle, impulses :
    Vec2
    , ang_impulse : Float, motor_lin_x : Float, motor_lin_y : Float, motor_ang_z : Float, limit_lin_x : Float, limit_lin_y : Float, limit_ang_z : Float) -> Unit

    ImpulseJointSet3::take_to_join

    ImpulseJointSet3::take_wake_up

    IndexSequence

    pub struct IndexSequence {
    // private fields
    }
    fn IndexSequence::IndexSequence() -> IndexSequence

    IndexSequence::inv_rearrange_rows

    fn IndexSequence::inv_rearrange_rows(self : IndexSequence, vec : DVector) -> Unit

    IndexSequence::keep

    fn IndexSequence::keep(self : IndexSequence, index : Int) -> Unit

    IndexSequence::rearrange_columns

    fn IndexSequence::rearrange_columns(self : IndexSequence, vec : RowDVector, keep_columns : Bool) -> Unit

    IndexSequence::rearrange_rows

    fn IndexSequence::rearrange_rows(self : IndexSequence, vec : DVector, keep_rows : Bool) -> Unit

    IndexSequence::remove

    fn IndexSequence::remove(self : IndexSequence, index : Int) -> Unit

    IndexSequence::with_rearranged_rows_mut

    fn IndexSequence::with_rearranged_rows_mut(self : IndexSequence, vec : DVector, action : (DVector) -> Unit) -> Unit

    IntegrationParameters

    pub struct IntegrationParameters {
    dt : Float
    min_ccd_dt : Float
    contact_softness : SpringCoefficients
    warmstart_coefficient : Float
    length_unit : Float
    normalized_allowed_linear_error : Float
    normalized_max_corrective_velocity : Float
    normalized_prediction_distance : Float
    num_solver_iterations : Int
    num_internal_pgs_iterations : Int
    num_internal_stabilization_iterations : Int
    min_island_size : Int
    max_ccd_substeps : Int
    friction_model : FrictionModel
    }
    fn IntegrationParameters::IntegrationParameters() -> IntegrationParameters

    IntegrationParameters::allowed_linear_error

    fn IntegrationParameters::allowed_linear_error(self : IntegrationParameters) -> Float

    IntegrationParameters::default

    IntegrationParameters::inv_dt

    fn IntegrationParameters::inv_dt(self : IntegrationParameters) -> Float

    IntegrationParameters::max_corrective_velocity

    fn IntegrationParameters::max_corrective_velocity(self : IntegrationParameters) -> Float

    IntegrationParameters::prediction_distance

    fn IntegrationParameters::prediction_distance(self : IntegrationParameters) -> Float

    IntegrationParameters::set_contact_softness

    fn IntegrationParameters::set_contact_softness(self : IntegrationParameters, contact_softness : SpringCoefficients) -> IntegrationParameters

    IntegrationParameters::set_dt

    IntegrationParameters::set_inv_dt

    fn IntegrationParameters::set_inv_dt(self : IntegrationParameters, inv_dt : Float) -> IntegrationParameters

    IntegrationParameters::set_length_unit

    fn IntegrationParameters::set_length_unit(self : IntegrationParameters, length_unit : Float) -> IntegrationParameters

    IntegrationParameters::set_max_ccd_substeps

    fn IntegrationParameters::set_max_ccd_substeps(self : IntegrationParameters, max_ccd_substeps : Int) -> IntegrationParameters

    IntegrationParameters::set_min_ccd_dt

    fn IntegrationParameters::set_min_ccd_dt(self : IntegrationParameters, min_ccd_dt : Float) -> IntegrationParameters

    IntegrationParameters::set_min_island_size

    fn IntegrationParameters::set_min_island_size(self : IntegrationParameters, min_island_size : Int) -> IntegrationParameters

    IntegrationParameters::set_normalized_allowed_linear_error

    fn IntegrationParameters::set_normalized_allowed_linear_error(self : IntegrationParameters, normalized_allowed_linear_error : Float) -> IntegrationParameters

    IntegrationParameters::set_normalized_max_corrective_velocity

    fn IntegrationParameters::set_normalized_max_corrective_velocity(self : IntegrationParameters, normalized_max_corrective_velocity : Float) -> IntegrationParameters

    IntegrationParameters::set_normalized_prediction_distance

    fn IntegrationParameters::set_normalized_prediction_distance(self : IntegrationParameters, normalized_prediction_distance : Float) -> IntegrationParameters

    IntegrationParameters::set_num_internal_pgs_iterations

    fn IntegrationParameters::set_num_internal_pgs_iterations(self : IntegrationParameters, num_internal_pgs_iterations : Int) -> IntegrationParameters

    IntegrationParameters::set_num_internal_stabilization_iterations

    fn IntegrationParameters::set_num_internal_stabilization_iterations(self : IntegrationParameters, num_internal_stabilization_iterations : Int) -> IntegrationParameters

    IntegrationParameters::set_num_solver_iterations

    fn IntegrationParameters::set_num_solver_iterations(self : IntegrationParameters, num_solver_iterations : Int) -> IntegrationParameters

    IntegrationParameters::set_warmstart_coefficient

    fn IntegrationParameters::set_warmstart_coefficient(self : IntegrationParameters, warmstart_coefficient : Float) -> IntegrationParameters

    IntegrationParameters::with_dt

    Return a copy of these parameters with a different time-step, without mutating self.

    InteractionGroups

    pub struct InteractionGroups {
    memberships : Group
    filter : Group
    test_mode : InteractionTestMode
    }
    fn InteractionGroups::InteractionGroups(memberships : Group, filter : Group, test_mode : InteractionTestMode) -> InteractionGroups

    InteractionGroups::all

    InteractionGroups::default

    InteractionGroups::filter

    InteractionGroups::memberships

    fn InteractionGroups::memberships(self : InteractionGroups) -> Group

    InteractionGroups::none

    InteractionGroups::passes

    fn InteractionGroups::passes(self : InteractionGroups, other : InteractionGroups) -> Bool

    InteractionGroups::test_and

    fn InteractionGroups::test_and(self : InteractionGroups, other : InteractionGroups) -> Bool

    InteractionGroups::test_groups

    fn InteractionGroups::test_groups(self : InteractionGroups, other : InteractionGroups) -> Bool

    InteractionGroups::test_mode

    InteractionGroups::test_or

    fn InteractionGroups::test_or(self : InteractionGroups, other : InteractionGroups) -> Bool

    InteractionGroups::with_filter

    fn InteractionGroups::with_filter(self : InteractionGroups, filter : Group) -> InteractionGroups

    InteractionGroups::with_memberships

    fn InteractionGroups::with_memberships(self : InteractionGroups, memberships : Group) -> InteractionGroups

    InteractionTestMode

    pub(all) enum InteractionTestMode {
    And
    Or
    }

    InverseKinematicsOption

    pub struct InverseKinematicsOption {
    damping : Float
    max_iters : Int
    constrained_axes : JointAxesMask
    epsilon_linear : Float
    epsilon_angular : Float
    }

    InverseKinematicsOption::default

    InverseKinematicsOption::set_constrained_axes

    fn InverseKinematicsOption::set_constrained_axes(self : InverseKinematicsOption, constrained_axes : JointAxesMask) -> InverseKinematicsOption

    InverseKinematicsOption::set_damping

    fn InverseKinematicsOption::set_damping(self : InverseKinematicsOption, damping : Float) -> InverseKinematicsOption

    InverseKinematicsOption::set_epsilon_angular

    fn InverseKinematicsOption::set_epsilon_angular(self : InverseKinematicsOption, epsilon_angular : Float) -> InverseKinematicsOption

    InverseKinematicsOption::set_epsilon_linear

    fn InverseKinematicsOption::set_epsilon_linear(self : InverseKinematicsOption, epsilon_linear : Float) -> InverseKinematicsOption

    InverseKinematicsOption::set_max_iters

    fn InverseKinematicsOption::set_max_iters(self : InverseKinematicsOption, max_iters : Int) -> InverseKinematicsOption

    Island

    type Island

    Island3D

    type Island3D

    IslandManager

    pub struct IslandManager {
    islands : Array[Island?]
    awake_islands : Array[Int]
    free_islands : Array[Int]
    traversal_candidates : Array[SleepCandidate]
    traversal_timestamp : Int
    optimizer : IslandsOptimizer
    stack : Array[RigidBodyHandle]
    body_island_ids : Array[Int]
    body_island_generations : Array[Int]
    body_island_indices : Array[Int]
    body_state_generations : Array[Int]
    }
    fn IslandManager::IslandManager() -> IslandManager

    IslandManager::active_bodies

    fn IslandManager::active_bodies(self : IslandManager) -> Array[RigidBodyHandle]

    IslandManager::active_islands

    fn IslandManager::active_islands(self : IslandManager) -> Array[Int]

    IslandManager::interaction_started_or_stopped

    fn IslandManager::interaction_started_or_stopped(self : IslandManager, bodies : RigidBodySet, handle1 : RigidBodyHandle?, handle2 : RigidBodyHandle?, started : Bool, wake_up : Bool) -> Unit

    IslandManager::island_additional_solver_iterations

    fn IslandManager::island_additional_solver_iterations(self : IslandManager, island_id : Int) -> Int

    IslandManager::island_bodies

    fn IslandManager::island_bodies(self : IslandManager, island_id : Int) -> Array[RigidBodyHandle]

    IslandManager::rigid_body_removed_or_disabled

    fn IslandManager::rigid_body_removed_or_disabled(self : IslandManager, handle : RigidBodyHandle, bodies : RigidBodySet) -> Unit

    IslandManager::rigid_body_updated

    fn IslandManager::rigid_body_updated(self : IslandManager, handle : RigidBodyHandle, bodies : RigidBodySet) -> Unit

    IslandManager::update_islands

    fn IslandManager::update_islands(self : IslandManager, dt : Float, length_unit : Float, bodies : RigidBodySet, contacts : ContactGraph, impulse_joints : ImpulseJointSet, multibody_joints : MultibodyJointSet) -> Unit

    IslandManager::wake_up

    fn IslandManager::wake_up(self : IslandManager, bodies : RigidBodySet, handle : RigidBodyHandle, strong : Bool) -> Unit

    IslandManager3

    pub struct IslandManager3 {
    inner : IslandManager
    }
    fn IslandManager3::IslandManager3() -> IslandManager3

    3D-flavored island manager.

    IslandManager3::active_bodies

    fn IslandManager3::active_bodies(self : IslandManager3) -> Array[RigidBodyHandle]

    IslandManager3::as_2d

    IslandManager3::interaction_started_or_stopped

    fn IslandManager3::interaction_started_or_stopped(self : IslandManager3, bodies : RigidBodySet3, handle1 : RigidBodyHandle?, handle2 : RigidBodyHandle?, started : Bool, stop_on_same_island : Bool) -> Unit

    IslandManager3::rigid_body_removed_or_disabled

    fn IslandManager3::rigid_body_removed_or_disabled(self : IslandManager3, handle : RigidBodyHandle, bodies : RigidBodySet3) -> Unit

    IslandManager3::rigid_body_updated

    fn IslandManager3::rigid_body_updated(self : IslandManager3, handle : RigidBodyHandle, bodies : RigidBodySet3) -> Unit

    IslandManager3::update_islands

    fn IslandManager3::update_islands(self : IslandManager3, dt : Float, length_unit : Float, bodies : RigidBodySet3, contacts : ContactGraph, impulse_joints : ImpulseJointSet3, multibody_joints : MultibodyJointSet3) -> Unit

    IslandManager3::wake_up

    fn IslandManager3::wake_up(self : IslandManager3, bodies : RigidBodySet3, handle : RigidBodyHandle, strong : Bool) -> Unit

    IslandManager3D

    pub struct IslandManager3D {
    active_bodies : Array[RigidBodyHandle]
    islands : Array[Array[RigidBodyHandle]]
    island_solver_iterations : Array[Int]
    island_nodes : Array[Island3D?]
    awake_island_ids : Array[Int]
    free_island_ids : Array[Int]
    body_island_ids : Array[Int]
    body_island_generations : Array[Int]
    body_island_indices : Array[Int]
    body_sleep_state_generations : Array[Int]
    body_sleep_states : Array[Int]
    body_traversal_timestamps : Array[Int]
    stack : Array[RigidBodyHandle]
    optimizer : IslandsOptimizer3D
    traversal_timestamp : Int
    }
    fn IslandManager3D::IslandManager3D() -> IslandManager3D

    Dim3 island manager aligned with Rapier's persistent island model:
    • stable island ids
    • awake island list
    • incremental merge/split optimizer
    • sleeping component extraction on the interaction graph

    Public query methods (active_islands, island_bodies, island_additional_solver_iterations) expose island-scoped data used by the solver pipeline.

    IslandManager3D::active_bodies

    IslandManager3D::active_islands

    fn IslandManager3D::active_islands(self : IslandManager3D) -> Array[Int]

    IslandManager3D::island_additional_solver_iterations

    fn IslandManager3D::island_additional_solver_iterations(self : IslandManager3D, island_id : Int) -> Int

    IslandManager3D::island_bodies

    fn IslandManager3D::island_bodies(self : IslandManager3D, island_id : Int) -> Array[RigidBodyHandle]

    IslandManager3D::update

    fn IslandManager3D::update(self : IslandManager3D, bodies : RigidBodySet3D, interactions : Array[(RigidBodyHandle, RigidBodyHandle)]) -> Unit

    IslandsOptimizer

    type IslandsOptimizer

    IslandsOptimizer3D

    type IslandsOptimizer3D

    Jacobian

    type Jacobian

    Jacobian::cols

    fn Jacobian::cols(self : Jacobian) -> Int

    Jacobian::equals

    fn Jacobian::equals(self : Jacobian, other : Jacobian) -> Bool

    Jacobian::spatial_dim

    fn Jacobian::spatial_dim() -> Int

    Jacobian::value_at

    fn Jacobian::value_at(self : Jacobian, row : Int, col : Int) -> Float

    Jacobian::zeros

    fn Jacobian::zeros(size : Int) -> Jacobian

    Jacobian3

    pub struct Jacobian3 {
    cols_ : Int
    data : Array[Float]
    }

    Jacobian3::cols

    fn Jacobian3::cols(self : Jacobian3) -> Int

    Jacobian3::value_at

    fn Jacobian3::value_at(self : Jacobian3, row : Int, col : Int) -> Float

    Jacobian3::zeros

    fn Jacobian3::zeros(size : Int) -> Jacobian3

    JointAxesMask

    pub struct JointAxesMask {
    bits : Int
    }
    fn JointAxesMask::JointAxesMask(bits : Int) -> JointAxesMask

    JointAxesMask::all

    JointAxesMask::all3

    JointAxesMask::ang_axes

    fn JointAxesMask::ang_axes() -> JointAxesMask

    JointAxesMask::ang_axes3

    fn JointAxesMask::ang_axes3() -> JointAxesMask

    JointAxesMask::ang_x

    JointAxesMask::ang_y

    JointAxesMask::ang_z

    JointAxesMask::bits

    fn JointAxesMask::bits(self : JointAxesMask) -> Int

    JointAxesMask::contains

    fn JointAxesMask::contains(self : JointAxesMask, other : JointAxesMask) -> Bool

    JointAxesMask::empty

    JointAxesMask::free_fixed_axes

    fn JointAxesMask::free_fixed_axes() -> JointAxesMask

    JointAxesMask::free_prismatic_axes

    fn JointAxesMask::free_prismatic_axes() -> JointAxesMask

    JointAxesMask::free_prismatic_axes3

    fn JointAxesMask::free_prismatic_axes3() -> JointAxesMask

    JointAxesMask::free_revolute_axes

    fn JointAxesMask::free_revolute_axes() -> JointAxesMask

    JointAxesMask::free_revolute_axes3

    fn JointAxesMask::free_revolute_axes3() -> JointAxesMask

    JointAxesMask::free_spherical_axes

    fn JointAxesMask::free_spherical_axes() -> JointAxesMask

    JointAxesMask::intersection

    fn JointAxesMask::intersection(self : JointAxesMask, other : JointAxesMask) -> JointAxesMask

    JointAxesMask::lin_axes

    fn JointAxesMask::lin_axes() -> JointAxesMask

    JointAxesMask::lin_axes3

    fn JointAxesMask::lin_axes3() -> JointAxesMask

    JointAxesMask::lin_x

    JointAxesMask::lin_y

    JointAxesMask::lin_z

    JointAxesMask::locked_fixed_axes

    fn JointAxesMask::locked_fixed_axes() -> JointAxesMask

    JointAxesMask::locked_fixed_axes3

    fn JointAxesMask::locked_fixed_axes3() -> JointAxesMask

    JointAxesMask::locked_pin_slot_axes

    fn JointAxesMask::locked_pin_slot_axes() -> JointAxesMask

    JointAxesMask::locked_prismatic_axes

    fn JointAxesMask::locked_prismatic_axes() -> JointAxesMask

    JointAxesMask::locked_prismatic_axes3

    fn JointAxesMask::locked_prismatic_axes3() -> JointAxesMask

    JointAxesMask::locked_revolute_axes

    fn JointAxesMask::locked_revolute_axes() -> JointAxesMask

    JointAxesMask::locked_revolute_axes3

    fn JointAxesMask::locked_revolute_axes3() -> JointAxesMask

    JointAxesMask::locked_spherical_axes

    fn JointAxesMask::locked_spherical_axes() -> JointAxesMask

    JointAxesMask::or

    JointAxesMask3DReal

    pub struct JointAxesMask3DReal {
    bits : Int
    }
    fn JointAxesMask3DReal::JointAxesMask3DReal(bits : Int) -> JointAxesMask3DReal

    JointAxesMask3DReal::all

    JointAxesMask3DReal::ang_axes

    JointAxesMask3DReal::ang_x

    JointAxesMask3DReal::ang_y

    JointAxesMask3DReal::ang_z

    JointAxesMask3DReal::bits

    JointAxesMask3DReal::contains

    fn JointAxesMask3DReal::contains(self : JointAxesMask3DReal, other : JointAxesMask3DReal) -> Bool

    JointAxesMask3DReal::empty

    JointAxesMask3DReal::free_fixed_axes

    fn JointAxesMask3DReal::free_fixed_axes() -> JointAxesMask3DReal

    JointAxesMask3DReal::free_prismatic_axes

    fn JointAxesMask3DReal::free_prismatic_axes() -> JointAxesMask3DReal

    JointAxesMask3DReal::free_revolute_axes

    fn JointAxesMask3DReal::free_revolute_axes() -> JointAxesMask3DReal

    JointAxesMask3DReal::free_spherical_axes

    fn JointAxesMask3DReal::free_spherical_axes() -> JointAxesMask3DReal

    JointAxesMask3DReal::intersection

    JointAxesMask3DReal::lin_axes

    JointAxesMask3DReal::lin_x

    JointAxesMask3DReal::lin_y

    JointAxesMask3DReal::lin_z

    JointAxesMask3DReal::locked_fixed_axes

    fn JointAxesMask3DReal::locked_fixed_axes() -> JointAxesMask3DReal

    JointAxesMask3DReal::locked_prismatic_axes

    fn JointAxesMask3DReal::locked_prismatic_axes() -> JointAxesMask3DReal

    JointAxesMask3DReal::locked_revolute_axes

    fn JointAxesMask3DReal::locked_revolute_axes() -> JointAxesMask3DReal

    JointAxesMask3DReal::locked_spherical_axes

    fn JointAxesMask3DReal::locked_spherical_axes() -> JointAxesMask3DReal

    JointAxis

    pub(all) enum JointAxis {
    LinX
    LinY
    LinZ
    AngX
    AngY
    AngZ
    }

    JointAxis3DReal

    pub(all) enum JointAxis3DReal {
    LinX
    LinY
    LinZ
    AngX
    AngY
    AngZ
    }

    JointEnabled

    pub(all) enum JointEnabled {
    Enabled
    DisabledByAttachedBody
    Disabled
    }

    JointHandle3DReal

    pub struct JointHandle3DReal {
    index : Int
    }

    A handle to a joint stored inside a JointSet3DReal.

    This currently only references joints created via insert_generic and its helpers.

    JointLimits

    pub struct JointLimits {
    min : Float
    max : Float
    impulse : Float
    }
    fn JointLimits::JointLimits(min : Float, max : Float) -> JointLimits

    JointLimits::clear_impulse

    fn JointLimits::clear_impulse(self : JointLimits) -> JointLimits

    JointLimits::default

    fn JointLimits::default() -> JointLimits

    JointLimits::impulse

    fn JointLimits::impulse(self : JointLimits) -> Float

    JointLimits::max

    fn JointLimits::max(self : JointLimits) -> Float

    JointLimits::min

    fn JointLimits::min(self : JointLimits) -> Float

    JointLimits::set_impulse

    fn JointLimits::set_impulse(self : JointLimits, impulse : Float) -> JointLimits

    JointLimits::set_max

    fn JointLimits::set_max(self : JointLimits, max : Float) -> JointLimits

    JointLimits::set_min

    fn JointLimits::set_min(self : JointLimits, min : Float) -> JointLimits

    JointLimits3

    pub struct JointLimits3 {
    lin_x : JointLimits
    lin_y : JointLimits
    lin_z : JointLimits
    ang_x : JointLimits
    ang_y : JointLimits
    ang_z : JointLimits
    }

    JointLimits3::default

    fn JointLimits3::default() -> JointLimits3

    JointMotor

    pub struct JointMotor {
    target_vel : Float
    target_pos : Float
    stiffness : Float
    damping : Float
    max_force : Float
    impulse : Float
    model : MotorModel
    }

    JointMotor::clear_impulse

    fn JointMotor::clear_impulse(self : JointMotor) -> JointMotor

    JointMotor::default

    fn JointMotor::default() -> JointMotor

    JointMotor::impulse

    fn JointMotor::impulse(self : JointMotor) -> Float

    JointMotor::set_damping

    fn JointMotor::set_damping(self : JointMotor, damping : Float) -> JointMotor

    JointMotor::set_impulse

    fn JointMotor::set_impulse(self : JointMotor, impulse : Float) -> JointMotor

    JointMotor::set_max_force

    fn JointMotor::set_max_force(self : JointMotor, max_force : Float) -> JointMotor

    JointMotor::set_model

    fn JointMotor::set_model(self : JointMotor, model : MotorModel) -> JointMotor

    JointMotor::set_stiffness

    fn JointMotor::set_stiffness(self : JointMotor, stiffness : Float) -> JointMotor

    JointMotor::set_target_pos

    fn JointMotor::set_target_pos(self : JointMotor, target_pos : Float) -> JointMotor

    JointMotor::set_target_vel

    fn JointMotor::set_target_vel(self : JointMotor, target_vel : Float) -> JointMotor

    JointMotors3

    pub struct JointMotors3 {
    lin_x : JointMotor
    lin_y : JointMotor
    lin_z : JointMotor
    ang_x : JointMotor
    ang_y : JointMotor
    ang_z : JointMotor
    }

    JointMotors3::default

    fn JointMotors3::default() -> JointMotors3

    JointSet3DReal

    pub struct JointSet3DReal {
    spherical : Array[SphericalJoint3DReal]
    prismatic : Array[PrismaticJoint3DReal]
    spherical_motors : Array[SphericalMotor3DReal]
    generic : Array[GenericJointConstraint3DReal]
    springs : Array[SpringJoint3DReal]
    spherical_impulses : Array[
    Vec3
    ]
    prismatic_lock_impulses : Array[
    Vec2
    ]
    prismatic_motor_impulses : Array[Float]
    prismatic_angular_impulses : Array[
    Vec3
    ]
    spherical_motor_impulses : Array[
    Vec3
    ]
    generic_lock_impulses : Array[Array[Float]]
    generic_limit_impulses : Array[Array[Float]]
    generic_motor_impulses : Array[Array[Float]]
    generic_coupled_impulses : Array[Float]
    spring_impulses : Array[Float]
    }
    fn JointSet3DReal::JointSet3DReal() -> JointSet3DReal

    JointSet3DReal::disabled_contact_pairs

    fn JointSet3DReal::disabled_contact_pairs(self : JointSet3DReal) -> Array[(RigidBodyHandle, RigidBodyHandle)]

    JointSet3DReal::insert_generic

    fn JointSet3DReal::insert_generic(self : JointSet3DReal, body1 : RigidBodyHandle, body2 : RigidBodyHandle, data : GenericJoint3DReal, wake_up : Bool) -> JointHandle3DReal

    JointSet3DReal::insert_prismatic_motor_position

    fn JointSet3DReal::insert_prismatic_motor_position(self : JointSet3DReal, body1 : RigidBodyHandle, body2 : RigidBodyHandle, local_axis1 :
    Vec3
    , local_anchor1 :
    Vec3
    , local_anchor2 :
    Vec3
    , target : Float, stiffness : Float, damping : Float) -> Unit

    JointSet3DReal::insert_revolute

    JointSet3DReal::insert_spherical

    fn JointSet3DReal::insert_spherical(self : JointSet3DReal, body1 : RigidBodyHandle, body2 : RigidBodyHandle, local_anchor1 :
    Vec3
    , local_anchor2 :
    Vec3
    ) -> Unit

    JointSet3DReal::insert_spherical_motor_rotation

    fn JointSet3DReal::insert_spherical_motor_rotation(self : JointSet3DReal, body1 : RigidBodyHandle, body2 : RigidBodyHandle, target_rel_rotation :
    Quat
    , stiffness : Float, damping : Float) -> Unit

    JointSet3DReal::insert_spring

    fn JointSet3DReal::insert_spring(self : JointSet3DReal, body1 : RigidBodyHandle, body2 : RigidBodyHandle, local_anchor1 :
    Vec3
    , local_anchor2 :
    Vec3
    , rest_length : Float, stiffness : Float, damping : Float, wake_up : Bool) -> Unit

    JointSet3DReal::interaction_pairs

    JointSet3DReal::set_motor_position

    fn JointSet3DReal::set_motor_position(self : JointSet3DReal, handle : JointHandle3DReal, axis : JointAxis3DReal, target_pos : Float, stiffness : Float, damping : Float, max_force : Float) -> Unit

    JointSet3DReal::set_motor_velocity

    fn JointSet3DReal::set_motor_velocity(self : JointSet3DReal, handle : JointHandle3DReal, axis : JointAxis3DReal, target_vel : Float, damping : Float, max_force : Float) -> Unit

    JointSet3DReal::solve

    fn JointSet3DReal::solve(self : JointSet3DReal, bodies : RigidBodySet3D, dt : Float, iterations : Int) -> Unit

    JointSet3DReal::solve_with_island_stamp

    fn JointSet3DReal::solve_with_island_stamp(self : JointSet3DReal, bodies : RigidBodySet3D, dt : Float, iterations : Int, island_stamps : Array[Int]?, island_stamp : Int) -> Unit

    JointSolverBody

    pub struct JointSolverBody {
    im :
    Vec2

    ii : Float
    world_com :
    Vec2

    solver_vel : Int
    }

    A small "solver-body" view used by advanced joint-constraint builders.

    JointSolverBody::invalid

    LinkId

    pub struct LinkId {
    value : Int
    }

    LinkOrBodyRef

    pub(all) enum LinkOrBodyRef {
    Link(MultibodyLinkId)
    Body(Int)
    Fixed
    }

    A reference to either a multibody link or a rigid-body solver slot.

    This is part of Rapier's advanced joint-solver public surface. The MoonBit port keeps it as a lightweight enum to satisfy pub parity, without tying it to a particular solver implementation.

    LockedAxes

    pub struct LockedAxes {
    bits : Int
    }
    fn LockedAxes::LockedAxes(bits : Int) -> LockedAxes

    Leaf-name shims for Rapier's LockedAxes bitflags.

    This port's 2D rigid-body implementation currently uses coarse lock flags (locked_translations / locked_rotations). We still expose LockedAxes so the public surface matches Rapier's default-feature crates.

    LockedAxes::bits

    fn LockedAxes::bits(self : LockedAxes) -> Int

    LockedAxes::contains

    fn LockedAxes::contains(self : LockedAxes, other : LockedAxes) -> Bool

    LockedAxes::empty

    fn LockedAxes::empty() -> LockedAxes

    LockedAxes::insert

    fn LockedAxes::insert(self : LockedAxes, other : LockedAxes) -> LockedAxes

    LockedAxes::remove

    fn LockedAxes::remove(self : LockedAxes, other : LockedAxes) -> LockedAxes

    LockedAxes::rotation_locked

    fn LockedAxes::rotation_locked() -> LockedAxes

    LockedAxes::rotation_locked_x

    fn LockedAxes::rotation_locked_x() -> LockedAxes

    LockedAxes::rotation_locked_y

    fn LockedAxes::rotation_locked_y() -> LockedAxes

    LockedAxes::rotation_locked_z

    fn LockedAxes::rotation_locked_z() -> LockedAxes

    LockedAxes::translation_locked

    fn LockedAxes::translation_locked() -> LockedAxes

    LockedAxes::translation_locked_x

    fn LockedAxes::translation_locked_x() -> LockedAxes

    LockedAxes::translation_locked_y

    fn LockedAxes::translation_locked_y() -> LockedAxes

    LockedAxes::translation_locked_z

    fn LockedAxes::translation_locked_z() -> LockedAxes

    MotorModel

    pub(all) enum MotorModel {
    AccelerationBased
    ForceBased
    }

    MotorModel::combine_coefficients

    fn MotorModel::combine_coefficients(self : MotorModel, dt : Float, stiffness : Float, damping : Float) -> (Float, Float, Float)

    MotorState3DReal

    pub(all) enum MotorState3DReal {
    Disabled
    Velocity(Float, Float, Float)
    Position(Float, Float, Float, Float)
    }

    Multibody

    pub struct Multibody {
    // private fields
    }
    fn Multibody::Multibody() -> Multibody

    Multibody::apply_displacements

    fn Multibody::apply_displacements(self : Multibody, displacements : Array[Float]) -> Unit

    Multibody::body_jacobian

    fn Multibody::body_jacobian(self : Multibody, id : LinkId) -> Jacobian

    Multibody::damping_mut

    fn Multibody::damping_mut(self : Multibody) -> DVector

    Multibody::forward_kinematics

    fn Multibody::forward_kinematics(self : Multibody, bodies : RigidBodySet, update_positions : Bool) -> Unit

    Multibody::forward_kinematics_single_branch

    fn Multibody::forward_kinematics_single_branch(self : Multibody, bodies : RigidBodySet, branch : Array[Int], displacements : Array[Float]?, out_jacobian : Jacobian?) ->
    Isometry2

    fn Multibody::forward_kinematics_single_link(self : Multibody, bodies : RigidBodySet, id : LinkId, displacements : Array[Float]?, jacobian : Jacobian?) ->
    Isometry2

    Multibody::generalized_acceleration

    fn Multibody::generalized_acceleration(self : Multibody) -> DVector

    Multibody::generalized_velocity

    fn Multibody::generalized_velocity(self : Multibody) -> DVector

    Multibody::generalized_velocity_mut

    fn Multibody::generalized_velocity_mut(self : Multibody) -> DVector

    Multibody::inv_augmented_mass

    Multibody::inverse_kinematics

    fn Multibody::inverse_kinematics(self : Multibody, bodies : RigidBodySet, link_id : LinkId, options : InverseKinematicsOption, target_pose :
    Isometry2
    , joint_can_move : (MultibodyLink) -> Bool, displacements : DVector) -> Unit

    Multibody::inverse_kinematics_delta

    fn Multibody::inverse_kinematics_delta(self : Multibody, link_id : LinkId, dx : Float, dy : Float, da : Float, damping : Float, displacements : DVector) -> Unit

    Multibody::inverse_kinematics_delta_with_jacobian

    fn Multibody::inverse_kinematics_delta_with_jacobian(jacobian : Jacobian, dx : Float, dy : Float, da : Float, damping : Float, displacements : DVector) -> Unit

    Multibody::joint_velocity

    fn Multibody::joint_velocity(self : Multibody, link : MultibodyLink) -> DVector

    Multibody::kinematic_branch

    fn Multibody::kinematic_branch(self : Multibody, link_id : Int) -> Array[Int]

    fn Multibody::link(self : Multibody, id : LinkId) -> MultibodyLink?

    fn Multibody::link_mut(self : Multibody, id : LinkId) -> MultibodyLink?

    fn Multibody::links_mut(self : Multibody) -> Array[MultibodyLink]

    Multibody::ndofs

    fn Multibody::ndofs(self : Multibody) -> Int

    fn Multibody::num_links(self : Multibody) -> Int

    Multibody::root

    fn Multibody::root(self : Multibody) -> MultibodyLink?

    Multibody::root_mut

    fn Multibody::root_mut(self : Multibody) -> MultibodyLink?

    Multibody::self_contacts_enabled

    fn Multibody::self_contacts_enabled(self : Multibody) -> Bool

    Multibody::set_self_contacts_enabled

    fn Multibody::set_self_contacts_enabled(self : Multibody, enabled : Bool) -> Unit

    Multibody::update_rigid_bodies

    fn Multibody::update_rigid_bodies(self : Multibody, bodies : RigidBodySet) -> Unit

    Multibody3

    pub struct Multibody3 {
    inner : Multibody
    }

    Multibody3::apply_displacements

    fn Multibody3::apply_displacements(self : Multibody3, displacements : Array[Float]) -> Unit

    Multibody3::body_jacobian

    fn Multibody3::body_jacobian(self : Multibody3, id : LinkId) -> Jacobian3

    Multibody3::forward_kinematics

    fn Multibody3::forward_kinematics(self : Multibody3, bodies : RigidBodySet3, update_dofs : Bool) -> Unit

    fn Multibody3::forward_kinematics_single_link(self : Multibody3, bodies : RigidBodySet3, id : LinkId, displacements : Array[Float]?, jacobian : Jacobian3?) ->
    Isometry3

    Multibody3::inverse_kinematics

    fn Multibody3::inverse_kinematics(self : Multibody3, bodies : RigidBodySet3, id : LinkId, options : InverseKinematicsOption, target :
    Isometry3
    , can_move : (MultibodyLink) -> Bool, displacements : DVector) -> Unit

    Multibody3::ndofs

    fn Multibody3::ndofs(self : Multibody3) -> Int

    Multibody3DReal

    pub struct Multibody3DReal {
    inner : Multibody
    }

    Multibody3DReal::apply_displacements

    fn Multibody3DReal::apply_displacements(self : Multibody3DReal, displacements : Array[Float]) -> Unit

    Multibody3DReal::body_jacobian

    fn Multibody3DReal::body_jacobian(self : Multibody3DReal, id : LinkId) -> Jacobian3

    Multibody3DReal::forward_kinematics

    fn Multibody3DReal::forward_kinematics(self : Multibody3DReal, bodies : RigidBodySet3D, update_dofs : Bool) -> Unit

    fn Multibody3DReal::forward_kinematics_single_link(self : Multibody3DReal, bodies : RigidBodySet3D, id : LinkId, displacements : Array[Float]?, jacobian : Jacobian3?) ->
    Isometry3

    Multibody3DReal::inverse_kinematics

    fn Multibody3DReal::inverse_kinematics(self : Multibody3DReal, bodies : RigidBodySet3D, id : LinkId, options : InverseKinematicsOption, target :
    Isometry3
    , can_move : (MultibodyLink) -> Bool, displacements : DVector) -> Unit

    Multibody3DReal::ndofs

    fn Multibody3DReal::ndofs(self : Multibody3DReal) -> Int

    MultibodyIndex

    type MultibodyIndex

    MultibodyIndex::invalid

    MultibodyJoint

    pub struct MultibodyJoint {
    data : GenericJoint
    kinematic : Bool
    coords :
    Vec2

    angle : Float
    joint_rot :
    Rot2

    lin_coords3 :
    Vec3

    ang_coords3 :
    Vec3

    joint_rot3 :
    Quat

    axis3 :
    Vec3

    local_anchor1_3 :
    Vec3

    local_anchor2_3 :
    Vec3

    local_frame1_rotation :
    Quat

    local_frame2_rotation :
    Quat

    solver_lin_impulses :
    Vec2

    }
    fn MultibodyJoint::MultibodyJoint(data : GenericJoint, kinematic : Bool) -> MultibodyJoint

    An joint attached to two bodies based on the reduced coordinates formalism.

    This mirrors Rapier's MultibodyJoint public surface. The current MoonBit port uses a constraint-based solver for articulated bodies; this type is provided as a deterministic data container and for API parity.

    MultibodyJoint::apply_displacement

    fn MultibodyJoint::apply_displacement(self : MultibodyJoint, disp : Array[Float]) -> Unit

    MultibodyJoint::body_to_parent

    MultibodyJoint::default_damping

    fn MultibodyJoint::default_damping(self : MultibodyJoint, out : DVector) -> Unit

    MultibodyJoint::jacobian

    fn MultibodyJoint::jacobian(self : MultibodyJoint, transform :
    Rot2
    , out : Jacobian) -> Unit

    MultibodyJoint::jacobian_mul_coordinates

    fn MultibodyJoint::jacobian_mul_coordinates(self : MultibodyJoint, coords : Array[Float]) -> RigidBodyVelocity

    MultibodyJoint::num_velocity_constraints

    fn MultibodyJoint::num_velocity_constraints(self : MultibodyJoint) -> Int

    MultibodyJoint::velocity_constraints

    fn MultibodyJoint::velocity_constraints(self : MultibodyJoint, params : IntegrationParameters, multibody : Multibody, link : MultibodyLink, j_id : Int, jacobians : DVector, constraints : Array[GenericJointConstraint]) -> Int

    MultibodyJointHandle

    type MultibodyJointHandle

    MultibodyJointHandle::from_raw_parts

    fn MultibodyJointHandle::from_raw_parts(id : Int, generation : Int) -> MultibodyJointHandle

    MultibodyJointHandle::into_raw_parts

    fn MultibodyJointHandle::into_raw_parts(self : MultibodyJointHandle) -> (Int, Int)

    MultibodyJointHandle::invalid

    MultibodyJointSet

    pub struct MultibodyJointSet {
    // private fields
    }
    fn MultibodyJointSet::MultibodyJointSet() -> MultibodyJointSet

    MultibodyJointSet::attached_bodies

    fn MultibodyJointSet::attached_bodies(self : MultibodyJointSet, handle : RigidBodyHandle) -> Array[RigidBodyHandle]

    MultibodyJointSet::attached_joints

    MultibodyJointSet::bodies_attached_with_enabled_joint

    fn MultibodyJointSet::bodies_attached_with_enabled_joint(self : MultibodyJointSet, handle : RigidBodyHandle) -> Array[RigidBodyHandle]

    MultibodyJointSet::deserialize

    fn MultibodyJointSet::deserialize(data : String) -> MultibodyJointSet

    MultibodyJointSet::get

    MultibodyJointSet::get_multibody

    fn MultibodyJointSet::get_multibody(self : MultibodyJointSet, index : MultibodyIndex) -> Multibody?

    MultibodyJointSet::get_multibody_mut

    fn MultibodyJointSet::get_multibody_mut(self : MultibodyJointSet, index : MultibodyIndex) -> Multibody?

    MultibodyJointSet::get_multibody_mut_internal

    fn MultibodyJointSet::get_multibody_mut_internal(self : MultibodyJointSet, index : MultibodyIndex) -> Multibody?

    MultibodyJointSet::get_mut

    MultibodyJointSet::get_mut_internal

    fn MultibodyJointSet::get_mut_internal(self : MultibodyJointSet, handle : MultibodyJointHandle) -> (Multibody, LinkId)?

    MultibodyJointSet::get_unknown_gen

    fn MultibodyJointSet::get_unknown_gen(self : MultibodyJointSet, id : Int) -> (Multibody, LinkId, MultibodyJointHandle)?

    MultibodyJointSet::insert

    fn MultibodyJointSet::insert(self : MultibodyJointSet, parent : RigidBodyHandle, child : RigidBodyHandle, joint : GenericJoint, wake_up : Bool) -> MultibodyJointHandle?

    MultibodyJointSet::insert_kinematic

    fn MultibodyJointSet::insert_kinematic(self : MultibodyJointSet, parent : RigidBodyHandle, child : RigidBodyHandle, joint : GenericJoint, wake_up : Bool) -> MultibodyJointHandle?

    MultibodyJointSet::joint_between

    MultibodyJointSet::multibodies

    MultibodyJointSet::remove

    fn MultibodyJointSet::remove(self : MultibodyJointSet, handle : MultibodyJointHandle, wake_up : Bool) -> Unit

    MultibodyJointSet::remove_multibody_articulations

    fn MultibodyJointSet::remove_multibody_articulations(self : MultibodyJointSet, handle : RigidBodyHandle, wake_up : Bool) -> Unit

    MultibodyJointSet::revolute_joint_descriptors

    fn MultibodyJointSet::revolute_joint_descriptors(self : MultibodyJointSet) -> Array[MultibodyRevoluteJointDesc]

    fn MultibodyJointSet::rigid_body_link(self : MultibodyJointSet, handle : RigidBodyHandle) -> MultibodyLinkId?

    MultibodyJointSet::serialize

    fn MultibodyJointSet::serialize(self : MultibodyJointSet) -> String

    MultibodyJointSet::set_revolute_joint_solver_impulses

    fn MultibodyJointSet::set_revolute_joint_solver_impulses(self : MultibodyJointSet, link : MultibodyLinkId, lin_impulses :
    Vec2
    , motor_impulse : Float, limit_impulse : Float) -> Unit

    MultibodyJointSet::sync_rigid_bodies_from_multibodies

    fn MultibodyJointSet::sync_rigid_bodies_from_multibodies(self : MultibodyJointSet, bodies : RigidBodySet) -> Unit

    MultibodyJointSet::take_to_join

    MultibodyJointSet::take_wake_up

    MultibodyJointSet3

    pub struct MultibodyJointSet3 {
    // private fields
    }
    fn MultibodyJointSet3::MultibodyJointSet3() -> MultibodyJointSet3

    3D-flavored multibody joint set.

    MultibodyJointSet3::as_2d

    MultibodyJointSet3::attached_bodies

    MultibodyJointSet3::attached_joints

    MultibodyJointSet3::bodies_attached_with_enabled_joint

    fn MultibodyJointSet3::bodies_attached_with_enabled_joint(self : MultibodyJointSet3, handle : RigidBodyHandle) -> Array[RigidBodyHandle]

    MultibodyJointSet3::disabled_contact_pairs

    MultibodyJointSet3::get

    MultibodyJointSet3::get_multibody

    fn MultibodyJointSet3::get_multibody(self : MultibodyJointSet3, index : MultibodyIndex) -> Multibody3?

    MultibodyJointSet3::get_multibody_mut

    fn MultibodyJointSet3::get_multibody_mut(self : MultibodyJointSet3, index : MultibodyIndex) -> Multibody3?

    MultibodyJointSet3::get_multibody_mut_internal

    fn MultibodyJointSet3::get_multibody_mut_internal(self : MultibodyJointSet3, index : MultibodyIndex) -> Multibody3?

    MultibodyJointSet3::get_mut

    MultibodyJointSet3::get_mut_internal

    fn MultibodyJointSet3::get_mut_internal(self : MultibodyJointSet3, handle : MultibodyJointHandle) -> (Multibody3, LinkId)?

    MultibodyJointSet3::get_unknown_gen

    fn MultibodyJointSet3::get_unknown_gen(self : MultibodyJointSet3, id : Int) -> (Multibody3, LinkId, MultibodyJointHandle)?

    MultibodyJointSet3::insert

    fn MultibodyJointSet3::insert(self : MultibodyJointSet3, parent : RigidBodyHandle, child : RigidBodyHandle, joint : GenericJoint, wake_up : Bool) -> MultibodyJointHandle?

    MultibodyJointSet3::insert_kinematic

    fn MultibodyJointSet3::insert_kinematic(self : MultibodyJointSet3, parent : RigidBodyHandle, child : RigidBodyHandle, joint : GenericJoint, wake_up : Bool) -> MultibodyJointHandle?

    MultibodyJointSet3::interaction_pairs

    MultibodyJointSet3::joint_between

    MultibodyJointSet3::multibodies

    MultibodyJointSet3::remove

    fn MultibodyJointSet3::remove(self : MultibodyJointSet3, handle : MultibodyJointHandle, wake_up : Bool) -> Unit

    MultibodyJointSet3::remove_multibody_articulations

    fn MultibodyJointSet3::remove_multibody_articulations(self : MultibodyJointSet3, handle : RigidBodyHandle, wake_up : Bool) -> Unit

    MultibodyJointSet3::revolute_joint_descriptors

    fn MultibodyJointSet3::revolute_joint_descriptors(self : MultibodyJointSet3) -> Array[MultibodyRevoluteJointDesc]

    fn MultibodyJointSet3::rigid_body_link(self : MultibodyJointSet3, handle : RigidBodyHandle) -> MultibodyLinkId?

    MultibodyJointSet3::set_revolute_joint_solver_impulses

    fn MultibodyJointSet3::set_revolute_joint_solver_impulses(self : MultibodyJointSet3, link : MultibodyLinkId, lin_impulses :
    Vec2
    , motor_impulse : Float, limit_impulse : Float) -> Unit

    MultibodyJointSet3::sync_rigid_bodies_from_multibodies

    fn MultibodyJointSet3::sync_rigid_bodies_from_multibodies(self : MultibodyJointSet3, bodies : RigidBodySet3) -> Unit

    MultibodyJointSet3::take_to_join

    MultibodyJointSet3::take_wake_up

    MultibodyJointSet3DReal

    pub struct MultibodyJointSet3DReal {
    inner : MultibodyJointSet3
    }
    fn MultibodyJointSet3DReal::MultibodyJointSet3DReal() -> MultibodyJointSet3DReal

    MultibodyJointSet3DReal::attached_bodies

    MultibodyJointSet3DReal::attached_joints

    MultibodyJointSet3DReal::bodies_attached_with_enabled_joint

    fn MultibodyJointSet3DReal::bodies_attached_with_enabled_joint(self : MultibodyJointSet3DReal, handle : RigidBodyHandle) -> Array[RigidBodyHandle]

    MultibodyJointSet3DReal::disabled_contact_pairs

    MultibodyJointSet3DReal::get

    MultibodyJointSet3DReal::get_multibody

    MultibodyJointSet3DReal::get_multibody_mut

    MultibodyJointSet3DReal::get_mut

    MultibodyJointSet3DReal::get_unknown_gen

    MultibodyJointSet3DReal::insert

    MultibodyJointSet3DReal::insert_kinematic

    fn MultibodyJointSet3DReal::insert_kinematic(self : MultibodyJointSet3DReal, parent : RigidBodyHandle, child : RigidBodyHandle, joint : GenericJoint3DReal, wake_up : Bool) -> MultibodyJointHandle?

    MultibodyJointSet3DReal::interaction_pairs

    MultibodyJointSet3DReal::joint_between

    MultibodyJointSet3DReal::multibodies

    MultibodyJointSet3DReal::remove

    fn MultibodyJointSet3DReal::remove(self : MultibodyJointSet3DReal, handle : MultibodyJointHandle, wake_up : Bool) -> Unit

    MultibodyJointSet3DReal::remove_multibody_articulations

    fn MultibodyJointSet3DReal::remove_multibody_articulations(self : MultibodyJointSet3DReal, handle : RigidBodyHandle, wake_up : Bool) -> Unit

    MultibodyJointSet3DReal::revolute_joint_descriptors

    MultibodyJointSet3DReal::set_revolute_joint_solver_impulses

    fn MultibodyJointSet3DReal::set_revolute_joint_solver_impulses(self : MultibodyJointSet3DReal, link : MultibodyLinkId, lin_impulses :
    Vec2
    , motor_impulse : Float, limit_impulse : Float) -> Unit

    MultibodyJointSet3DReal::sync_rigid_bodies_from_multibodies

    fn MultibodyJointSet3DReal::sync_rigid_bodies_from_multibodies(self : MultibodyJointSet3DReal, bodies : RigidBodySet3D) -> Unit

    MultibodyJointSet3DReal::take_to_join

    MultibodyJointSet3DReal::take_wake_up

    pub struct MultibodyLink {
    // private fields
    }
    fn MultibodyLink::MultibodyLink(rigid_body : RigidBodyHandle, internal_id : Int, assembly_id : Int, parent_internal_id : Int, joint : MultibodyJoint, local_to_world :
    Isometry2
    , local_to_parent :
    Isometry2
    ) -> MultibodyLink

    MultibodyLink::is_root

    fn MultibodyLink::is_root(self : MultibodyLink) -> Bool

    fn MultibodyLink::link_id(self : MultibodyLink) -> LinkId

    MultibodyLink::local_to_parent

    MultibodyLink::local_to_world

    MultibodyLink::parent_id

    fn MultibodyLink::parent_id(self : MultibodyLink) -> LinkId

    MultibodyLink::rigid_body_handle

    fn MultibodyLink::rigid_body_handle(self : MultibodyLink) -> RigidBodyHandle

    MultibodyLinkId

    type MultibodyLinkId

    MultibodyLinkId::default

    MultibodyLinkId::id

    fn MultibodyLinkId::id(self : MultibodyLinkId) -> Int

    MultibodyLinkId::multibody

    MultibodyRevoluteJointDesc

    pub struct MultibodyRevoluteJointDesc {
    link : MultibodyLinkId
    parent : RigidBodyHandle
    child : RigidBodyHandle
    joint : RevoluteJoint
    solver_lin_impulses :
    Vec2

    }

    A lightweight joint view used by the physics pipeline to build solver constraints.

    This intentionally exposes only what the pipeline needs (parent/child rigid-bodies and the revolute joint parameters + warmstart cache). The canonical storage remains inside the multibody.

    PdErrors3

    Pose error between two isometries, expressed at the center of mass.

    PinSlotJoint

    pub struct PinSlotJoint {
    axis :
    Vec2

    local_anchor1 :
    Vec2

    local_anchor2 :
    Vec2

    limits : JointLimits
    limits_enabled : Bool
    }
    fn PinSlotJoint::PinSlotJoint(axis :
    Vec2
    ) -> PinSlotJoint

    PinSlotJoint::set_local_axis1

    PinSlotJoint::set_local_axis2

    PinSlotJointBuilder

    pub struct PinSlotJointBuilder {
    axis :
    Vec2

    local_anchor1 :
    Vec2

    local_anchor2 :
    Vec2

    limits : JointLimits
    limits_enabled : Bool
    }
    fn PinSlotJointBuilder::PinSlotJointBuilder(axis :
    Vec2
    ) -> PinSlotJointBuilder

    PinSlotJointBuilder::build

    PinSlotJointBuilder::limits

    fn PinSlotJointBuilder::limits(self : PinSlotJointBuilder, min : Float, max : Float) -> PinSlotJointBuilder

    PinSlotJointBuilder::local_anchor1

    PinSlotJointBuilder::local_anchor2

    PredictedImpacts

    pub(all) enum PredictedImpacts {
    Impacts(Array[(RigidBodyHandle, Float)])
    ImpactsAfterEndTime(Float)
    NoImpacts
    }

    PrismaticJoint

    pub struct PrismaticJoint {
    axis :
    Vec2

    local_anchor1 :
    Vec2

    local_anchor2 :
    Vec2

    axis3 :
    Vec3

    local_anchor1_3 :
    Vec3

    local_anchor2_3 :
    Vec3

    local_frame1_rotation :
    Quat

    local_frame2_rotation :
    Quat

    is_spatial : Bool
    softness : SpringCoefficients
    motor : JointMotor
    motor_enabled : Bool
    limits : JointLimits
    limits_enabled : Bool
    }
    fn PrismaticJoint::PrismaticJoint(axis :
    Vec2
    ) -> PrismaticJoint

    PrismaticJoint::motor

    PrismaticJoint::set_local_axis1

    PrismaticJoint::set_local_axis2

    PrismaticJoint::softness

    PrismaticJoint3DReal

    pub struct PrismaticJoint3DReal {
    body1 : RigidBodyHandle
    body2 : RigidBodyHandle
    local_anchor1 :
    Vec3

    local_anchor2 :
    Vec3

    local_axis1 :
    Vec3

    motor_target : Float
    motor_stiffness : Float
    motor_damping : Float
    motor_enabled : Bool
    }

    PrismaticJoint3DRealBuilder

    pub struct PrismaticJoint3DRealBuilder {
    inner : GenericJoint3DRealBuilder
    }
    fn PrismaticJoint3DRealBuilder::PrismaticJoint3DRealBuilder(axis :
    Vec3
    ) -> PrismaticJoint3DRealBuilder

    PrismaticJoint3DRealBuilder::build

    PrismaticJoint3DRealBuilder::limits

    PrismaticJoint3DRealBuilder::motor_max_force

    PrismaticJoint3DRealBuilder::motor_position

    fn PrismaticJoint3DRealBuilder::motor_position(self : PrismaticJoint3DRealBuilder, target_pos : Float, stiffness : Float, damping : Float) -> PrismaticJoint3DRealBuilder

    PrismaticJoint3DRealBuilder::motor_velocity

    fn PrismaticJoint3DRealBuilder::motor_velocity(self : PrismaticJoint3DRealBuilder, target_vel : Float, damping : Float) -> PrismaticJoint3DRealBuilder

    PrismaticJointBuilder

    pub struct PrismaticJointBuilder {
    // private fields
    }
    fn PrismaticJointBuilder::PrismaticJointBuilder(axis :
    Vec2
    ) -> PrismaticJointBuilder

    PrismaticJointBuilder::build

    PrismaticJointBuilder::limits

    fn PrismaticJointBuilder::limits(self : PrismaticJointBuilder, min : Float, max : Float) -> PrismaticJointBuilder

    PrismaticJointBuilder::local_anchor1

    PrismaticJointBuilder::local_anchor2

    PrismaticJointBuilder::motor_max_force

    fn PrismaticJointBuilder::motor_max_force(self : PrismaticJointBuilder, max_force : Float) -> PrismaticJointBuilder

    PrismaticJointBuilder::motor_model

    PrismaticJointBuilder::motor_position

    fn PrismaticJointBuilder::motor_position(self : PrismaticJointBuilder, target_pos : Float, stiffness : Float, damping : Float) -> PrismaticJointBuilder

    PrismaticJointBuilder::motor_velocity

    fn PrismaticJointBuilder::motor_velocity(self : PrismaticJointBuilder, target_vel : Float, factor : Float) -> PrismaticJointBuilder

    PrismaticJointBuilder::softness

    PrismaticJointBuilder3

    pub struct PrismaticJointBuilder3 {
    inner : PrismaticJointBuilder
    axis :
    Vec3

    local_anchor1_3 :
    Vec3

    local_anchor2_3 :
    Vec3

    }
    fn PrismaticJointBuilder3::PrismaticJointBuilder3(axis :
    Vec3
    ) -> PrismaticJointBuilder3

    3D-flavored prismatic joint builder used by the rapier3d parity tests.

    NOTE: This maps to the existing 2D prismatic joint builder by dropping the z coordinate.

    PrismaticJointBuilder3::build

    PrismaticJointBuilder3::limits

    fn PrismaticJointBuilder3::limits(self : PrismaticJointBuilder3, min : Float, max : Float) -> PrismaticJointBuilder3

    PrismaticJointBuilder3::local_anchor1

    PrismaticJointBuilder3::local_anchor2

    PrismaticJointBuilder3::motor_max_force

    fn PrismaticJointBuilder3::motor_max_force(self : PrismaticJointBuilder3, max_force : Float) -> PrismaticJointBuilder3

    PrismaticJointBuilder3::motor_model

    PrismaticJointBuilder3::motor_position

    fn PrismaticJointBuilder3::motor_position(self : PrismaticJointBuilder3, target_pos : Float, stiffness : Float, damping : Float) -> PrismaticJointBuilder3

    PrismaticJointBuilder3::motor_velocity

    fn PrismaticJointBuilder3::motor_velocity(self : PrismaticJointBuilder3, target_vel : Float, factor : Float) -> PrismaticJointBuilder3

    PrismaticJointBuilder3::softness

    RevoluteJoint

    pub struct RevoluteJoint {
    // private fields
    }
    fn RevoluteJoint::RevoluteJoint() -> RevoluteJoint

    RevoluteJoint::limits

    fn RevoluteJoint::limits(self : RevoluteJoint) -> JointLimits?

    RevoluteJoint::local_anchor1

    RevoluteJoint::local_anchor2

    RevoluteJoint::motor

    fn RevoluteJoint::motor(self : RevoluteJoint) -> JointMotor?

    RevoluteJoint::softness

    RevoluteJoint3

    pub struct RevoluteJoint3 {
    axis :
    Vec3

    local_frame1_rotation :
    Quat

    local_frame2_rotation :
    Quat

    }
    fn RevoluteJoint3::RevoluteJoint3(axis :
    Vec3
    ) -> RevoluteJoint3

    3D revolute joint. This is the dim3 counterpart of the 2D RevoluteJointBuilder/GenericJoint path used in the rapier2d-aligned API.

    RevoluteJoint3::angle

    The angle along the free degree of freedom of this revolute joint in [-pi, pi].

    RevoluteJoint3Builder

    pub(all) struct RevoluteJoint3Builder(RevoluteJoint3)

    RevoluteJoint3Builder::build

    RevoluteJoint3DRealBuilder

    pub struct RevoluteJoint3DRealBuilder {
    inner : GenericJoint3DRealBuilder
    }
    fn RevoluteJoint3DRealBuilder::RevoluteJoint3DRealBuilder(axis :
    Vec3
    ) -> RevoluteJoint3DRealBuilder

    RevoluteJoint3DRealBuilder::build

    RevoluteJoint3DRealBuilder::limits

    RevoluteJoint3DRealBuilder::motor_max_force

    fn RevoluteJoint3DRealBuilder::motor_max_force(self : RevoluteJoint3DRealBuilder, max_force : Float) -> RevoluteJoint3DRealBuilder

    RevoluteJoint3DRealBuilder::motor_position

    fn RevoluteJoint3DRealBuilder::motor_position(self : RevoluteJoint3DRealBuilder, target_pos : Float, stiffness : Float, damping : Float) -> RevoluteJoint3DRealBuilder

    RevoluteJoint3DRealBuilder::motor_velocity

    fn RevoluteJoint3DRealBuilder::motor_velocity(self : RevoluteJoint3DRealBuilder, target_vel : Float, damping : Float) -> RevoluteJoint3DRealBuilder

    RevoluteJointBuilder

    pub struct RevoluteJointBuilder {
    // private fields
    }
    fn RevoluteJointBuilder::RevoluteJointBuilder() -> RevoluteJointBuilder

    RevoluteJointBuilder::build

    RevoluteJointBuilder::limits

    fn RevoluteJointBuilder::limits(self : RevoluteJointBuilder, min : Float, max : Float) -> RevoluteJointBuilder

    RevoluteJointBuilder::local_anchor1

    RevoluteJointBuilder::local_anchor2

    RevoluteJointBuilder::motor_max_force

    fn RevoluteJointBuilder::motor_max_force(self : RevoluteJointBuilder, max_force : Float) -> RevoluteJointBuilder

    RevoluteJointBuilder::motor_model

    RevoluteJointBuilder::motor_position

    fn RevoluteJointBuilder::motor_position(self : RevoluteJointBuilder, target_pos : Float, stiffness : Float, damping : Float) -> RevoluteJointBuilder

    RevoluteJointBuilder::motor_velocity

    fn RevoluteJointBuilder::motor_velocity(self : RevoluteJointBuilder, target_vel : Float, factor : Float) -> RevoluteJointBuilder

    RevoluteJointBuilder::softness

    RevoluteJointBuilder3

    pub struct RevoluteJointBuilder3 {
    inner : RevoluteJointBuilder
    axis :
    Vec3

    local_anchor1_3 :
    Vec3

    local_anchor2_3 :
    Vec3

    }
    fn RevoluteJointBuilder3::RevoluteJointBuilder3(axis :
    Vec3
    ) -> RevoluteJointBuilder3

    3D-flavored revolute joint builder used by the rapier3d parity tests.

    RevoluteJointBuilder3::build

    RevoluteJointBuilder3::limits

    fn RevoluteJointBuilder3::limits(self : RevoluteJointBuilder3, min : Float, max : Float) -> RevoluteJointBuilder3

    RevoluteJointBuilder3::local_anchor1

    RevoluteJointBuilder3::local_anchor2

    RevoluteJointBuilder3::motor_max_force

    fn RevoluteJointBuilder3::motor_max_force(self : RevoluteJointBuilder3, max_force : Float) -> RevoluteJointBuilder3

    RevoluteJointBuilder3::motor_model

    RevoluteJointBuilder3::motor_position

    fn RevoluteJointBuilder3::motor_position(self : RevoluteJointBuilder3, target_pos : Float, stiffness : Float, damping : Float) -> RevoluteJointBuilder3

    RevoluteJointBuilder3::motor_velocity

    fn RevoluteJointBuilder3::motor_velocity(self : RevoluteJointBuilder3, target_vel : Float, factor : Float) -> RevoluteJointBuilder3

    RevoluteJointBuilder3::softness

    RigidBody

    pub struct RigidBody {
    ids : RigidBodyIds
    user_data :
    UserData128

    position : RigidBodyPosition
    body_type : RigidBodyType
    locked_translations : Bool
    locked_rotations : Bool
    dominance : RigidBodyDominance
    enabled : Bool
    activation : RigidBodyActivation
    damping : RigidBodyDamping
    vels : RigidBodyVelocity
    forces : RigidBodyForces
    ccd : RigidBodyCcd
    mass_props : RigidBodyMassProps
    colliders : RigidBodyColliders
    additional_mass : Float
    additional_solver_iterations : Int
    changes : RigidBodyChanges
    }

    RigidBody::activation

    fn RigidBody::activation(self : RigidBody) -> RigidBodyActivation

    RigidBody::activation_mut

    fn RigidBody::activation_mut(self : RigidBody) -> RigidBodyActivation

    Rapier leaf-name shim: mutable accessor.

    RigidBody::active_island_id

    fn RigidBody::active_island_id(self : RigidBody) -> Int

    RigidBody::add_force

    fn RigidBody::add_force(self : RigidBody, force :
    Vec2
    , wake_up : Bool) -> RigidBody

    RigidBody::add_force_at_point

    fn RigidBody::add_force_at_point(self : RigidBody, force :
    Vec2
    , point :
    Vec2
    , wake_up : Bool) -> RigidBody

    RigidBody::add_torque

    fn RigidBody::add_torque(self : RigidBody, torque : Float, wake_up : Bool) -> RigidBody

    RigidBody::additional_mass

    fn RigidBody::additional_mass(self : RigidBody) -> Float

    RigidBody::additional_solver_iterations

    fn RigidBody::additional_solver_iterations(self : RigidBody) -> Int

    RigidBody::angular_damping

    fn RigidBody::angular_damping(self : RigidBody) -> Float

    RigidBody::angvel

    fn RigidBody::angvel(self : RigidBody) -> Float

    RigidBody::angvel_with_gyroscopic_forces

    fn RigidBody::angvel_with_gyroscopic_forces(self : RigidBody, dt : Float) -> Float

    Rapier 3D-only API, exposed as a no-op for pub parity on this 2D implementation.

    RigidBody::apply_impulse

    fn RigidBody::apply_impulse(self : RigidBody, impulse :
    Vec2
    , wake_up : Bool) -> RigidBody

    RigidBody::apply_impulse_at_point

    fn RigidBody::apply_impulse_at_point(self : RigidBody, impulse :
    Vec2
    , point :
    Vec2
    , wake_up : Bool) -> RigidBody

    RigidBody::apply_torque_impulse

    fn RigidBody::apply_torque_impulse(self : RigidBody, torque_impulse : Float, wake_up : Bool) -> RigidBody

    RigidBody::attach_collider_raw

    fn RigidBody::attach_collider_raw(self : RigidBody, id : Int, generation : Int) -> RigidBody

    RigidBody::body_type

    fn RigidBody::body_type(self : RigidBody) -> RigidBodyType

    RigidBody::ccd

    fn RigidBody::ccd(self : RigidBody) -> RigidBodyCcd

    RigidBody::center_of_mass

    RigidBody::clear_changes

    fn RigidBody::clear_changes(self : RigidBody) -> RigidBody

    RigidBody::colliders

    fn RigidBody::colliders(self : RigidBody) -> Array[(Int, Int)]

    RigidBody::damping

    fn RigidBody::damping(self : RigidBody) -> RigidBodyDamping

    RigidBody::detach_collider_raw

    fn RigidBody::detach_collider_raw(self : RigidBody, id : Int, generation : Int) -> RigidBody

    RigidBody::dominance_group

    fn RigidBody::dominance_group(self : RigidBody) -> Int

    RigidBody::effective_active_set_offset

    fn RigidBody::effective_active_set_offset(self : RigidBody) -> Int

    RigidBody::effective_dominance_group

    fn RigidBody::effective_dominance_group(self : RigidBody) -> Int

    RigidBody::enable_ccd

    fn RigidBody::enable_ccd(self : RigidBody, enabled : Bool) -> RigidBody

    RigidBody::enable_gyroscopic_forces

    fn RigidBody::enable_gyroscopic_forces(self : RigidBody, enabled : Bool) -> RigidBody

    Rapier 3D-only API, exposed as a no-op for pub parity on this 2D implementation.

    RigidBody::forces

    fn RigidBody::forces(self : RigidBody) -> RigidBodyForces

    RigidBody::gravitational_potential_energy

    fn RigidBody::gravitational_potential_energy(self : RigidBody, dt : Float, gravity :
    Vec2
    ) -> Float

    RigidBody::gravity_scale

    fn RigidBody::gravity_scale(self : RigidBody) -> Float

    RigidBody::inertia

    fn RigidBody::inertia(self : RigidBody) -> Float

    RigidBody::inv_inertia

    fn RigidBody::inv_inertia(self : RigidBody) -> Float

    RigidBody::inv_mass

    fn RigidBody::inv_mass(self : RigidBody) -> Float

    RigidBody::is_ccd_active

    fn RigidBody::is_ccd_active(self : RigidBody) -> Bool

    RigidBody::is_ccd_enabled

    fn RigidBody::is_ccd_enabled(self : RigidBody) -> Bool

    RigidBody::is_dynamic

    fn RigidBody::is_dynamic(self : RigidBody) -> Bool

    RigidBody::is_dynamic_or_kinematic

    fn RigidBody::is_dynamic_or_kinematic(self : RigidBody) -> Bool

    RigidBody::is_enabled

    fn RigidBody::is_enabled(self : RigidBody) -> Bool

    RigidBody::is_fixed

    fn RigidBody::is_fixed(self : RigidBody) -> Bool

    RigidBody::is_kinematic

    fn RigidBody::is_kinematic(self : RigidBody) -> Bool

    RigidBody::is_moving

    fn RigidBody::is_moving(self : RigidBody) -> Bool

    RigidBody::is_rotation_locked

    fn RigidBody::is_rotation_locked(self : RigidBody) -> Bool

    RigidBody::is_sleeping

    fn RigidBody::is_sleeping(self : RigidBody) -> Bool

    RigidBody::is_translation_locked

    fn RigidBody::is_translation_locked(self : RigidBody) -> Bool

    RigidBody::kinetic_energy

    fn RigidBody::kinetic_energy(self : RigidBody) -> Float

    RigidBody::linear_damping

    fn RigidBody::linear_damping(self : RigidBody) -> Float

    RigidBody::linvel

    RigidBody::local_center_of_mass

    fn RigidBody::local_center_of_mass(self : RigidBody) ->
    Vec2

    RigidBody::lock_rotations

    fn RigidBody::lock_rotations(self : RigidBody) -> RigidBody

    RigidBody::lock_translations

    fn RigidBody::lock_translations(self : RigidBody) -> RigidBody

    RigidBody::locked_rotations

    fn RigidBody::locked_rotations(self : RigidBody) -> Bool

    RigidBody::locked_translations

    fn RigidBody::locked_translations(self : RigidBody) -> Bool

    RigidBody::mark_local_mass_properties_changed

    fn RigidBody::mark_local_mass_properties_changed(self : RigidBody) -> RigidBody

    RigidBody::mass

    fn RigidBody::mass(self : RigidBody) -> Float

    RigidBody::mass_props

    fn RigidBody::mass_props(self : RigidBody) -> RigidBodyMassProps

    RigidBody::next_position

    RigidBody::predict_position_using_velocity

    fn RigidBody::predict_position_using_velocity(self : RigidBody, dt : Float) ->
    Isometry2

    RigidBody::predict_position_using_velocity_and_forces

    fn RigidBody::predict_position_using_velocity_and_forces(self : RigidBody, dt : Float) ->
    Isometry2

    RigidBody::recompute_mass_properties_from_colliders

    fn RigidBody::recompute_mass_properties_from_colliders(self : RigidBody) -> RigidBody

    RigidBody::reset_forces

    fn RigidBody::reset_forces(self : RigidBody, wake_up : Bool) -> RigidBody

    RigidBody::reset_torques

    fn RigidBody::reset_torques(self : RigidBody, wake_up : Bool) -> RigidBody

    RigidBody::restrict_rotations

    fn RigidBody::restrict_rotations(self : RigidBody, allow_x : Bool, allow_y : Bool, allow_z : Bool, wake_up : Bool) -> RigidBody

    RigidBody::restrict_translations

    fn RigidBody::restrict_translations(self : RigidBody, allow_x : Bool, allow_y : Bool, allow_z : Bool, wake_up : Bool) -> RigidBody

    RigidBody::rotation

    RigidBody::set_additional_mass

    fn RigidBody::set_additional_mass(self : RigidBody, mass : Float, wake_up : Bool) -> RigidBody

    RigidBody::set_additional_mass_properties

    fn RigidBody::set_additional_mass_properties(self : RigidBody, props : RigidBodyAdditionalMassProps, wake_up : Bool) -> RigidBody

    RigidBody::set_additional_solver_iterations

    fn RigidBody::set_additional_solver_iterations(self : RigidBody, additional_iterations : Int) -> RigidBody

    RigidBody::set_angular_damping

    fn RigidBody::set_angular_damping(self : RigidBody, damping : Float) -> RigidBody

    RigidBody::set_angvel

    fn RigidBody::set_angvel(self : RigidBody, angvel : Float, wake_up : Bool) -> RigidBody

    RigidBody::set_body_type

    fn RigidBody::set_body_type(self : RigidBody, body_type : RigidBodyType, wake_up : Bool) -> RigidBody

    RigidBody::set_ccd_active

    fn RigidBody::set_ccd_active(self : RigidBody, active : Bool) -> RigidBody

    RigidBody::set_ccd_properties

    fn RigidBody::set_ccd_properties(self : RigidBody, ccd_thickness : Float, ccd_max_dist : Float) -> RigidBody

    RigidBody::set_dominance_group

    fn RigidBody::set_dominance_group(self : RigidBody, group : Int) -> RigidBody

    RigidBody::set_enabled

    fn RigidBody::set_enabled(self : RigidBody, enabled : Bool) -> RigidBody

    RigidBody::set_enabled_rotations

    fn RigidBody::set_enabled_rotations(self : RigidBody, allow_x : Bool, allow_y : Bool, allow_z : Bool, wake_up : Bool) -> RigidBody

    RigidBody::set_enabled_translations

    fn RigidBody::set_enabled_translations(self : RigidBody, allow_x : Bool, allow_y : Bool, allow_z : Bool, wake_up : Bool) -> RigidBody

    RigidBody::set_gravity_scale

    fn RigidBody::set_gravity_scale(self : RigidBody, scale : Float, wake_up : Bool) -> RigidBody

    RigidBody::set_kinematic_position_based_vels

    fn RigidBody::set_kinematic_position_based_vels(self : RigidBody, vels : RigidBodyVelocity) -> RigidBody

    RigidBody::set_linear_damping

    fn RigidBody::set_linear_damping(self : RigidBody, damping : Float) -> RigidBody

    RigidBody::set_linvel

    fn RigidBody::set_linvel(self : RigidBody, linvel :
    Vec2
    , wake_up : Bool) -> RigidBody

    RigidBody::set_local_mass_properties

    RigidBody::set_locked_rotations

    fn RigidBody::set_locked_rotations(self : RigidBody, locked : Bool, wake_up : Bool) -> RigidBody

    RigidBody::set_locked_translations

    fn RigidBody::set_locked_translations(self : RigidBody, locked : Bool, wake_up : Bool) -> RigidBody

    RigidBody::set_next_kinematic_position

    fn RigidBody::set_next_kinematic_position(self : RigidBody, position :
    Isometry2
    ) -> RigidBody

    RigidBody::set_next_kinematic_rotation

    fn RigidBody::set_next_kinematic_rotation(self : RigidBody, rotation :
    Rot2
    ) -> RigidBody

    RigidBody::set_next_kinematic_translation

    fn RigidBody::set_next_kinematic_translation(self : RigidBody, translation :
    Vec2
    ) -> RigidBody

    RigidBody::set_next_position_internal

    fn RigidBody::set_next_position_internal(self : RigidBody, next_position :
    Isometry2
    ) -> RigidBody

    RigidBody::set_position

    fn RigidBody::set_position(self : RigidBody, position :
    Isometry2
    , wake_up : Bool) -> RigidBody

    RigidBody::set_rotation

    fn RigidBody::set_rotation(self : RigidBody, rotation :
    Rot2
    , wake_up : Bool) -> RigidBody

    RigidBody::set_soft_ccd_prediction

    fn RigidBody::set_soft_ccd_prediction(self : RigidBody, prediction_distance : Float) -> RigidBody

    RigidBody::set_translation

    fn RigidBody::set_translation(self : RigidBody, translation :
    Vec2
    , wake_up : Bool) -> RigidBody

    RigidBody::set_user_data

    fn RigidBody::set_user_data(self : RigidBody, data : Int) -> RigidBody

    RigidBody::set_user_data128

    RigidBody::set_vels

    fn RigidBody::set_vels(self : RigidBody, vels : RigidBodyVelocity, wake_up : Bool) -> RigidBody

    RigidBody::sleep

    fn RigidBody::sleep(self : RigidBody) -> RigidBody

    RigidBody::soft_ccd_prediction

    fn RigidBody::soft_ccd_prediction(self : RigidBody) -> Float

    RigidBody::translation

    RigidBody::update_effective_force_and_torque

    fn RigidBody::update_effective_force_and_torque(self : RigidBody, gravity :
    Vec2
    ) -> RigidBody

    Update the effective force/torque (gravity + accumulated user force/torque) stored on this body. This matches Rapier's workflow where RigidBodyForces.force/torque are derived each step.

    RigidBody::user_data

    fn RigidBody::user_data(self : RigidBody) -> Int

    RigidBody::user_data128

    RigidBody::velocity_at_point

    RigidBody::vels

    RigidBody::wake_up

    fn RigidBody::wake_up(self : RigidBody, strong : Bool) -> RigidBody

    RigidBody::world_com

    RigidBody3D

    pub struct RigidBody3D {
    body_type : RigidBodyType
    user_data :
    UserData128

    position :
    Isometry3

    next_position :
    Isometry3

    velocity : RigidBodyVelocity3D
    locked_translations : Bool
    trans_x_enabled : Bool
    trans_y_enabled : Bool
    trans_z_enabled : Bool
    locked_rotations : Bool
    rot_x_enabled : Bool
    rot_y_enabled : Bool
    rot_z_enabled : Bool
    ccd_active : Bool
    ccd_enabled : Bool
    soft_ccd_prediction : Float
    gyroscopic_forces_enabled : Bool
    linear_damping : Float
    angular_damping : Float
    gravity_scale : Float
    mass_properties :
    MassProperties3

    additional_solver_iterations : Int
    activation : RigidBodyActivation3D
    can_sleep : Bool
    dominance_group : Int
    }

    RigidBody3D::additional_solver_iterations

    fn RigidBody3D::additional_solver_iterations(self : RigidBody3D) -> Int

    RigidBody3D::advance_position

    fn RigidBody3D::advance_position(self : RigidBody3D, dt : Float) -> Unit

    RigidBody3D::angvel

    RigidBody3D::apply_damping

    fn RigidBody3D::apply_damping(self : RigidBody3D, dt : Float) -> Unit

    RigidBody3D::apply_gravity

    fn RigidBody3D::apply_gravity(self : RigidBody3D, gravity :
    Vec3
    , dt : Float) -> Unit

    RigidBody3D::apply_gyroscopic_forces

    fn RigidBody3D::apply_gyroscopic_forces(self : RigidBody3D, dt : Float) -> Unit

    RigidBody3D::apply_impulse_at_point

    fn RigidBody3D::apply_impulse_at_point(self : RigidBody3D, impulse :
    Vec3
    , point :
    Vec3
    , wake_up : Bool) -> Unit

    RigidBody3D::body_type

    fn RigidBody3D::body_type(self : RigidBody3D) -> RigidBodyType

    RigidBody3D::dominance_group

    fn RigidBody3D::dominance_group(self : RigidBody3D) -> Int

    RigidBody3D::effective_dominance_group

    fn RigidBody3D::effective_dominance_group(self : RigidBody3D) -> Int

    RigidBody3D::gravity_scale

    fn RigidBody3D::gravity_scale(self : RigidBody3D) -> Float

    RigidBody3D::gyroscopic_forces_enabled

    fn RigidBody3D::gyroscopic_forces_enabled(self : RigidBody3D) -> Bool

    RigidBody3D::integrate

    fn RigidBody3D::integrate(self : RigidBody3D, gravity :
    Vec3
    , dt : Float) -> Unit

    RigidBody3D::is_active

    fn RigidBody3D::is_active(self : RigidBody3D) -> Bool

    RigidBody3D::is_ccd_active

    fn RigidBody3D::is_ccd_active(self : RigidBody3D) -> Bool

    RigidBody3D::is_ccd_enabled

    fn RigidBody3D::is_ccd_enabled(self : RigidBody3D) -> Bool

    RigidBody3D::is_sleeping

    fn RigidBody3D::is_sleeping(self : RigidBody3D) -> Bool

    RigidBody3D::linvel

    RigidBody3D::locked_axes

    fn RigidBody3D::locked_axes(self : RigidBody3D) -> LockedAxes

    RigidBody3D::locked_rotations

    fn RigidBody3D::locked_rotations(self : RigidBody3D) -> Bool

    RigidBody3D::locked_translations

    fn RigidBody3D::locked_translations(self : RigidBody3D) -> Bool

    RigidBody3D::mass_properties

    RigidBody3D::next_position

    RigidBody3D::restrict_rotations

    fn RigidBody3D::restrict_rotations(self : RigidBody3D, allow_x : Bool, allow_y : Bool, allow_z : Bool, wake_up : Bool) -> Unit

    RigidBody3D::restrict_translations

    fn RigidBody3D::restrict_translations(self : RigidBody3D, allow_x : Bool, allow_y : Bool, allow_z : Bool, wake_up : Bool) -> Unit

    RigidBody3D::rotation

    RigidBody3D::set_additional_solver_iterations

    fn RigidBody3D::set_additional_solver_iterations(self : RigidBody3D, additional_iterations : Int) -> Unit

    RigidBody3D::set_angvel

    RigidBody3D::set_ccd_active

    fn RigidBody3D::set_ccd_active(self : RigidBody3D, active : Bool) -> Unit

    RigidBody3D::set_dominance_group

    fn RigidBody3D::set_dominance_group(self : RigidBody3D, group : Int) -> Unit

    RigidBody3D::set_enabled_rotations

    fn RigidBody3D::set_enabled_rotations(self : RigidBody3D, allow_x : Bool, allow_y : Bool, allow_z : Bool, wake_up : Bool) -> Unit

    RigidBody3D::set_enabled_translations

    fn RigidBody3D::set_enabled_translations(self : RigidBody3D, allow_x : Bool, allow_y : Bool, allow_z : Bool, wake_up : Bool) -> Unit

    RigidBody3D::set_gravity_scale

    fn RigidBody3D::set_gravity_scale(self : RigidBody3D, scale : Float, wake_up : Bool) -> Unit

    RigidBody3D::set_linvel

    RigidBody3D::set_locked_axes

    fn RigidBody3D::set_locked_axes(self : RigidBody3D, locked_axes : LockedAxes, wake_up : Bool) -> Unit

    RigidBody3D::set_next_kinematic_rotation

    fn RigidBody3D::set_next_kinematic_rotation(self : RigidBody3D, r :
    Quat
    ) -> Unit

    RigidBody3D::set_next_kinematic_translation

    fn RigidBody3D::set_next_kinematic_translation(self : RigidBody3D, t :
    Vec3
    ) -> Unit

    RigidBody3D::set_rotation

    fn RigidBody3D::set_rotation(self : RigidBody3D, r :
    Quat
    ) -> Unit

    RigidBody3D::set_translation

    fn RigidBody3D::set_translation(self : RigidBody3D, t :
    Vec3
    ) -> Unit

    RigidBody3D::set_user_data

    fn RigidBody3D::set_user_data(self : RigidBody3D, data : Int) -> Unit

    RigidBody3D::set_user_data128

    RigidBody3D::soft_ccd_prediction

    fn RigidBody3D::soft_ccd_prediction(self : RigidBody3D) -> Float

    RigidBody3D::translation

    RigidBody3D::update_kinematic_velocities

    fn RigidBody3D::update_kinematic_velocities(self : RigidBody3D, dt : Float) -> Unit

    RigidBody3D::update_sleep

    fn RigidBody3D::update_sleep(self : RigidBody3D, dt : Float, length_unit : Float) -> Unit

    RigidBody3D::user_data

    fn RigidBody3D::user_data(self : RigidBody3D) -> Int

    RigidBody3D::user_data128

    RigidBody3D::wake_up

    fn RigidBody3D::wake_up(self : RigidBody3D) -> Unit

    RigidBody3D::world_com

    RigidBodyActivation

    pub struct RigidBodyActivation {
    normalized_linear_threshold : Float
    angular_threshold : Float
    time_until_sleep : Float
    time_since_can_sleep : Float
    sleeping : Bool
    sleep_root_state : SleepRootState
    }

    RigidBodyActivation::active

    RigidBodyActivation::cannot_sleep

    RigidBodyActivation::default

    RigidBodyActivation::default_angular_threshold

    fn RigidBodyActivation::default_angular_threshold() -> Float

    RigidBodyActivation::default_normalized_linear_threshold

    fn RigidBodyActivation::default_normalized_linear_threshold() -> Float

    RigidBodyActivation::default_time_until_sleep

    fn RigidBodyActivation::default_time_until_sleep() -> Float

    RigidBodyActivation::inactive

    RigidBodyActivation::is_active

    fn RigidBodyActivation::is_active(self : RigidBodyActivation) -> Bool

    RigidBodyActivation::is_eligible_for_sleep

    fn RigidBodyActivation::is_eligible_for_sleep(self : RigidBodyActivation) -> Bool

    RigidBodyActivation::sleep

    RigidBodyActivation::update_energy

    fn RigidBodyActivation::update_energy(self : RigidBodyActivation, body_type : RigidBodyType, length_unit : Float, sq_linvel : Float, sq_angvel : Float, dt : Float) -> RigidBodyActivation

    RigidBodyActivation::wake_up

    fn RigidBodyActivation::wake_up(self : RigidBodyActivation, strong : Bool) -> RigidBodyActivation

    RigidBodyActivation3D

    pub struct RigidBodyActivation3D {
    normalized_linear_threshold : Float
    angular_threshold : Float
    time_until_sleep : Float
    time_since_can_sleep : Float
    sleeping : Bool
    }

    RigidBodyActivation3D::active

    RigidBodyActivation3D::is_sleeping

    fn RigidBodyActivation3D::is_sleeping(self : RigidBodyActivation3D) -> Bool

    RigidBodyActivation3D::update

    fn RigidBodyActivation3D::update(self : RigidBodyActivation3D, dt : Float, length_unit : Float, body_type : RigidBodyType, vels : RigidBodyVelocity3D) -> RigidBodyActivation3D

    RigidBodyActivation3D::wake_up

    RigidBodyAdditionalMassProps

    pub enum RigidBodyAdditionalMassProps {
    Mass(Float)
    MassProps(
    MassProperties
    )
    MassProperties(
    MassProperties
    )
    }

    Rapier-style additional mass-properties.

    RigidBodyAdditionalMassProps::mass

    RigidBodyAdditionalMassProps::mass_properties

    RigidBodyBuilder

    pub struct RigidBodyBuilder {
    position :
    Isometry2

    linvel :
    Vec2

    angvel : Float
    gravity_scale : Float
    linear_damping : Float
    angular_damping : Float
    body_type : RigidBodyType
    lock_translations : Bool
    lock_rotations : Bool
    additional_mass : Float
    additional_local_mprops :
    MassProperties

    additional_solver_iterations : Int
    can_sleep : Bool
    sleeping : Bool
    enabled : Bool
    ccd_enabled : Bool
    soft_ccd_prediction : Float
    dominance_group : Int
    user_data :
    UserData128

    }
    fn RigidBodyBuilder::RigidBodyBuilder(body_type : RigidBodyType) -> RigidBodyBuilder

    RigidBodyBuilder::additional_mass

    fn RigidBodyBuilder::additional_mass(self : RigidBodyBuilder, mass : Float) -> RigidBodyBuilder

    RigidBodyBuilder::additional_mass_properties

    fn RigidBodyBuilder::additional_mass_properties(self : RigidBodyBuilder, props : RigidBodyAdditionalMassProps) -> RigidBodyBuilder

    RigidBodyBuilder::additional_solver_iterations

    fn RigidBodyBuilder::additional_solver_iterations(self : RigidBodyBuilder, additional_iterations : Int) -> RigidBodyBuilder

    RigidBodyBuilder::angular_damping

    fn RigidBodyBuilder::angular_damping(self : RigidBodyBuilder, damping : Float) -> RigidBodyBuilder

    RigidBodyBuilder::angvel

    fn RigidBodyBuilder::angvel(self : RigidBodyBuilder, angvel : Float) -> RigidBodyBuilder

    RigidBodyBuilder::build

    RigidBodyBuilder::can_sleep

    fn RigidBodyBuilder::can_sleep(self : RigidBodyBuilder, can_sleep : Bool) -> RigidBodyBuilder

    RigidBodyBuilder::ccd_enabled

    fn RigidBodyBuilder::ccd_enabled(self : RigidBodyBuilder, enabled : Bool) -> RigidBodyBuilder

    RigidBodyBuilder::dominance_group

    fn RigidBodyBuilder::dominance_group(self : RigidBodyBuilder, group : Int) -> RigidBodyBuilder

    RigidBodyBuilder::dynamic

    RigidBodyBuilder::enabled

    fn RigidBodyBuilder::enabled(self : RigidBodyBuilder, enabled : Bool) -> RigidBodyBuilder

    RigidBodyBuilder::enabled_translations

    fn RigidBodyBuilder::enabled_translations(self : RigidBodyBuilder, allow_x : Bool, allow_y : Bool, allow_z : Bool) -> RigidBodyBuilder

    RigidBodyBuilder::fixed

    RigidBodyBuilder::gravity_scale

    fn RigidBodyBuilder::gravity_scale(self : RigidBodyBuilder, scale : Float) -> RigidBodyBuilder

    RigidBodyBuilder::kinematic_position_based

    fn RigidBodyBuilder::kinematic_position_based() -> RigidBodyBuilder

    RigidBodyBuilder::kinematic_velocity_based

    fn RigidBodyBuilder::kinematic_velocity_based() -> RigidBodyBuilder

    RigidBodyBuilder::linear_damping

    fn RigidBodyBuilder::linear_damping(self : RigidBodyBuilder, damping : Float) -> RigidBodyBuilder

    RigidBodyBuilder::linvel

    RigidBodyBuilder::lock_rotations

    fn RigidBodyBuilder::lock_rotations(self : RigidBodyBuilder) -> RigidBodyBuilder

    RigidBodyBuilder::lock_translations

    fn RigidBodyBuilder::lock_translations(self : RigidBodyBuilder) -> RigidBodyBuilder

    RigidBodyBuilder::new_kinematic_position_based

    fn RigidBodyBuilder::new_kinematic_position_based() -> RigidBodyBuilder

    RigidBodyBuilder::new_kinematic_velocity_based

    fn RigidBodyBuilder::new_kinematic_velocity_based() -> RigidBodyBuilder

    RigidBodyBuilder::new_static

    Rapier leaf-name shims.

    RigidBodyBuilder::restrict_rotations

    fn RigidBodyBuilder::restrict_rotations(self : RigidBodyBuilder, allow_x : Bool, allow_y : Bool, allow_z : Bool) -> RigidBodyBuilder

    RigidBodyBuilder::restrict_translations

    fn RigidBodyBuilder::restrict_translations(self : RigidBodyBuilder, allow_x : Bool, allow_y : Bool, allow_z : Bool) -> RigidBodyBuilder

    RigidBodyBuilder::rotation

    RigidBodyBuilder::sleeping

    fn RigidBodyBuilder::sleeping(self : RigidBodyBuilder, sleeping : Bool) -> RigidBodyBuilder

    RigidBodyBuilder::soft_ccd_prediction

    fn RigidBodyBuilder::soft_ccd_prediction(self : RigidBodyBuilder, prediction_distance : Float) -> RigidBodyBuilder

    RigidBodyBuilder::translation

    RigidBodyBuilder::user_data

    fn RigidBodyBuilder::user_data(self : RigidBodyBuilder, data : Int) -> RigidBodyBuilder

    RigidBodyBuilder::user_data128

    RigidBodyBuilder3D

    #alias(RigidBodyBuilder3Compat)
    #alias(RigidBodyBuilder3)
    pub struct RigidBodyBuilder3D {
    body_type : RigidBodyType
    translation :
    Vec3

    rotation :
    Quat

    linvel :
    Vec3

    angvel :
    Vec3

    locked_translations : Bool
    trans_x_enabled : Bool
    trans_y_enabled : Bool
    trans_z_enabled : Bool
    locked_rotations : Bool
    rot_x_enabled : Bool
    rot_y_enabled : Bool
    rot_z_enabled : Bool
    ccd_enabled : Bool
    soft_ccd_prediction : Float
    gyroscopic_forces_enabled : Bool
    linear_damping : Float
    angular_damping : Float
    gravity_scale : Float
    mass_properties :
    MassProperties3

    additional_solver_iterations : Int
    can_sleep : Bool
    sleeping : Bool
    user_data :
    UserData128

    dominance_group : Int
    }

    RigidBodyBuilder3D::additional_mass

    fn RigidBodyBuilder3D::additional_mass(self : RigidBodyBuilder3D, mass : Float) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::additional_mass_properties

    RigidBodyBuilder3D::additional_solver_iterations

    fn RigidBodyBuilder3D::additional_solver_iterations(self : RigidBodyBuilder3D, additional_iterations : Int) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::angular_damping

    fn RigidBodyBuilder3D::angular_damping(self : RigidBodyBuilder3D, damping : Float) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::build

    RigidBodyBuilder3D::can_sleep

    fn RigidBodyBuilder3D::can_sleep(self : RigidBodyBuilder3D, can_sleep : Bool) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::ccd_enabled

    fn RigidBodyBuilder3D::ccd_enabled(self : RigidBodyBuilder3D, enabled : Bool) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::dominance_group

    fn RigidBodyBuilder3D::dominance_group(self : RigidBodyBuilder3D, group : Int) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::dynamic

    RigidBodyBuilder3D::enabled_rotations

    fn RigidBodyBuilder3D::enabled_rotations(self : RigidBodyBuilder3D, x : Bool, y : Bool, z : Bool) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::enabled_translations

    fn RigidBodyBuilder3D::enabled_translations(self : RigidBodyBuilder3D, x : Bool, y : Bool, z : Bool) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::fixed

    RigidBodyBuilder3D::gravity_scale

    fn RigidBodyBuilder3D::gravity_scale(self : RigidBodyBuilder3D, scale : Float) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::gyroscopic_forces_enabled

    fn RigidBodyBuilder3D::gyroscopic_forces_enabled(self : RigidBodyBuilder3D, enabled : Bool) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::kinematic_position_based

    fn RigidBodyBuilder3D::kinematic_position_based() -> RigidBodyBuilder3D

    RigidBodyBuilder3D::kinematic_velocity_based

    fn RigidBodyBuilder3D::kinematic_velocity_based() -> RigidBodyBuilder3D

    RigidBodyBuilder3D::linear_damping

    fn RigidBodyBuilder3D::linear_damping(self : RigidBodyBuilder3D, damping : Float) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::lock_rotations

    RigidBodyBuilder3D::lock_translations

    RigidBodyBuilder3D::locked_axes

    fn RigidBodyBuilder3D::locked_axes(self : RigidBodyBuilder3D, locked_axes : LockedAxes) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::mass_properties

    RigidBodyBuilder3D::new_kinematic_position_based

    fn RigidBodyBuilder3D::new_kinematic_position_based() -> RigidBodyBuilder3D

    RigidBodyBuilder3D::new_kinematic_velocity_based

    fn RigidBodyBuilder3D::new_kinematic_velocity_based() -> RigidBodyBuilder3D

    RigidBodyBuilder3D::new_static

    RigidBodyBuilder3D::restrict_rotations

    fn RigidBodyBuilder3D::restrict_rotations(self : RigidBodyBuilder3D, x : Bool, y : Bool, z : Bool) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::restrict_translations

    fn RigidBodyBuilder3D::restrict_translations(self : RigidBodyBuilder3D, x : Bool, y : Bool, z : Bool) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::rotation_scaled_axis

    RigidBodyBuilder3D::sleeping

    fn RigidBodyBuilder3D::sleeping(self : RigidBodyBuilder3D, sleeping : Bool) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::soft_ccd_prediction

    fn RigidBodyBuilder3D::soft_ccd_prediction(self : RigidBodyBuilder3D, prediction : Float) -> RigidBodyBuilder3D

    RigidBodyBuilder3D::translation

    RigidBodyBuilder3D::user_data

    fn RigidBodyBuilder3D::user_data(self : RigidBodyBuilder3D, data : Int) -> RigidBodyBuilder3D

    RigidBodyCcd

    pub struct RigidBodyCcd {
    ccd_thickness : Float
    ccd_max_dist : Float
    ccd_active : Bool
    ccd_enabled : Bool
    soft_ccd_prediction : Float
    }

    RigidBodyCcd::default

    fn RigidBodyCcd::default() -> RigidBodyCcd

    RigidBodyCcd::is_moving_fast

    fn RigidBodyCcd::is_moving_fast(self : RigidBodyCcd, dt : Float, vels : RigidBodyVelocity, forces : RigidBodyForces?) -> Bool

    RigidBodyCcd::max_point_velocity

    fn RigidBodyCcd::max_point_velocity(self : RigidBodyCcd, vels : RigidBodyVelocity) -> Float

    RigidBodyChanges

    pub struct RigidBodyChanges {
    bits : Int
    }

    RigidBodyChanges::all

    RigidBodyChanges::colliders

    fn RigidBodyChanges::colliders() -> Int

    RigidBodyChanges::colliders_flag

    fn RigidBodyChanges::colliders_flag() -> Int

    RigidBodyChanges::contains

    fn RigidBodyChanges::contains(self : RigidBodyChanges, flag : Int) -> Bool

    RigidBodyChanges::dominance

    fn RigidBodyChanges::dominance() -> Int

    RigidBodyChanges::dominance_flag

    fn RigidBodyChanges::dominance_flag() -> Int

    RigidBodyChanges::empty

    RigidBodyChanges::insert

    fn RigidBodyChanges::insert(self : RigidBodyChanges, flag : Int) -> RigidBodyChanges

    RigidBodyChanges::remove

    fn RigidBodyChanges::remove(self : RigidBodyChanges, flag : Int) -> RigidBodyChanges

    RigidBodyChanges::sleep

    fn RigidBodyChanges::sleep() -> Int

    RigidBodyChanges::sleep_flag

    fn RigidBodyChanges::sleep_flag() -> Int

    Flag value helpers used by the pub-parity audit mapping.

    RigidBodyColliders

    pub struct RigidBodyColliders {
    colliders : Array[(Int, Int)]
    }
    fn RigidBodyColliders::RigidBodyColliders() -> RigidBodyColliders

    Public-surface parity for Rapier's RigidBodyColliders component.

    We store collider handles as (id, generation) raw parts so this package stays independent from collision::ColliderHandle while preserving full handle identity.

    RigidBodyColliders::attach_collider

    fn RigidBodyColliders::attach_collider(self : RigidBodyColliders, handle : Int) -> RigidBodyColliders

    Backward-compatible helper that attaches a raw collider id with generation 0.

    RigidBodyColliders::attach_collider_raw

    fn RigidBodyColliders::attach_collider_raw(self : RigidBodyColliders, id : Int, generation : Int) -> RigidBodyColliders

    RigidBodyColliders::detach_collider

    fn RigidBodyColliders::detach_collider(self : RigidBodyColliders, handle : Int) -> RigidBodyColliders

    Backward-compatible helper that detaches a raw collider id with generation 0.

    RigidBodyColliders::detach_collider_raw

    fn RigidBodyColliders::detach_collider_raw(self : RigidBodyColliders, id : Int, generation : Int) -> RigidBodyColliders

    RigidBodyColliders::handles

    fn RigidBodyColliders::handles(self : RigidBodyColliders) -> Array[(Int, Int)]

    RigidBodyColliders::len

    fn RigidBodyColliders::len(self : RigidBodyColliders) -> Int

    RigidBodyDamping

    pub struct RigidBodyDamping {
    linear_damping : Float
    angular_damping : Float
    }

    RigidBodyDamping::default

    RigidBodyDominance

    pub struct RigidBodyDominance {
    group : Int
    }
    fn RigidBodyDominance::RigidBodyDominance(group : Int) -> RigidBodyDominance

    RigidBodyDominance::default

    RigidBodyDominance::effective_group

    fn RigidBodyDominance::effective_group(self : RigidBodyDominance, body_type : RigidBodyType) -> Int

    RigidBodyForces

    pub struct RigidBodyForces {
    force :
    Vec2

    torque : Float
    gravity_scale : Float
    user_force :
    Vec2

    user_torque : Float
    }

    RigidBodyForces::apply_force_at_point

    RigidBodyForces::compute_effective_force_and_torque

    RigidBodyForces::default

    RigidBodyForces::integrate

    fn RigidBodyForces::integrate(self : RigidBodyForces, dt : Float, init_vels : RigidBodyVelocity, mprops : RigidBodyMassProps) -> RigidBodyVelocity

    RigidBodyHandle

    pub struct RigidBodyHandle {
    id : Int
    generation : Int
    }

    RigidBodyHandle::equals

    fn RigidBodyHandle::equals(self : RigidBodyHandle, other : RigidBodyHandle) -> Bool

    RigidBodyHandle::from_raw_parts

    fn RigidBodyHandle::from_raw_parts(id : Int, generation : Int) -> RigidBodyHandle

    RigidBodyHandle::into_raw_parts

    fn RigidBodyHandle::into_raw_parts(self : RigidBodyHandle) -> (Int, Int)

    RigidBodyHandle::invalid

    RigidBodyIds

    pub struct RigidBodyIds {
    active_island_id : Int
    active_set_id : Int
    active_set_timestamp : Int
    }

    RigidBodyIds::default

    fn RigidBodyIds::default() -> RigidBodyIds

    RigidBodyMassProps

    pub struct RigidBodyMassProps {
    world_com :
    Vec2

    effective_inv_mass :
    Vec2

    effective_world_inv_inertia : Float
    collider_local_mprops :
    MassProperties

    local_mprops :
    MassProperties

    additional_local_mprops :
    MassProperties

    }

    RigidBodyMassProps::default

    RigidBodyMassProps::effective_angular_inertia

    fn RigidBodyMassProps::effective_angular_inertia(self : RigidBodyMassProps) -> Float

    RigidBodyMassProps::effective_mass

    RigidBodyMassProps::recompute_mass_properties_from_colliders

    fn RigidBodyMassProps::recompute_mass_properties_from_colliders(self : RigidBodyMassProps) -> RigidBodyMassProps

    Placeholder for pub parity with Rapier.

    This port currently recomputes mass-properties from colliders at a higher level.

    RigidBodyMassProps::set_effective_inv_mass

    RigidBodyMassProps::set_effective_world_inv_inertia

    fn RigidBodyMassProps::set_effective_world_inv_inertia(self : RigidBodyMassProps, inv_inertia : Float) -> RigidBodyMassProps

    RigidBodyMassProps::update_world_mass_properties

    RigidBodyPosition

    pub struct RigidBodyPosition {
    position :
    Isometry2

    next_position :
    Isometry2

    }
    fn RigidBodyPosition::RigidBodyPosition(position :
    Isometry2
    , next_position :
    Isometry2
    ) -> RigidBodyPosition

    RigidBodyPosition::integrate_forces_and_velocities

    fn RigidBodyPosition::integrate_forces_and_velocities(self : RigidBodyPosition, dt : Float, forces : RigidBodyForces, vels : RigidBodyVelocity, mprops : RigidBodyMassProps) ->
    Isometry2

    RigidBodyPosition::interpolate_velocity

    fn RigidBodyPosition::interpolate_velocity(self : RigidBodyPosition, inv_dt : Float, local_com :
    Vec2
    ) -> RigidBodyVelocity

    RigidBodyPosition3

    pub struct RigidBodyPosition3 {
    position :
    Isometry3

    next_position :
    Isometry3

    }
    fn RigidBodyPosition3::RigidBodyPosition3(position :
    Isometry3
    , next_position :
    Isometry3
    ) -> RigidBodyPosition3

    RigidBodyPosition3::interpolate_velocity

    fn RigidBodyPosition3::interpolate_velocity(self : RigidBodyPosition3, inv_dt : Float, local_com :
    Vec3
    ) -> RigidBodyVelocity3

    Computes the velocity needed to travel from position to next_position in a time 1.0 / inv_dt.

    RigidBodyPosition3::pose_errors

    Computes the difference between next_position and position, expressed at the center of mass.

    RigidBodyPosition3D

    pub struct RigidBodyPosition3D {
    position :
    Isometry3

    next_position :
    Isometry3

    }
    fn RigidBodyPosition3D::RigidBodyPosition3D(position :
    Isometry3
    , next_position :
    Isometry3
    ) -> RigidBodyPosition3D

    3D rigid-body position state with interpolation support.

    RigidBodyPosition3D::interpolate_velocity

    fn RigidBodyPosition3D::interpolate_velocity(self : RigidBodyPosition3D, inv_dt : Float, local_com :
    Vec3
    ) -> RigidBodyVelocity3D

    RigidBodySet

    pub struct RigidBodySet {
    bodies : Array[RigidBody?]
    generations : Array[Int]
    free_list : Array[Int]
    modified_bodies : Array[RigidBodyHandle]
    pending_collider_position_updates : Array[(Int, Int,
    Isometry2
    )]
    }
    fn RigidBodySet::RigidBodySet() -> RigidBodySet

    RigidBodySet::contains

    fn RigidBodySet::contains(self : RigidBodySet, handle : RigidBodyHandle) -> Bool

    RigidBodySet::deserialize

    fn RigidBodySet::deserialize(data : String) -> RigidBodySet

    RigidBodySet::get

    fn RigidBodySet::get(self : RigidBodySet, handle : RigidBodyHandle) -> RigidBody?

    RigidBodySet::get_mut

    fn RigidBodySet::get_mut(self : RigidBodySet, handle : RigidBodyHandle) -> RigidBody?

    RigidBodySet::get_mut_internal

    fn RigidBodySet::get_mut_internal(self : RigidBodySet, handle : RigidBodyHandle) -> RigidBody?

    RigidBodySet::get_mut_internal_with_modification_tracking

    fn RigidBodySet::get_mut_internal_with_modification_tracking(self : RigidBodySet, handle : RigidBodyHandle) -> RigidBody?

    RigidBodySet::get_pair_mut

    fn RigidBodySet::get_pair_mut(self : RigidBodySet, handle1 : RigidBodyHandle, handle2 : RigidBodyHandle) -> (RigidBody?, RigidBody?)

    RigidBodySet::get_unknown_gen

    fn RigidBodySet::get_unknown_gen(self : RigidBodySet, id : Int) -> (RigidBody, RigidBodyHandle)?

    RigidBodySet::get_unknown_gen_mut

    fn RigidBodySet::get_unknown_gen_mut(self : RigidBodySet, id : Int) -> (RigidBody, RigidBodyHandle)?

    RigidBodySet::insert

    fn RigidBodySet::insert(self : RigidBodySet, body : RigidBody) -> RigidBodyHandle

    RigidBodySet::is_empty

    fn RigidBodySet::is_empty(self : RigidBodySet) -> Bool

    RigidBodySet::iter

    RigidBodySet::iter_mut

    RigidBodySet::len

    fn RigidBodySet::len(self : RigidBodySet) -> Int

    RigidBodySet::propagate_modified_body_positions_to_colliders

    fn RigidBodySet::propagate_modified_body_positions_to_colliders(self : RigidBodySet) -> Unit

    Queue collider position propagation commands for all modified bodies whose position changed.

    Because dynamics cannot depend on collision, this method records propagation commands that can later be consumed by collision through RigidBodySet::take_pending_collider_position_updates.

    RigidBodySet::remove

    fn RigidBodySet::remove(self : RigidBodySet, handle : RigidBodyHandle, islands : IslandManager, colliders : Unit, impulse_joints : ImpulseJointSet, multibody_joints : MultibodyJointSet, remove_attached_colliders : Bool) -> RigidBody?

    RigidBodySet::serialize

    fn RigidBodySet::serialize(self : RigidBodySet) -> String

    RigidBodySet::take_modified

    fn RigidBodySet::take_modified(self : RigidBodySet) -> Array[RigidBodyHandle]

    RigidBodySet::take_pending_collider_position_updates

    fn RigidBodySet::take_pending_collider_position_updates(self : RigidBodySet) -> Array[(Int, Int,
    Isometry2
    )]

    RigidBodySet::with_capacity

    fn RigidBodySet::with_capacity(capacity : Int) -> RigidBodySet

    RigidBodySet3

    pub struct RigidBodySet3 {
    inner : RigidBodySet
    }
    fn RigidBodySet3::RigidBodySet3() -> RigidBodySet3

    3D-flavored rigid-body set.

    RigidBodySet3::as_2d

    RigidBodySet3::get

    RigidBodySet3::get_mut

    fn RigidBodySet3::get_mut(self : RigidBodySet3, handle : RigidBodyHandle) -> RigidBody?

    RigidBodySet3::insert

    RigidBodySet3::iter

    RigidBodySet3::iter_mut

    RigidBodySet3::len

    fn RigidBodySet3::len(self : RigidBodySet3) -> Int

    RigidBodySet3::remove

    fn RigidBodySet3::remove(self : RigidBodySet3, handle : RigidBodyHandle, islands : IslandManager3, colliders : Unit, impulse_joints : ImpulseJointSet3, multibody_joints : MultibodyJointSet3, wake_up : Bool) -> RigidBody?

    RigidBodySet3::rotation

    RigidBodySet3::take_modified

    fn RigidBodySet3::take_modified(self : RigidBodySet3) -> Array[RigidBodyHandle]

    RigidBodySet3::translation

    RigidBodySet3D

    pub struct RigidBodySet3D {
    bodies : Array[RigidBody3D?]
    generations : Array[Int]
    free_list : Array[Int]
    }
    fn RigidBodySet3D::RigidBodySet3D() -> RigidBodySet3D

    RigidBodySet3D::advance_positions_all

    fn RigidBodySet3D::advance_positions_all(self : RigidBodySet3D, dt : Float) -> Unit

    RigidBodySet3D::all_handles

    RigidBodySet3D::apply_damping_all

    fn RigidBodySet3D::apply_damping_all(self : RigidBodySet3D, dt : Float) -> Unit

    RigidBodySet3D::apply_gravity_all

    fn RigidBodySet3D::apply_gravity_all(self : RigidBodySet3D, gravity :
    Vec3
    , dt : Float) -> Unit

    RigidBodySet3D::apply_gyroscopic_forces_all

    fn RigidBodySet3D::apply_gyroscopic_forces_all(self : RigidBodySet3D, dt : Float) -> Unit

    RigidBodySet3D::get

    RigidBodySet3D::get_mut

    fn RigidBodySet3D::get_mut(self : RigidBodySet3D, handle : RigidBodyHandle) -> RigidBody3D?

    RigidBodySet3D::has_ccd_enabled

    fn RigidBodySet3D::has_ccd_enabled(self : RigidBodySet3D) -> Bool

    RigidBodySet3D::insert

    RigidBodySet3D::integrate_all

    fn RigidBodySet3D::integrate_all(self : RigidBodySet3D, gravity :
    Vec3
    , dt : Float) -> Unit

    RigidBodySet3D::len

    fn RigidBodySet3D::len(self : RigidBodySet3D) -> Int

    RigidBodySet3D::max_linvel_len

    fn RigidBodySet3D::max_linvel_len(self : RigidBodySet3D) -> Float

    RigidBodySet3D::remove

    fn RigidBodySet3D::remove(self : RigidBodySet3D, handle : RigidBodyHandle) -> RigidBody3D?

    RigidBodySet3D::update_kinematic_velocities_all

    fn RigidBodySet3D::update_kinematic_velocities_all(self : RigidBodySet3D, dt : Float) -> Unit

    RigidBodySet3D::update_sleep_all

    fn RigidBodySet3D::update_sleep_all(self : RigidBodySet3D, dt : Float, length_unit : Float) -> Unit

    RigidBodyType

    #alias(BodyStatus)
    pub(all) enum RigidBodyType {
    Dynamic
    Fixed
    KinematicPositionBased
    KinematicVelocityBased
    }

    RigidBodyType::is_dynamic

    fn RigidBodyType::is_dynamic(self : RigidBodyType) -> Bool

    RigidBodyType::is_dynamic_or_kinematic

    fn RigidBodyType::is_dynamic_or_kinematic(self : RigidBodyType) -> Bool

    RigidBodyType::is_fixed

    fn RigidBodyType::is_fixed(self : RigidBodyType) -> Bool

    RigidBodyType::is_kinematic

    fn RigidBodyType::is_kinematic(self : RigidBodyType) -> Bool

    RigidBodyVelocity

    pub struct RigidBodyVelocity {
    linvel :
    Vec2

    angvel : Float
    }
    fn RigidBodyVelocity::RigidBodyVelocity(linvel :
    Vec2
    , angvel : Float) -> RigidBodyVelocity

    RigidBodyVelocity::angvel

    fn RigidBodyVelocity::angvel(self : RigidBodyVelocity) -> Float

    RigidBodyVelocity::apply_damping

    fn RigidBodyVelocity::apply_damping(self : RigidBodyVelocity, dt : Float, damping : RigidBodyDamping) -> RigidBodyVelocity

    RigidBodyVelocity::as_mut_slice

    fn RigidBodyVelocity::as_mut_slice(self : RigidBodyVelocity) -> Array[Float]

    RigidBodyVelocity::as_slice

    fn RigidBodyVelocity::as_slice(self : RigidBodyVelocity) -> Array[Float]

    RigidBodyVelocity::as_vector

    RigidBodyVelocity::as_vector_mut

    RigidBodyVelocity::from_slice

    fn RigidBodyVelocity::from_slice(slice : Array[Float]) -> RigidBodyVelocity

    RigidBodyVelocity::is_zero

    fn RigidBodyVelocity::is_zero(self : RigidBodyVelocity) -> Bool

    RigidBodyVelocity::kinetic_energy

    fn RigidBodyVelocity::kinetic_energy(self : RigidBodyVelocity, rb_mprops : RigidBodyMassProps) -> Float

    RigidBodyVelocity::pseudo_kinetic_energy

    fn RigidBodyVelocity::pseudo_kinetic_energy(self : RigidBodyVelocity) -> Float

    RigidBodyVelocity::transformed

    RigidBodyVelocity::zero

    RigidBodyVelocity3

    pub struct RigidBodyVelocity3 {
    linvel :
    Vec3

    angvel :
    Vec3

    }

    RigidBodyVelocity3D

    pub struct RigidBodyVelocity3D {
    linvel :
    Vec3

    angvel :
    Vec3

    }

    3D rigid-body velocity: linear and angular.

    RigidBodyVelocity3D::apply_damping

    fn RigidBodyVelocity3D::apply_damping(self : RigidBodyVelocity3D, dt : Float, linear_damping : Float, angular_damping : Float) -> RigidBodyVelocity3D

    RigidBodyVelocity3D::zero

    RopeJoint

    pub struct RopeJoint {
    max_length : Float
    local_anchor1 :
    Vec2

    local_anchor2 :
    Vec2

    local_anchor1_3 :
    Vec3

    local_anchor2_3 :
    Vec3

    is_spatial : Bool
    softness : SpringCoefficients
    motor : JointMotor
    motor_enabled : Bool
    }
    fn RopeJoint::RopeJoint(max_length : Float) -> RopeJoint

    RopeJoint::max_distance

    fn RopeJoint::max_distance(self : RopeJoint) -> Float

    RopeJoint::max_length

    fn RopeJoint::max_length(self : RopeJoint) -> Float

    RopeJoint::motor

    fn RopeJoint::motor(self : RopeJoint) -> JointMotor?

    RopeJoint::set_max_distance

    fn RopeJoint::set_max_distance(self : RopeJoint, max_distance : Float) -> RopeJoint

    RopeJoint::softness

    fn RopeJoint::softness(self : RopeJoint) -> SpringCoefficients

    RopeJoint3DReal

    pub struct RopeJoint3DReal {
    body1 : RigidBodyHandle
    body2 : RigidBodyHandle
    max_length : Float
    }

    RopeJointBuilder

    pub struct RopeJointBuilder {
    max_length : Float
    local_anchor1 :
    Vec2

    local_anchor2 :
    Vec2

    local_anchor1_3 :
    Vec3

    local_anchor2_3 :
    Vec3

    is_spatial : Bool
    softness : SpringCoefficients
    motor : JointMotor
    motor_enabled : Bool
    }
    fn RopeJointBuilder::RopeJointBuilder(max_length : Float) -> RopeJointBuilder

    RopeJointBuilder::build

    RopeJointBuilder::local_anchor1

    RopeJointBuilder::local_anchor2

    RopeJointBuilder::max_distance

    fn RopeJointBuilder::max_distance(self : RopeJointBuilder) -> Float

    RopeJointBuilder::motor_max_force

    fn RopeJointBuilder::motor_max_force(self : RopeJointBuilder, max_force : Float) -> RopeJointBuilder

    RopeJointBuilder::motor_model

    fn RopeJointBuilder::motor_model(self : RopeJointBuilder, model : MotorModel) -> RopeJointBuilder

    RopeJointBuilder::motor_position

    fn RopeJointBuilder::motor_position(self : RopeJointBuilder, target_pos : Float, stiffness : Float, damping : Float) -> RopeJointBuilder

    RopeJointBuilder::motor_velocity

    fn RopeJointBuilder::motor_velocity(self : RopeJointBuilder, target_vel : Float, factor : Float) -> RopeJointBuilder

    RopeJointBuilder::softness

    RopeJointBuilder3

    pub struct RopeJointBuilder3 {
    inner : RopeJointBuilder
    local_anchor1_3 :
    Vec3

    local_anchor2_3 :
    Vec3

    }
    fn RopeJointBuilder3::RopeJointBuilder3(max_length : Float) -> RopeJointBuilder3

    3D-flavored rope joint builder used by the rapier3d parity tests.

    NOTE: This maps to the existing 2D rope joint builder by dropping the z coordinate.

    RopeJointBuilder3::build

    RopeJointBuilder3::local_anchor1

    RopeJointBuilder3::local_anchor2

    RopeJointBuilder3::max_distance

    fn RopeJointBuilder3::max_distance(self : RopeJointBuilder3, max_distance : Float) -> RopeJointBuilder3

    RopeJointBuilder3::motor_max_force

    fn RopeJointBuilder3::motor_max_force(self : RopeJointBuilder3, max_force : Float) -> RopeJointBuilder3

    RopeJointBuilder3::motor_model

    RopeJointBuilder3::motor_position

    fn RopeJointBuilder3::motor_position(self : RopeJointBuilder3, target_pos : Float, stiffness : Float, damping : Float) -> RopeJointBuilder3

    RopeJointBuilder3::motor_velocity

    fn RopeJointBuilder3::motor_velocity(self : RopeJointBuilder3, target_vel : Float, factor : Float) -> RopeJointBuilder3

    RopeJointBuilder3::softness

    RopeJointSet3DReal

    pub struct RopeJointSet3DReal {
    joints : Array[RopeJoint3DReal]
    }
    fn RopeJointSet3DReal::RopeJointSet3DReal() -> RopeJointSet3DReal

    RopeJointSet3DReal::insert

    fn RopeJointSet3DReal::insert(self : RopeJointSet3DReal, body1 : RigidBodyHandle, body2 : RigidBodyHandle, max_length : Float) -> Unit

    RopeJointSet3DReal::interaction_pairs

    RopeJointSet3DReal::solve

    fn RopeJointSet3DReal::solve(self : RopeJointSet3DReal, bodies : RigidBodySet3D, dt : Float) -> Unit

    RopeJointSet3DReal::solve_with_island_stamp

    fn RopeJointSet3DReal::solve_with_island_stamp(self : RopeJointSet3DReal, bodies : RigidBodySet3D, dt : Float, island_stamps : Array[Int]?, island_stamp : Int) -> Unit

    RowDVector

    type RowDVector

    RowDVector::equals

    fn RowDVector::equals(self : RowDVector, other : RowDVector) -> Bool

    RowDVector::from_array

    fn RowDVector::from_array(values : Array[Float]) -> RowDVector

    RowDVector::from_fn

    fn RowDVector::from_fn(size : Int, init : (Int) -> Float) -> RowDVector

    RowDVector::len

    fn RowDVector::len(self : RowDVector) -> Int

    RowDVector::scale

    fn RowDVector::scale(self : RowDVector, value : Float) -> RowDVector

    SleepCandidate

    type SleepCandidate

    SleepRootState

    type SleepRootState

    SphericalJoint3DReal

    pub struct SphericalJoint3DReal {
    body1 : RigidBodyHandle
    body2 : RigidBodyHandle
    local_anchor1 :
    Vec3

    local_anchor2 :
    Vec3

    }

    Joint constraints for the real dim3 backend.

    This is intentionally much smaller than Rapier's impulse-based joint solver and is used to migrate 3D scenes to the PhysicsPipeline3DReal backend incrementally.

    SphericalJoint3DRealBuilder

    pub struct SphericalJoint3DRealBuilder {
    inner : GenericJoint3DRealBuilder
    }
    fn SphericalJoint3DRealBuilder::SphericalJoint3DRealBuilder() -> SphericalJoint3DRealBuilder

    SphericalJoint3DRealBuilder::build

    SphericalJoint3DRealBuilder::limits

    SphericalJoint3DRealBuilder::motor_max_force

    SphericalJoint3DRealBuilder::motor_position

    fn SphericalJoint3DRealBuilder::motor_position(self : SphericalJoint3DRealBuilder, axis : JointAxis3DReal, target_pos : Float, stiffness : Float, damping : Float) -> SphericalJoint3DRealBuilder

    SphericalJoint3DRealBuilder::motor_velocity

    fn SphericalJoint3DRealBuilder::motor_velocity(self : SphericalJoint3DRealBuilder, axis : JointAxis3DReal, target_vel : Float, damping : Float) -> SphericalJoint3DRealBuilder

    SphericalMotor3DReal

    pub struct SphericalMotor3DReal {
    body1 : RigidBodyHandle
    body2 : RigidBodyHandle
    target_rel_rotation :
    Quat

    stiffness : Float
    damping : Float
    }

    SpringCoefficients

    pub struct SpringCoefficients {
    natural_frequency : Float
    damping_ratio : Float
    }
    fn SpringCoefficients::SpringCoefficients(natural_frequency : Float, damping_ratio : Float) -> SpringCoefficients

    SpringCoefficients::angular_frequency

    fn SpringCoefficients::angular_frequency(self : SpringCoefficients) -> Float

    SpringCoefficients::cfm_coeff

    fn SpringCoefficients::cfm_coeff(self : SpringCoefficients, dt : Float) -> Float

    SpringCoefficients::cfm_factor

    fn SpringCoefficients::cfm_factor(self : SpringCoefficients, dt : Float) -> Float

    SpringCoefficients::contact_defaults

    fn SpringCoefficients::contact_defaults() -> SpringCoefficients

    SpringCoefficients::erp

    fn SpringCoefficients::erp(self : SpringCoefficients, dt : Float) -> Float

    SpringCoefficients::erp_inv_dt

    fn SpringCoefficients::erp_inv_dt(self : SpringCoefficients, dt : Float) -> Float

    SpringCoefficients::joint_defaults

    fn SpringCoefficients::joint_defaults() -> SpringCoefficients

    SpringJoint

    pub struct SpringJoint {
    data : GenericJoint
    }
    fn SpringJoint::SpringJoint(rest_length : Float, stiffness : Float, damping : Float) -> SpringJoint

    A spring joint that pulls/pushes two bodies toward a target distance.

    This is a thin wrapper around GenericJoint, matching Rapier's public surface (capability-wise) for default features.

    SpringJoint::contacts_enabled

    fn SpringJoint::contacts_enabled(self : SpringJoint) -> Bool

    SpringJoint::data

    SpringJoint::local_anchor1

    SpringJoint::local_anchor2

    SpringJoint::set_contacts_enabled

    fn SpringJoint::set_contacts_enabled(self : SpringJoint, enabled : Bool) -> SpringJoint

    SpringJoint::set_local_anchor1

    fn SpringJoint::set_local_anchor1(self : SpringJoint, anchor :
    Vec2
    ) -> SpringJoint

    SpringJoint::set_local_anchor2

    fn SpringJoint::set_local_anchor2(self : SpringJoint, anchor :
    Vec2
    ) -> SpringJoint

    SpringJoint::set_spring_model

    fn SpringJoint::set_spring_model(self : SpringJoint, model : MotorModel) -> SpringJoint

    SpringJoint3DReal

    pub struct SpringJoint3DReal {
    body1 : RigidBodyHandle
    body2 : RigidBodyHandle
    local_anchor1 :
    Vec3

    local_anchor2 :
    Vec3

    rest_length : Float
    stiffness : Float
    damping : Float
    }

    SpringJointBuilder

    pub struct SpringJointBuilder {
    inner : SpringJoint
    }
    fn SpringJointBuilder::SpringJointBuilder(rest_length : Float, stiffness : Float, damping : Float) -> SpringJointBuilder

    SpringJointBuilder::build

    SpringJointBuilder::contacts_enabled

    fn SpringJointBuilder::contacts_enabled(self : SpringJointBuilder, enabled : Bool) -> SpringJointBuilder

    SpringJointBuilder::local_anchor1

    SpringJointBuilder::local_anchor2

    SpringJointBuilder::spring_model

    WritebackId

    pub(all) enum WritebackId {
    Dof(Int)
    Limit(Int)
    Motor(Int)
    }

    Identifies the kind of impulse to write back for a joint constraint.

    unit_joint_limit_constraint

    fn unit_joint_limit_constraint(params : IntegrationParameters, multibody : Multibody, link : MultibodyLink, limits : (Float, Float), curr_pos : Float, dof_id : Int, j_id : Int, jacobians : DVector, constraints : Array[GenericJointConstraint], insert_at : Int) -> Unit

    Initialize and generate velocity constraints applicable to a unit (1-DOF) joint limit.

    unit_joint_motor_constraint

    fn unit_joint_motor_constraint(params : IntegrationParameters, multibody : Multibody, link : MultibodyLink, motor : JointMotor, curr_pos : Float, limits : (Float, Float)?, dof_id : Int, j_id : Int, jacobians : DVector, constraints : Array[GenericJointConstraint], insert_at : Int) -> Unit

    Initialize and generate velocity constraints applicable to a unit (1-DOF) joint motor.