Sign in

    Milky2018/moon_rapier/collision does not have a README file

    ColliderGraphIndex

    type ColliderGraphIndex = Int

    Index types used by Rapier's interaction graphs.

    ModifiedColliders

    type ModifiedColliders = Array[ColliderHandle]

    An Array is a collection of values that supports random access and can grow in size.

    RigidBodyGraphIndex

    type RigidBodyGraphIndex = Int

    TemporaryInteractionIndex

    type TemporaryInteractionIndex = Int

    ActiveCollisionTypes

    pub struct ActiveCollisionTypes {
    value : Int
    }

    ActiveCollisionTypes::all

    ActiveCollisionTypes::default

    ActiveCollisionTypes::equals

    ActiveEvents

    pub struct ActiveEvents {
    bits : Int
    }

    ActiveEvents::collision_events

    fn ActiveEvents::collision_events() -> ActiveEvents

    ActiveEvents::complement

    fn ActiveEvents::complement(self : ActiveEvents) -> ActiveEvents

    ActiveEvents::contact_force_events

    fn ActiveEvents::contact_force_events() -> ActiveEvents

    ActiveEvents::contains

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

    ActiveEvents::difference

    fn ActiveEvents::difference(self : ActiveEvents, other : ActiveEvents) -> ActiveEvents

    ActiveEvents::empty

    fn ActiveEvents::empty() -> ActiveEvents

    ActiveEvents::from_bits

    fn ActiveEvents::from_bits(bits : Int) -> ActiveEvents?

    ActiveEvents::from_bits_retain

    fn ActiveEvents::from_bits_retain(bits : Int) -> ActiveEvents

    ActiveEvents::from_bits_truncate

    fn ActiveEvents::from_bits_truncate(bits : Int) -> ActiveEvents

    ActiveEvents::from_name

    fn ActiveEvents::from_name(name : String) -> ActiveEvents?

    ActiveEvents::insert

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

    ActiveEvents::intersection_events

    fn ActiveEvents::intersection_events() -> ActiveEvents

    ActiveEvents::is_all

    fn ActiveEvents::is_all(self : ActiveEvents) -> Bool

    ActiveEvents::iter_names

    fn ActiveEvents::iter_names(self : ActiveEvents) -> Array[String]

    ActiveEvents::symmetric_difference

    fn ActiveEvents::symmetric_difference(self : ActiveEvents, other : ActiveEvents) -> ActiveEvents

    ActiveEvents::toggle

    fn ActiveEvents::toggle(self : ActiveEvents, other : ActiveEvents) -> ActiveEvents

    ActiveEvents::union

    fn ActiveEvents::union(self : ActiveEvents, other : ActiveEvents) -> ActiveEvents

    ActiveHooks

    pub struct ActiveHooks {
    value : Int
    }

    ActiveHooks::all

    ActiveHooks::complement

    fn ActiveHooks::complement(self : ActiveHooks) -> ActiveHooks

    ActiveHooks::contains

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

    ActiveHooks::difference

    fn ActiveHooks::difference(self : ActiveHooks, other : ActiveHooks) -> ActiveHooks

    ActiveHooks::empty

    fn ActiveHooks::empty() -> ActiveHooks

    ActiveHooks::filter_contact_pairs

    fn ActiveHooks::filter_contact_pairs() -> ActiveHooks

    ActiveHooks::filter_intersection_pair

    fn ActiveHooks::filter_intersection_pair() -> ActiveHooks

    ActiveHooks::from_bits

    fn ActiveHooks::from_bits(bits : Int) -> ActiveHooks?

    ActiveHooks::from_bits_retain

    fn ActiveHooks::from_bits_retain(bits : Int) -> ActiveHooks

    ActiveHooks::from_bits_truncate

    fn ActiveHooks::from_bits_truncate(bits : Int) -> ActiveHooks

    ActiveHooks::from_name

    fn ActiveHooks::from_name(name : String) -> ActiveHooks?

    ActiveHooks::insert

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

    ActiveHooks::is_all

    fn ActiveHooks::is_all(self : ActiveHooks) -> Bool

    ActiveHooks::iter_names

    fn ActiveHooks::iter_names(self : ActiveHooks) -> Array[String]

    ActiveHooks::modify_solver_contacts

    fn ActiveHooks::modify_solver_contacts() -> ActiveHooks

    ActiveHooks::symmetric_difference

    fn ActiveHooks::symmetric_difference(self : ActiveHooks, other : ActiveHooks) -> ActiveHooks

    ActiveHooks::toggle

    fn ActiveHooks::toggle(self : ActiveHooks, other : ActiveHooks) -> ActiveHooks

    ActiveHooks::union

    fn ActiveHooks::union(self : ActiveHooks, other : ActiveHooks) -> ActiveHooks

    BroadPhase3D

    pub struct BroadPhase3D {
    pairs : Array[(ColliderHandle3D, ColliderHandle3D)]
    prev_pairs : Array[(ColliderHandle3D, ColliderHandle3D)]
    events : Array[BroadPhasePairEvent3D]
    }
    fn BroadPhase3D::BroadPhase3D() -> BroadPhase3D

    BroadPhase3D::pairs

    BroadPhase3D::take_events

    BroadPhase3D::update

    fn BroadPhase3D::update(self : BroadPhase3D, prediction_distance : Float, colliders : ColliderSet3D) -> Unit

    BroadPhaseBvh

    #alias(DefaultBroadPhase)
    pub struct BroadPhaseBvh {
    optimization_strategy : BvhOptimizationStrategy
    pairs : Array[(ColliderHandle, ColliderHandle)]
    events : Array[BroadPhasePairEvent]
    override_aabbs : Array[(ColliderHandle,
    Aabb
    )]
    }
    fn BroadPhaseBvh::BroadPhaseBvh() -> BroadPhaseBvh

    BroadPhaseBvh::as_query_pipeline

    BroadPhaseBvh::as_query_pipeline_mut

    BroadPhaseBvh::pairs

    BroadPhaseBvh::set_aabb

    BroadPhaseBvh::take_events

    BroadPhaseBvh::update

    fn BroadPhaseBvh::update(self : BroadPhaseBvh, prediction_distance : Float, bodies :
    RigidBodySet
    , colliders : ColliderSet) -> Unit

    BroadPhaseBvh::update3

    fn BroadPhaseBvh::update3(self : BroadPhaseBvh, prediction_distance : Float, bodies :
    RigidBodySet3
    , colliders : ColliderSet3) -> Unit

    BroadPhaseBvh::with_optimization_strategy

    fn BroadPhaseBvh::with_optimization_strategy(optimization_strategy : BvhOptimizationStrategy) -> BroadPhaseBvh

    BroadPhasePairEvent

    pub(all) enum BroadPhasePairEvent {
    AddPair(ColliderPair)
    DeletePair(ColliderPair)
    }

    BroadPhasePairEvent3D

    pub(all) enum BroadPhasePairEvent3D {
    AddPair(ColliderPair3D)
    DeletePair(ColliderPair3D)
    }

    Bvh

    pub struct Bvh {
    aabbs : Array[
    Aabb
    ?]
    }
    fn Bvh::Bvh(aabbs : Array[
    Aabb
    ?]) -> Bvh

    Bvh::aabbs

    BvhOptimizationStrategy

    pub(all) enum BvhOptimizationStrategy {
    SubtreeOptimizer
    None
    }

    BvhOptimizationStrategy::none

    BvhOptimizationStrategy::subtree_optimizer

    Collider

    pub struct Collider {
    shape : Shape
    local_translation :
    Vec2

    local_rotation : Float
    world_translation :
    Vec2

    world_rotation : Float
    active_collision_types : ActiveCollisionTypes
    sensor : Bool
    active_events : ActiveEvents
    active_hooks : ActiveHooks
    collision_groups :
    InteractionGroups

    solver_groups :
    InteractionGroups

    density : Float
    mass_properties_override :
    MassProperties
    ?
    friction : Float
    friction_combine_rule :
    CoefficientCombineRule

    restitution : Float
    restitution_combine_rule :
    CoefficientCombineRule

    contact_skin : Float
    contact_force_event_threshold : Float
    user_data :
    UserData128

    parent :
    RigidBodyHandle
    ?
    enabled : ColliderEnabled
    changes : ColliderChanges
    }

    Collider::active_collision_types

    fn Collider::active_collision_types(self : Collider) -> ActiveCollisionTypes

    Collider::active_events

    fn Collider::active_events(self : Collider) -> ActiveEvents

    Collider::active_hooks

    fn Collider::active_hooks(self : Collider) -> ActiveHooks

    Collider::collision_groups

    Collider::compute_swept_aabb

    Collider::contact_force_event_threshold

    fn Collider::contact_force_event_threshold(self : Collider) -> Float

    Collider::contact_skin

    fn Collider::contact_skin(self : Collider) -> Float

    Collider::copy_from

    fn Collider::copy_from(self : Collider, other : Collider) -> Unit

    Collider::density

    fn Collider::density(self : Collider) -> Float

    Collider::friction

    fn Collider::friction(self : Collider) -> Float

    Collider::friction_combine_rule

    Collider::is_enabled

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

    Collider::is_sensor

    fn Collider::is_sensor(self : Collider) -> Bool

    Collider::mass_properties

    Collider::material

    fn Collider::material(self : Collider) -> ColliderMaterial

    Collider::position_wrt_parent

    Collider::restitution

    fn Collider::restitution(self : Collider) -> Float

    Collider::restitution_combine_rule

    Collider::rotation

    fn Collider::rotation(self : Collider) -> Float

    Collider::set_active_collision_types

    fn Collider::set_active_collision_types(self : Collider, types : ActiveCollisionTypes) -> Collider

    Collider::set_active_events

    fn Collider::set_active_events(self : Collider, events : ActiveEvents) -> Collider

    Collider::set_active_hooks

    fn Collider::set_active_hooks(self : Collider, hooks : ActiveHooks) -> Collider

    Collider::set_collision_groups

    Collider::set_contact_force_event_threshold

    fn Collider::set_contact_force_event_threshold(self : Collider, threshold : Float) -> Collider

    Collider::set_contact_skin

    fn Collider::set_contact_skin(self : Collider, skin : Float) -> Collider

    Collider::set_density

    fn Collider::set_density(self : Collider, density : Float) -> Collider

    Collider::set_enabled

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

    Collider::set_friction

    fn Collider::set_friction(self : Collider, friction : Float) -> Collider

    Collider::set_friction_combine_rule

    Collider::set_mass_properties

    fn Collider::set_mass_properties(self : Collider, mass_properties :
    MassProperties
    ) -> Collider

    Collider::set_position

    Collider::set_position_wrt_parent

    fn Collider::set_position_wrt_parent(self : Collider, pos_wrt_parent :
    Isometry2
    ) -> Collider

    Collider::set_restitution

    fn Collider::set_restitution(self : Collider, restitution : Float) -> Collider

    Collider::set_restitution_combine_rule

    Collider::set_rotation

    fn Collider::set_rotation(self : Collider, rotation : Float) -> Collider

    Collider::set_rotation_wrt_parent

    fn Collider::set_rotation_wrt_parent(self : Collider, rotation : Float) -> Collider

    Collider::set_sensor

    fn Collider::set_sensor(self : Collider, enabled : Bool) -> Collider

    Collider::set_shape

    fn Collider::set_shape(self : Collider, shape : Shape) -> Collider

    Collider::set_solver_groups

    Collider::set_translation

    fn Collider::set_translation(self : Collider, translation :
    Vec2
    ) -> Collider

    Collider::set_translation_wrt_parent

    fn Collider::set_translation_wrt_parent(self : Collider, translation :
    Vec2
    ) -> Collider

    Collider::set_user_data

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

    Collider::set_user_data128

    Collider::shape

    fn Collider::shape(self : Collider) -> Shape

    Collider::shape_mut

    fn Collider::shape_mut(self : Collider) -> Shape

    Collider::shared_shape

    fn Collider::shared_shape(self : Collider) -> SharedShape

    Collider::translation

    Collider::translation3

    Collider::user_data

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

    Collider::user_data128

    Collider::volume

    fn Collider::volume(self : Collider) -> Float

    Collider3D

    pub struct Collider3D {
    position :
    Isometry3

    local_position :
    Isometry3

    parent :
    RigidBodyHandle
    ?
    shape : Shape3D
    voxel_tri_map : Array[(Int, Int, Int)]?
    enabled : Bool
    sensor : Bool
    surface_velocity :
    Vec3

    one_way_offset : Float?
    one_way_direction : Int
    active_collision_types : ActiveCollisionTypes
    active_hooks : ActiveHooks
    active_events : ActiveEvents
    contact_force_event_threshold : Float
    user_data :
    UserData128

    collision_groups :
    InteractionGroups

    solver_groups :
    InteractionGroups

    contact_skin : Float
    friction : Float
    friction_combine_rule :
    CoefficientCombineRule

    restitution : Float
    restitution_combine_rule :
    CoefficientCombineRule

    }

    Collider3D::active_collision_types

    fn Collider3D::active_collision_types(self : Collider3D) -> ActiveCollisionTypes

    Collider3D::active_events

    fn Collider3D::active_events(self : Collider3D) -> ActiveEvents

    Collider3D::active_hooks

    fn Collider3D::active_hooks(self : Collider3D) -> ActiveHooks

    Collider3D::clear_one_way

    fn Collider3D::clear_one_way(self : Collider3D) -> Unit

    Collider3D::collision_groups

    Collider3D::compute_aabb

    Collider3D::compute_collision_aabb

    fn Collider3D::compute_collision_aabb(self : Collider3D, prediction_distance : Float) ->
    Aabb3

    Collider3D::contact_force_event_threshold

    fn Collider3D::contact_force_event_threshold(self : Collider3D) -> Float

    Collider3D::contact_skin

    fn Collider3D::contact_skin(self : Collider3D) -> Float

    Collider3D::enabled

    fn Collider3D::enabled(self : Collider3D) -> Bool

    Collider3D::friction

    fn Collider3D::friction(self : Collider3D) -> Float

    Collider3D::friction_combine_rule

    Collider3D::is_sensor

    fn Collider3D::is_sensor(self : Collider3D) -> Bool

    Collider3D::local_position

    Collider3D::one_way

    fn Collider3D::one_way(self : Collider3D) -> (Float, Int)?

    Collider3D::restitution

    fn Collider3D::restitution(self : Collider3D) -> Float

    Collider3D::restitution_combine_rule

    Collider3D::set_active_collision_types

    fn Collider3D::set_active_collision_types(self : Collider3D, types : ActiveCollisionTypes) -> Collider3D

    Collider3D::set_active_events

    fn Collider3D::set_active_events(self : Collider3D, active_events : ActiveEvents) -> Collider3D

    Collider3D::set_active_hooks

    fn Collider3D::set_active_hooks(self : Collider3D, hooks : ActiveHooks) -> Collider3D

    Collider3D::set_collision_groups

    Collider3D::set_contact_force_event_threshold

    fn Collider3D::set_contact_force_event_threshold(self : Collider3D, threshold : Float) -> Collider3D

    Collider3D::set_contact_skin

    fn Collider3D::set_contact_skin(self : Collider3D, skin : Float) -> Collider3D

    Collider3D::set_enabled

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

    Collider3D::set_friction

    fn Collider3D::set_friction(self : Collider3D, friction : Float) -> Collider3D

    Collider3D::set_friction_combine_rule

    Collider3D::set_local_position

    fn Collider3D::set_local_position(self : Collider3D, pos :
    Isometry3
    ) -> Unit

    Collider3D::set_one_way_above

    fn Collider3D::set_one_way_above(self : Collider3D, offset : Float) -> Unit

    Collider3D::set_one_way_below

    fn Collider3D::set_one_way_below(self : Collider3D, offset : Float) -> Unit

    Collider3D::set_parent

    Collider3D::set_position

    Collider3D::set_restitution

    fn Collider3D::set_restitution(self : Collider3D, restitution : Float) -> Collider3D

    Collider3D::set_restitution_combine_rule

    Collider3D::set_shape

    fn Collider3D::set_shape(self : Collider3D, shape : Shape3D) -> Unit

    Collider3D::set_solver_groups

    Collider3D::set_surface_velocity

    fn Collider3D::set_surface_velocity(self : Collider3D, v :
    Vec3
    ) -> Unit

    Collider3D::set_user_data

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

    Collider3D::set_user_data128

    Collider3D::shape

    fn Collider3D::shape(self : Collider3D) -> Shape3D

    Collider3D::surface_velocity

    Collider3D::user_data

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

    Collider3D::user_data128

    Collider3D::voxel_key_for_triangle

    fn Collider3D::voxel_key_for_triangle(self : Collider3D, feature_id : Int) -> (Int, Int, Int)?

    ColliderBuilder

    pub struct ColliderBuilder {
    shape : Shape
    translation :
    Vec2

    rotation : Float
    active_collision_types : ActiveCollisionTypes
    sensor : Bool
    active_events : ActiveEvents
    active_hooks : ActiveHooks
    collision_groups :
    InteractionGroups

    solver_groups :
    InteractionGroups

    density : Float
    friction : Float
    friction_combine_rule :
    CoefficientCombineRule

    restitution : Float
    restitution_combine_rule :
    CoefficientCombineRule

    contact_skin : Float
    contact_force_event_threshold : Float
    user_data :
    UserData128

    enabled : Bool
    }
    fn ColliderBuilder::ColliderBuilder(shape : Shape) -> ColliderBuilder

    ColliderBuilder::active_collision_types

    fn ColliderBuilder::active_collision_types(self : ColliderBuilder, types : ActiveCollisionTypes) -> ColliderBuilder

    ColliderBuilder::active_events

    fn ColliderBuilder::active_events(self : ColliderBuilder, events : ActiveEvents) -> ColliderBuilder

    ColliderBuilder::active_hooks

    fn ColliderBuilder::active_hooks(self : ColliderBuilder, hooks : ActiveHooks) -> ColliderBuilder

    ColliderBuilder::ball

    fn ColliderBuilder::ball(radius : Float) -> ColliderBuilder

    ColliderBuilder::build

    ColliderBuilder::capsule_from_endpoints

    ColliderBuilder::capsule_x

    fn ColliderBuilder::capsule_x(half_height : Float, radius : Float) -> ColliderBuilder

    ColliderBuilder::capsule_y

    fn ColliderBuilder::capsule_y(half_height : Float, radius : Float) -> ColliderBuilder

    ColliderBuilder::collision_groups

    ColliderBuilder::contact_force_event_threshold

    fn ColliderBuilder::contact_force_event_threshold(self : ColliderBuilder, threshold : Float) -> ColliderBuilder

    ColliderBuilder::contact_skin

    fn ColliderBuilder::contact_skin(self : ColliderBuilder, skin : Float) -> ColliderBuilder

    ColliderBuilder::converted_trimesh

    fn ColliderBuilder::converted_trimesh(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int, Int)], converter : MeshConverter) -> Result[ColliderBuilder, MeshConverterError]

    ColliderBuilder::convex_decomposition_with_params

    fn ColliderBuilder::convex_decomposition_with_params(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int)], params : VHACDParameters) -> ColliderBuilder

    ColliderBuilder::convex_hull

    ColliderBuilder::convex_polyline

    ColliderBuilder::cuboid

    fn ColliderBuilder::cuboid(half_width : Float, half_height : Float) -> ColliderBuilder

    ColliderBuilder::default_density

    fn ColliderBuilder::default_density() -> Float

    ColliderBuilder::default_friction

    fn ColliderBuilder::default_friction() -> Float

    ColliderBuilder::density

    fn ColliderBuilder::density(self : ColliderBuilder, density : Float) -> ColliderBuilder

    ColliderBuilder::enabled

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

    ColliderBuilder::friction

    fn ColliderBuilder::friction(self : ColliderBuilder, friction : Float) -> ColliderBuilder

    ColliderBuilder::friction_combine_rule

    ColliderBuilder::halfspace

    ColliderBuilder::heightfield

    fn ColliderBuilder::heightfield(heights : Array[Float], scale :
    Vec2
    ) -> ColliderBuilder

    ColliderBuilder::polyline

    fn ColliderBuilder::polyline(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int)]?) -> ColliderBuilder

    ColliderBuilder::restitution

    fn ColliderBuilder::restitution(self : ColliderBuilder, value : Float) -> ColliderBuilder

    ColliderBuilder::restitution_combine_rule

    ColliderBuilder::rotation

    fn ColliderBuilder::rotation(self : ColliderBuilder, rotation : Float) -> ColliderBuilder

    ColliderBuilder::round_convex_decomposition_with_params

    fn ColliderBuilder::round_convex_decomposition_with_params(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int)], params : VHACDParameters, border_radius : Float) -> ColliderBuilder

    ColliderBuilder::round_convex_hull

    fn ColliderBuilder::round_convex_hull(points : Array[
    Vec2
    ], border_radius : Float) -> ColliderBuilder?

    ColliderBuilder::round_convex_polyline

    fn ColliderBuilder::round_convex_polyline(points : Array[
    Vec2
    ], border_radius : Float) -> ColliderBuilder?

    ColliderBuilder::round_cuboid

    fn ColliderBuilder::round_cuboid(half_width : Float, half_height : Float, border_radius : Float) -> ColliderBuilder

    ColliderBuilder::round_triangle

    ColliderBuilder::sensor

    fn ColliderBuilder::sensor(self : ColliderBuilder, enabled : Bool) -> ColliderBuilder

    ColliderBuilder::translation

    ColliderBuilder::trimesh

    fn ColliderBuilder::trimesh(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int, Int)]) -> ColliderBuilder?

    ColliderBuilder::trimesh_with_flags

    fn ColliderBuilder::trimesh_with_flags(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int, Int)], _flags : TriMeshFlags) -> ColliderBuilder?

    ColliderBuilder::user_data

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

    ColliderBuilder::user_data128

    ColliderBuilder::voxelized_mesh

    fn ColliderBuilder::voxelized_mesh(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int)], voxel_size : Float, fill_mode : FillMode) -> ColliderBuilder

    ColliderBuilder::voxels

    fn ColliderBuilder::voxels(voxel_size :
    Vec2
    , voxels : Array[(Int, Int)]) -> ColliderBuilder

    ColliderBuilder::voxels_from_points

    ColliderBuilder3D

    #alias(ColliderBuilder3Compat)
    #alias(ColliderBuilder3)
    pub struct ColliderBuilder3D {
    position :
    Isometry3

    local_position :
    Isometry3

    parent :
    RigidBodyHandle
    ?
    shape : Shape3D
    voxel_tri_map : Array[(Int, Int, Int)]?
    enabled : Bool
    sensor : Bool
    surface_velocity :
    Vec3

    one_way_offset : Float?
    one_way_direction : Int
    active_collision_types : ActiveCollisionTypes
    active_hooks : ActiveHooks
    active_events : ActiveEvents
    contact_force_event_threshold : Float
    user_data :
    UserData128

    collision_groups :
    InteractionGroups

    solver_groups :
    InteractionGroups

    contact_skin : Float
    friction : Float
    friction_combine_rule :
    CoefficientCombineRule

    restitution : Float
    restitution_combine_rule :
    CoefficientCombineRule

    }

    ColliderBuilder3D::active_collision_types

    fn ColliderBuilder3D::active_collision_types(self : ColliderBuilder3D, types : ActiveCollisionTypes) -> ColliderBuilder3D

    ColliderBuilder3D::active_events

    fn ColliderBuilder3D::active_events(self : ColliderBuilder3D, active_events : ActiveEvents) -> ColliderBuilder3D

    ColliderBuilder3D::active_hooks

    ColliderBuilder3D::ball

    fn ColliderBuilder3D::ball(radius : Float) -> ColliderBuilder3D

    ColliderBuilder3D::build

    ColliderBuilder3D::capsule_x

    fn ColliderBuilder3D::capsule_x(radius : Float, half_height : Float) -> ColliderBuilder3D

    ColliderBuilder3D::capsule_y

    fn ColliderBuilder3D::capsule_y(radius : Float, half_height : Float) -> ColliderBuilder3D

    ColliderBuilder3D::capsule_z

    fn ColliderBuilder3D::capsule_z(radius : Float, half_height : Float) -> ColliderBuilder3D

    ColliderBuilder3D::compound

    Build a compound collider from multiple (local pose, child shape) pairs.

    This matches Rapier's ColliderBuilder::compound pattern: the compound has a single set of material/flags, while each child contributes its local geometry.

    Note: we accept child shapes as ColliderBuilder3D so callers can reuse existing constructor helpers (ball, cuboid, ...). Only the child's shape and position are used; all other fields (friction, events, etc.) are ignored.

    ColliderBuilder3D::cone

    fn ColliderBuilder3D::cone(radius : Float, half_height : Float) -> ColliderBuilder3D

    ColliderBuilder3D::contact_force_event_threshold

    fn ColliderBuilder3D::contact_force_event_threshold(self : ColliderBuilder3D, threshold : Float) -> ColliderBuilder3D

    ColliderBuilder3D::contact_skin

    fn ColliderBuilder3D::contact_skin(self : ColliderBuilder3D, skin : Float) -> ColliderBuilder3D

    ColliderBuilder3D::convex_decomposition

    fn ColliderBuilder3D::convex_decomposition(vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)]) -> ColliderBuilder3D?

    ColliderBuilder3D::convex_hull

    ColliderBuilder3D::convex_mesh

    fn ColliderBuilder3D::convex_mesh(vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)]) -> ColliderBuilder3D?

    ColliderBuilder3D::cuboid

    fn ColliderBuilder3D::cuboid(hx : Float, hy : Float, hz : Float) -> ColliderBuilder3D

    ColliderBuilder3D::cylinder

    fn ColliderBuilder3D::cylinder(radius : Float, half_height : Float) -> ColliderBuilder3D

    ColliderBuilder3D::default_density

    fn ColliderBuilder3D::default_density() -> Float

    ColliderBuilder3D::default_friction

    fn ColliderBuilder3D::default_friction() -> Float

    ColliderBuilder3D::density

    fn ColliderBuilder3D::density(self : ColliderBuilder3D, density : Float) -> ColliderBuilder3D

    ColliderBuilder3D::enabled

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

    ColliderBuilder3D::friction

    fn ColliderBuilder3D::friction(self : ColliderBuilder3D, friction : Float) -> ColliderBuilder3D

    ColliderBuilder3D::friction_combine_rule

    ColliderBuilder3D::halfspace

    ColliderBuilder3D::heightfield

    fn ColliderBuilder3D::heightfield(heights : Array[Float], nrows : Int, ncols : Int, scale :
    Vec3
    ) -> ColliderBuilder3D?

    ColliderBuilder3D::heightfield_with_flags

    fn ColliderBuilder3D::heightfield_with_flags(heights : Array[Float], nrows : Int, ncols : Int, scale :
    Vec3
    , flags : Int) -> ColliderBuilder3D?

    ColliderBuilder3D::local_position

    ColliderBuilder3D::one_way_above

    fn ColliderBuilder3D::one_way_above(self : ColliderBuilder3D, offset : Float) -> ColliderBuilder3D

    ColliderBuilder3D::one_way_below

    fn ColliderBuilder3D::one_way_below(self : ColliderBuilder3D, offset : Float) -> ColliderBuilder3D

    ColliderBuilder3D::restitution

    fn ColliderBuilder3D::restitution(self : ColliderBuilder3D, restitution : Float) -> ColliderBuilder3D

    ColliderBuilder3D::restitution_combine_rule

    ColliderBuilder3D::round_cone

    fn ColliderBuilder3D::round_cone(radius : Float, half_height : Float, border_radius : Float) -> ColliderBuilder3D

    ColliderBuilder3D::round_convex_decomposition

    fn ColliderBuilder3D::round_convex_decomposition(vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)], border_radius : Float) -> ColliderBuilder3D?

    ColliderBuilder3D::round_convex_hull

    fn ColliderBuilder3D::round_convex_hull(points : Array[
    Vec3
    ], border_radius : Float) -> ColliderBuilder3D?

    Build a convex hull collider from an arbitrary point cloud.

    The hull is represented by its support points (the input points); interior points are allowed and do not affect correctness of support-based collision detection.

    ColliderBuilder3D::round_convex_mesh

    fn ColliderBuilder3D::round_convex_mesh(vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)], border_radius : Float) -> ColliderBuilder3D?

    ColliderBuilder3D::round_cylinder

    fn ColliderBuilder3D::round_cylinder(radius : Float, half_height : Float, border_radius : Float) -> ColliderBuilder3D

    ColliderBuilder3D::sensor

    fn ColliderBuilder3D::sensor(self : ColliderBuilder3D, sensor : Bool) -> ColliderBuilder3D

    ColliderBuilder3D::surface_velocity

    ColliderBuilder3D::translation

    ColliderBuilder3D::trimesh

    fn ColliderBuilder3D::trimesh(vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)]) -> ColliderBuilder3D?

    ColliderBuilder3D::user_data

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

    ColliderBuilder3D::voxels_from_points

    Build a voxel mesh from a point cloud by snapping points to a regular grid.

    This creates a sparse voxel set where each occupied cell is an axis-aligned box on a regular grid. The returned collider stores a deterministic voxel id mapping so ray-casts can return the hit voxel key.

    ColliderChanges

    pub struct ColliderChanges {
    bits : Int
    }

    ColliderChanges::all

    ColliderChanges::contains

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

    ColliderChanges::empty

    ColliderChanges::insert

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

    ColliderChanges::needs_broad_phase_update

    fn ColliderChanges::needs_broad_phase_update(self : ColliderChanges) -> Bool

    ColliderChanges::needs_narrow_phase_update

    fn ColliderChanges::needs_narrow_phase_update(self : ColliderChanges) -> Bool

    ColliderChanges::remove

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

    ColliderEnabled

    pub(all) enum ColliderEnabled {
    Enabled
    DisabledByParent
    Disabled
    }

    ColliderFlags

    pub struct ColliderFlags {
    collision_groups :
    InteractionGroups

    solver_groups :
    InteractionGroups

    active_collision_types : ActiveCollisionTypes
    active_hooks : ActiveHooks
    active_events : ActiveEvents
    }
    fn ColliderFlags::ColliderFlags(collision_groups :
    InteractionGroups
    , solver_groups :
    InteractionGroups
    , active_collision_types : ActiveCollisionTypes, active_hooks : ActiveHooks, active_events : ActiveEvents) -> ColliderFlags

    ColliderHandle

    pub struct ColliderHandle {
    id : Int
    generation : Int
    }

    ColliderHandle::equals

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

    ColliderHandle::from_raw_parts

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

    ColliderHandle::into_raw_parts

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

    ColliderHandle::invalid

    ColliderHandle3D

    pub struct ColliderHandle3D {
    id : Int
    generation : Int
    }

    ColliderHandle3D::equals

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

    ColliderHandle3D::from_raw_parts

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

    ColliderHandle3D::into_raw_parts

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

    ColliderHandle3D::invalid

    ColliderMassProps

    pub(all) enum ColliderMassProps {
    Density(Float)
    Mass(Float)
    MassProperties(
    MassProperties
    )
    }

    ColliderMassProps::default

    ColliderMaterial

    pub struct ColliderMaterial {
    friction : Float
    restitution : Float
    friction_combine_rule :
    CoefficientCombineRule

    restitution_combine_rule :
    CoefficientCombineRule

    }
    fn ColliderMaterial::ColliderMaterial(friction : Float, restitution : Float) -> ColliderMaterial

    ColliderPair

    pub struct ColliderPair {
    collider1 : ColliderHandle
    collider2 : ColliderHandle
    }
    fn ColliderPair::ColliderPair(a : ColliderHandle, b : ColliderHandle) -> ColliderPair

    ColliderPair::collider1

    fn ColliderPair::collider1(self : ColliderPair) -> ColliderHandle

    ColliderPair::collider2

    fn ColliderPair::collider2(self : ColliderPair) -> ColliderHandle

    ColliderPair::swap

    ColliderPair3D

    pub struct ColliderPair3D {
    collider1 : ColliderHandle3D
    collider2 : ColliderHandle3D
    }
    fn ColliderPair3D::ColliderPair3D(collider1 : ColliderHandle3D, collider2 : ColliderHandle3D) -> ColliderPair3D

    ColliderPair3D::collider1

    ColliderPair3D::collider2

    ColliderPosition

    pub struct ColliderPosition {
    position :
    Isometry2

    }
    fn ColliderPosition::ColliderPosition(position :
    Isometry2
    ) -> ColliderPosition

    ColliderSet

    pub struct ColliderSet {
    colliders : Array[Collider?]
    generations : Array[Int]
    free_list : Array[Int]
    modified_colliders : Array[ColliderHandle]
    removed_colliders : Array[ColliderHandle]
    }
    fn ColliderSet::ColliderSet() -> ColliderSet

    ColliderSet::apply_pending_body_position_propagation

    fn ColliderSet::apply_pending_body_position_propagation(self : ColliderSet, bodies :
    RigidBodySet
    ) -> Unit

    Applies pending rigid-body position propagation commands generated from RigidBodySet::propagate_modified_body_positions_to_colliders.

    ColliderSet::clear_changes_for

    fn ColliderSet::clear_changes_for(self : ColliderSet, handles : Array[ColliderHandle]) -> Unit

    ColliderSet::colliders_with_parent

    ColliderSet::deserialize

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

    ColliderSet::get

    fn ColliderSet::get(self : ColliderSet, handle : ColliderHandle) -> Collider?

    ColliderSet::get_mut

    fn ColliderSet::get_mut(self : ColliderSet, handle : ColliderHandle) -> Collider?

    ColliderSet::get_mut_internal

    fn ColliderSet::get_mut_internal(self : ColliderSet, handle : ColliderHandle) -> Collider?

    ColliderSet::get_mut_internal_with_modification_tracking

    fn ColliderSet::get_mut_internal_with_modification_tracking(self : ColliderSet, handle : ColliderHandle) -> Collider?

    ColliderSet::insert

    fn ColliderSet::insert(self : ColliderSet, collider : Collider) -> ColliderHandle

    ColliderSet::invalid_handle

    fn ColliderSet::invalid_handle() -> ColliderHandle

    ColliderSet::is_empty

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

    ColliderSet::iter_enabled

    fn ColliderSet::iter_enabled(self : ColliderSet) -> Array[(ColliderHandle, Collider)]

    ColliderSet::iter_enabled_mut

    fn ColliderSet::iter_enabled_mut(self : ColliderSet) -> Array[(ColliderHandle, Collider)]

    ColliderSet::len

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

    ColliderSet::serialize

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

    ColliderSet::set_parent_enabled

    fn ColliderSet::set_parent_enabled(self : ColliderSet, parent :
    RigidBodyHandle
    , enabled : Bool) -> Unit

    ColliderSet::take_modified

    fn ColliderSet::take_modified(self : ColliderSet) -> Array[ColliderHandle]

    ColliderSet::take_removed

    fn ColliderSet::take_removed(self : ColliderSet) -> Array[ColliderHandle]

    ColliderSet3

    pub struct ColliderSet3 {
    inner : ColliderSet
    }
    fn ColliderSet3::ColliderSet3() -> ColliderSet3

    3D-flavored collider set (dim3,f32).

    ColliderSet3::as_2d

    ColliderSet3::clear_changes_for

    fn ColliderSet3::clear_changes_for(self : ColliderSet3, modified_colliders : Array[ColliderHandle]) -> Unit

    ColliderSet3::colliders_with_parent

    ColliderSet3::get

    fn ColliderSet3::get(self : ColliderSet3, handle : ColliderHandle) -> Collider?

    ColliderSet3::insert

    fn ColliderSet3::insert(self : ColliderSet3, collider : Collider) -> ColliderHandle

    ColliderSet3::len

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

    ColliderSet3::set_parent_enabled

    fn ColliderSet3::set_parent_enabled(self : ColliderSet3, handle :
    RigidBodyHandle
    , enabled : Bool) -> Unit

    ColliderSet3::take_modified

    fn ColliderSet3::take_modified(self : ColliderSet3) -> Array[ColliderHandle]

    ColliderSet3D

    pub struct ColliderSet3D {
    colliders : Array[Collider3D?]
    generations : Array[Int]
    free_list : Array[Int]
    }
    fn ColliderSet3D::ColliderSet3D() -> ColliderSet3D

    ColliderSet3D::all_handles

    ColliderSet3D::get

    ColliderSet3D::get_mut

    fn ColliderSet3D::get_mut(self : ColliderSet3D, handle : ColliderHandle3D) -> Collider3D?

    ColliderSet3D::insert

    fn ColliderSet3D::insert(self : ColliderSet3D, collider : Collider3D) -> ColliderHandle3D

    ColliderSet3D::len

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

    ColliderSet3D::remove

    fn ColliderSet3D::remove(self : ColliderSet3D, handle : ColliderHandle3D) -> Collider3D?

    ColliderSet3D::remove_attached_to

    ColliderSet3D::sync_with_bodies

    ColliderType

    pub(all) enum ColliderType {
    Solid
    Sensor
    }

    ColliderType::is_sensor

    fn ColliderType::is_sensor(self : ColliderType) -> Bool

    CollisionEvent

    CollisionEvent::collider1

    CollisionEvent::collider2

    CollisionEvent::removed

    fn CollisionEvent::removed(self : CollisionEvent) -> Bool

    CollisionEvent::sensor

    fn CollisionEvent::sensor(self : CollisionEvent) -> Bool

    CollisionEvent::started

    fn CollisionEvent::started(self : CollisionEvent) -> Bool

    CollisionEvent::stopped

    fn CollisionEvent::stopped(self : CollisionEvent) -> Bool

    CollisionEvent3D

    CollisionEvent3D::collider1

    CollisionEvent3D::collider2

    CollisionEvent3D::removed

    fn CollisionEvent3D::removed(self : CollisionEvent3D) -> Bool

    CollisionEvent3D::sensor

    fn CollisionEvent3D::sensor(self : CollisionEvent3D) -> Bool

    CollisionEvent3D::started

    fn CollisionEvent3D::started(self : CollisionEvent3D) -> Bool

    CollisionEvent3D::stopped

    fn CollisionEvent3D::stopped(self : CollisionEvent3D) -> Bool

    CollisionEventFlags

    pub struct CollisionEventFlags {
    bits : Int
    }

    CollisionEventFlags::contains

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

    CollisionEventFlags::empty

    CollisionEventFlags::insert

    CollisionEventFlags::removed

    CollisionEventFlags::sensor

    ContactData

    pub(all) struct ContactData {
    impulse : Float
    tangent_impulse :
    Vec2

    warmstart_impulse : Float
    warmstart_tangent_impulse :
    Vec2

    warmstart_twist_impulse : Float
    }
    fn ContactData::ContactData(impulse : Float, tangent_impulse :
    Vec2
    , warmstart_impulse : Float, warmstart_tangent_impulse :
    Vec2
    , warmstart_twist_impulse : Float) -> ContactData

    Equivalent to Rapier's geometry::contact_pair::ContactData.

    ContactData::default

    fn ContactData::default() -> ContactData

    ContactForceEvent

    pub struct ContactForceEvent {
    collider1 : ColliderHandle
    collider2 : ColliderHandle
    total_force :
    Vec2

    total_force_magnitude : Float
    max_force_direction :
    Vec2

    max_force_magnitude : Float
    }
    fn ContactForceEvent::ContactForceEvent(collider1 : ColliderHandle, collider2 : ColliderHandle, total_force :
    Vec2
    , total_force_magnitude : Float, max_force_direction :
    Vec2
    , max_force_magnitude : Float) -> ContactForceEvent

    ContactForceEvent::collider1

    ContactForceEvent::collider2

    ContactForceEvent::from_contact_pair

    fn ContactForceEvent::from_contact_pair(dt : Float, collider1 : ColliderHandle, collider2 : ColliderHandle, pair : ContactPair, total_force_magnitude : Float) -> ContactForceEvent

    Build a contact force event from a contact pair.

    Rapier's signature is (dt, &ContactPair, total_force_magnitude). This port's ContactPair does not store its collider handles, so we pass them explicitly.

    ContactForceEvent::max_force_direction

    ContactForceEvent::max_force_magnitude

    fn ContactForceEvent::max_force_magnitude(self : ContactForceEvent) -> Float

    ContactForceEvent::total_force

    ContactForceEvent::total_force_magnitude

    fn ContactForceEvent::total_force_magnitude(self : ContactForceEvent) -> Float

    ContactForceEvent3D

    pub struct ContactForceEvent3D {
    collider1 : ColliderHandle3D
    collider2 : ColliderHandle3D
    total_force :
    Vec3

    total_force_magnitude : Float
    max_force_direction :
    Vec3

    max_force_magnitude : Float
    }
    fn ContactForceEvent3D::ContactForceEvent3D(collider1 : ColliderHandle3D, collider2 : ColliderHandle3D, total_force :
    Vec3
    , total_force_magnitude : Float, max_force_direction :
    Vec3
    , max_force_magnitude : Float) -> ContactForceEvent3D

    ContactForceEvent3D::collider1

    ContactForceEvent3D::collider2

    ContactForceEvent3D::from_contact_pair

    fn ContactForceEvent3D::from_contact_pair(dt : Float, collider1 : ColliderHandle3D, collider2 : ColliderHandle3D, pair : ContactPair3D, total_force_magnitude : Float) -> ContactForceEvent3D

    Build a contact force event from a contact pair.

    Rapier's signature is (dt, &ContactPair, total_force_magnitude). This port's ContactPair3D does not store its collider handles, so we pass them explicitly.

    ContactForceEvent3D::max_force_direction

    ContactForceEvent3D::max_force_magnitude

    fn ContactForceEvent3D::max_force_magnitude(self : ContactForceEvent3D) -> Float

    ContactForceEvent3D::total_force

    ContactForceEvent3D::total_force_magnitude

    fn ContactForceEvent3D::total_force_magnitude(self : ContactForceEvent3D) -> Float

    ContactManifold

    pub struct ContactManifold {
    normal :
    Vec2

    points : Array[ContactManifoldPoint]
    }
    fn ContactManifold::ContactManifold(normal :
    Vec2
    , points : Array[ContactManifoldPoint]) -> ContactManifold

    ContactManifold::normal

    ContactManifold::points

    ContactManifoldData

    pub struct ContactManifoldData {
    solver_flags : SolverFlags
    solver_contacts : Array[SolverContactGeneric]
    relative_dominance : Int
    }

    Equivalent to Rapier's geometry::contact_pair::ContactManifoldData.

    ContactManifoldData::default

    ContactManifoldData::num_active_contacts

    fn ContactManifoldData::num_active_contacts(self : ContactManifoldData) -> Int

    ContactManifoldPoint

    #alias(Contact)
    pub struct ContactManifoldPoint {
    local_p1 :
    Vec2

    local_p2 :
    Vec2

    dist : Float
    fid1 : FeatureId
    fid2 : FeatureId
    data : ContactData
    }

    ContactManifoldPoint::data

    ContactManifoldPoint::dist

    fn ContactManifoldPoint::dist(self : ContactManifoldPoint) -> Float

    ContactManifoldPoint::fid1

    ContactManifoldPoint::fid2

    ContactManifoldPoint::local_p1

    ContactManifoldPoint::local_p2

    ContactManifoldPoint::set_data

    fn ContactManifoldPoint::set_data(self : ContactManifoldPoint, data : ContactData) -> Unit

    ContactPair

    pub struct ContactPair {
    manifolds : Array[ContactManifold]
    }

    ContactPair::find_deepest_contact

    fn ContactPair::find_deepest_contact(self : ContactPair) -> (ContactManifold, ContactManifoldPoint)?

    ContactPair::has_any_active_contact

    fn ContactPair::has_any_active_contact(self : ContactPair) -> Bool

    ContactPair::manifold_count

    fn ContactPair::manifold_count(self : ContactPair) -> Int

    ContactPair::manifolds

    fn ContactPair::manifolds(self : ContactPair) -> Array[ContactManifold]

    ContactPair::max_impulse

    ContactPair::total_impulse

    ContactPair::total_impulse_magnitude

    fn ContactPair::total_impulse_magnitude(self : ContactPair) -> Float

    ContactPair3D

    pub struct ContactPair3D {
    manifolds : Array[ContactPoint3D]
    impulses : Array[Float]
    }

    ContactPair3D::manifolds

    ContactPair3D::manifolds_len

    fn ContactPair3D::manifolds_len(self : ContactPair3D) -> Int

    ContactPair3D::max_impulse

    ContactPair3D::set_normal_impulse_at

    fn ContactPair3D::set_normal_impulse_at(self : ContactPair3D, idx : Int, impulse : Float) -> Unit

    ContactPair3D::total_impulse

    ContactPair3D::total_impulse_magnitude

    fn ContactPair3D::total_impulse_magnitude(self : ContactPair3D) -> Float

    ContactPoint3D

    pub struct ContactPoint3D {
    point1 :
    Vec3

    point2 :
    Vec3

    normal :
    Vec3

    penetration : Float
    }

    FeatureId

    pub(all) enum FeatureId {
    Unknown
    Vertex(Int)
    Edge(Int)
    Face(Int)
    }

    FillMode

    pub(all) enum FillMode {
    SurfaceOnly
    FloodFill(Bool, Bool)
    }

    FillMode::default

    fn FillMode::default() -> FillMode

    FillMode::surface_only

    fn FillMode::surface_only() -> FillMode

    HeightField

    pub struct HeightField {
    heights : Array[Float]
    scale :
    Vec2

    }
    fn HeightField::HeightField(heights : Array[Float], scale :
    Vec2
    ) -> HeightField

    HeightField::as_shape

    fn HeightField::as_shape(self : HeightField) -> Shape

    InteractionGraph

    pub struct InteractionGraph[T] {
    interactions : Array[(ColliderHandle, ColliderHandle, T)]
    }
    fn InteractionGraph::InteractionGraph() -> InteractionGraph[T]

    Minimal interaction-graph surface for pub parity with Rapier.

    InteractionGraph::index_interaction

    fn[T] InteractionGraph::index_interaction(self : InteractionGraph[T], a : ColliderHandle, b : ColliderHandle) -> Int?

    InteractionGraph::interaction_pair

    fn[T] InteractionGraph::interaction_pair(self : InteractionGraph[T], a : ColliderHandle, b : ColliderHandle) -> T?

    InteractionGraph::interaction_pair_mut

    fn[T] InteractionGraph::interaction_pair_mut(self : InteractionGraph[T], a : ColliderHandle, b : ColliderHandle) -> T?

    MoonBit does not currently expose &mut references; this returns a copy for parity.

    InteractionGraph::interactions

    fn[T] InteractionGraph::interactions(self : InteractionGraph[T]) -> Array[(ColliderHandle, ColliderHandle, T)]

    InteractionGraph::interactions_with

    fn[T] InteractionGraph::interactions_with(self : InteractionGraph[T], collider : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, T)]

    InteractionGraph::interactions_with_endpoints

    fn[T] InteractionGraph::interactions_with_endpoints(self : InteractionGraph[T], collider1 : ColliderHandle, collider2 : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, T)]

    InteractionGraph::interactions_with_mut

    fn[T] InteractionGraph::interactions_with_mut(self : InteractionGraph[T], collider : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, T)]

    InteractionGraph::raw_graph

    IntersectionEvent

    pub struct IntersectionEvent {
    collider1 : ColliderHandle
    collider2 : ColliderHandle
    intersecting : Bool
    }
    fn IntersectionEvent::IntersectionEvent(collider1 : ColliderHandle, collider2 : ColliderHandle, intersecting : Bool) -> IntersectionEvent

    IntersectionEvent::collider1

    IntersectionEvent::collider2

    IntersectionEvent::intersecting

    fn IntersectionEvent::intersecting(self : IntersectionEvent) -> Bool

    IntersectionEvent3D

    pub struct IntersectionEvent3D {
    collider1 : ColliderHandle3D
    collider2 : ColliderHandle3D
    intersecting : Bool
    }
    fn IntersectionEvent3D::IntersectionEvent3D(collider1 : ColliderHandle3D, collider2 : ColliderHandle3D, intersecting : Bool) -> IntersectionEvent3D

    IntersectionEvent3D::collider1

    IntersectionEvent3D::collider2

    IntersectionEvent3D::intersecting

    fn IntersectionEvent3D::intersecting(self : IntersectionEvent3D) -> Bool

    IntersectionPair

    pub struct IntersectionPair {
    collider1 : ColliderHandle
    collider2 : ColliderHandle
    intersecting : Bool
    }

    IntersectionPair3D

    pub struct IntersectionPair3D {
    collider1 : ColliderHandle3D
    collider2 : ColliderHandle3D
    intersecting : Bool
    }

    IntersectionPair3D::collider1

    IntersectionPair3D::collider2

    IntersectionPair3D::intersecting

    fn IntersectionPair3D::intersecting(self : IntersectionPair3D) -> Bool

    MeshConverter

    pub(all) enum MeshConverter {
    TriMesh
    TriMeshWithFlags(TriMeshFlags)
    Aabb
    Obb
    ConvexHull
    ConvexDecomposition
    ConvexDecompositionWithParams(VHACDParameters)
    }

    MeshConverter::aabb

    MeshConverter::apply

    MeshConverter::convert

    MeshConverter::convex_hull

    fn MeshConverter::convex_hull() -> MeshConverter

    MeshConverter::obb

    MeshConverter::trimesh

    fn MeshConverter::trimesh() -> MeshConverter

    MeshConverter::trimesh_with_flags

    fn MeshConverter::trimesh_with_flags(flags : TriMeshFlags) -> MeshConverter

    MeshConverterError

    pub(all) enum MeshConverterError {
    ConvexHullFailed
    TriMeshBuilderError
    EmptyVertices
    }

    MeshConverterError::to_string

    fn MeshConverterError::to_string(self : MeshConverterError) -> String

    NarrowPhase

    pub struct NarrowPhase {
    intersections : Array[IntersectionPair]
    contacts : Array[(ColliderHandle, ColliderHandle, ContactPair)]
    query_dispatcher : QueryDispatcher
    }
    fn NarrowPhase::NarrowPhase() -> NarrowPhase

    NarrowPhase::contact_graph

    fn NarrowPhase::contact_graph(self : NarrowPhase) -> InteractionGraph[ContactPair]

    NarrowPhase::contact_pair

    fn NarrowPhase::contact_pair(self : NarrowPhase, first : ColliderHandle, second : ColliderHandle) -> ContactPair?

    NarrowPhase::contact_pair_at_index

    fn NarrowPhase::contact_pair_at_index(self : NarrowPhase, index : Int) -> (ColliderHandle, ColliderHandle, ContactPair)?

    NarrowPhase::contact_pair_unknown_gen

    fn NarrowPhase::contact_pair_unknown_gen(self : NarrowPhase, first : ColliderHandle, second : ColliderHandle) -> ContactPair?

    NarrowPhase::contact_pairs

    NarrowPhase::contact_pairs_with

    fn NarrowPhase::contact_pairs_with(self : NarrowPhase, handle : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, ContactPair)]

    NarrowPhase::contact_pairs_with_unknown_gen

    fn NarrowPhase::contact_pairs_with_unknown_gen(self : NarrowPhase, collider : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, ContactPair)]

    NarrowPhase::handle_user_changes

    fn NarrowPhase::handle_user_changes(self : NarrowPhase, bodies :
    RigidBodySet
    , colliders : ColliderSet, modified_colliders : Array[ColliderHandle]) -> Unit

    NarrowPhase::intersection_graph

    fn NarrowPhase::intersection_graph(self : NarrowPhase) -> InteractionGraph[IntersectionPair]

    NarrowPhase::intersection_pair

    fn NarrowPhase::intersection_pair(self : NarrowPhase, first : ColliderHandle, second : ColliderHandle) -> IntersectionPair?

    NarrowPhase::intersection_pair_unknown_gen

    fn NarrowPhase::intersection_pair_unknown_gen(self : NarrowPhase, first : ColliderHandle, second : ColliderHandle) -> IntersectionPair?

    NarrowPhase::intersection_pairs

    fn NarrowPhase::intersection_pairs(self : NarrowPhase) -> Array[IntersectionPair]

    NarrowPhase::intersection_pairs_with

    fn NarrowPhase::intersection_pairs_with(self : NarrowPhase, handle : ColliderHandle) -> Array[IntersectionPair]

    NarrowPhase::intersection_pairs_with_unknown_gen

    fn NarrowPhase::intersection_pairs_with_unknown_gen(self : NarrowPhase, collider : ColliderHandle) -> Array[IntersectionPair]

    NarrowPhase::query_dispatcher

    fn NarrowPhase::query_dispatcher(self : NarrowPhase) -> QueryDispatcher

    NarrowPhase::update_with_pairs

    NarrowPhase::update_with_pairs3

    NarrowPhase::with_query_dispatcher

    fn NarrowPhase::with_query_dispatcher(self : NarrowPhase, dispatcher : QueryDispatcher) -> NarrowPhase

    NarrowPhase3D

    pub struct NarrowPhase3D {
    contact_pairs : Array[((ColliderHandle3D, ColliderHandle3D), ContactPair3D)]
    intersection_pairs : Array[((ColliderHandle3D, ColliderHandle3D), IntersectionPair3D)]
    }
    fn NarrowPhase3D::NarrowPhase3D() -> NarrowPhase3D

    NarrowPhase3D::all_contact_pairs

    NarrowPhase3D::all_intersection_pairs

    NarrowPhase3D::clear

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

    NarrowPhase3D::contact_pair

    NarrowPhase3D::intersection_pair

    NarrowPhase3D::set_contact_pair_normal_impulses

    fn NarrowPhase3D::set_contact_pair_normal_impulses(self : NarrowPhase3D, a : ColliderHandle3D, b : ColliderHandle3D, impulses : Array[Float]) -> Unit

    Update the normal impulses stored for a given contact pair.

    This is written by the 3D contact solver after each step so ContactPair3D::{total_impulse,*} matches Rapier semantics.

    NarrowPhase3D::update

    fn NarrowPhase3D::update(self : NarrowPhase3D, pairs : Array[(ColliderHandle3D, ColliderHandle3D)], bodies :
    RigidBodySet3D
    , colliders : ColliderSet3D, prediction_distance : Float, dt : Float) -> Unit

    NonlinearRigidMotion

    pub struct NonlinearRigidMotion {
    start_pos :
    Isometry2

    linvel :
    Vec2

    angvel : Float
    }
    fn NonlinearRigidMotion::NonlinearRigidMotion(start_pos :
    Isometry2
    , linvel :
    Vec2
    , angvel : Float) -> NonlinearRigidMotion

    NonlinearRigidMotion::identity

    PointProjection

    pub struct PointProjection {
    point :
    Vec2

    is_inside : Bool
    }

    PointProjection::is_inside

    fn PointProjection::is_inside(self : PointProjection) -> Bool

    PointProjection3

    pub struct PointProjection3 {
    point :
    Vec3

    is_inside : Bool
    }

    PointProjection3::is_inside

    fn PointProjection3::is_inside(self : PointProjection3) -> Bool

    QueryDispatcher

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

    QueryFilter

    pub struct QueryFilter {
    excluded_body :
    RigidBodyHandle
    ?
    excluded_collider : ColliderHandle?
    groups :
    InteractionGroups
    ?
    flags : QueryFilterFlags
    predicate : (ColliderHandle, Collider) -> Bool?
    }
    fn QueryFilter::QueryFilter() -> QueryFilter

    QueryFilter::exclude_collider

    fn QueryFilter::exclude_collider(self : QueryFilter, handle : ColliderHandle) -> QueryFilter

    QueryFilter::exclude_dynamic

    fn QueryFilter::exclude_dynamic(self : QueryFilter) -> QueryFilter

    QueryFilter::exclude_fixed

    fn QueryFilter::exclude_fixed(self : QueryFilter) -> QueryFilter

    QueryFilter::exclude_kinematic

    fn QueryFilter::exclude_kinematic(self : QueryFilter) -> QueryFilter

    QueryFilter::exclude_rigid_body

    QueryFilter::exclude_sensors

    fn QueryFilter::exclude_sensors(self : QueryFilter) -> QueryFilter

    QueryFilter::exclude_solids

    fn QueryFilter::exclude_solids(self : QueryFilter) -> QueryFilter

    QueryFilter::only_dynamic

    fn QueryFilter::only_dynamic() -> QueryFilter

    QueryFilter::only_fixed

    fn QueryFilter::only_fixed() -> QueryFilter

    QueryFilter::only_kinematic

    fn QueryFilter::only_kinematic() -> QueryFilter

    QueryFilter::passes

    QueryFilter::predicate

    fn QueryFilter::predicate(self : QueryFilter, predicate : (ColliderHandle, Collider) -> Bool) -> QueryFilter

    QueryFilter3DReal

    pub struct QueryFilter3DReal {
    excluded_body :
    RigidBodyHandle
    ?
    excluded_collider : ColliderHandle3D?
    groups :
    InteractionGroups
    ?
    flags : QueryFilterFlags
    predicate : (ColliderHandle3D, Collider3D) -> Bool?
    }
    fn QueryFilter3DReal::QueryFilter3DReal() -> QueryFilter3DReal

    QueryFilter3DReal::exclude_collider

    fn QueryFilter3DReal::exclude_collider(self : QueryFilter3DReal, handle : ColliderHandle3D) -> QueryFilter3DReal

    QueryFilter3DReal::exclude_dynamic

    QueryFilter3DReal::exclude_fixed

    QueryFilter3DReal::exclude_kinematic

    fn QueryFilter3DReal::exclude_kinematic(self : QueryFilter3DReal) -> QueryFilter3DReal

    QueryFilter3DReal::exclude_rigid_body

    QueryFilter3DReal::exclude_sensors

    QueryFilter3DReal::exclude_solids

    QueryFilter3DReal::only_dynamic

    fn QueryFilter3DReal::only_dynamic() -> QueryFilter3DReal

    QueryFilter3DReal::only_fixed

    QueryFilter3DReal::only_kinematic

    fn QueryFilter3DReal::only_kinematic() -> QueryFilter3DReal

    QueryFilter3DReal::predicate

    fn QueryFilter3DReal::predicate(self : QueryFilter3DReal, predicate : (ColliderHandle3D, Collider3D) -> Bool) -> QueryFilter3DReal

    QueryFilterFlags

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

    QueryFilterFlags::complement

    QueryFilterFlags::contains

    fn QueryFilterFlags::contains(self : QueryFilterFlags, bits : Int) -> Bool

    QueryFilterFlags::difference

    QueryFilterFlags::empty

    QueryFilterFlags::exclude_dynamic

    fn QueryFilterFlags::exclude_dynamic() -> QueryFilterFlags

    QueryFilterFlags::exclude_fixed

    fn QueryFilterFlags::exclude_fixed() -> QueryFilterFlags

    QueryFilterFlags::exclude_kinematic

    fn QueryFilterFlags::exclude_kinematic() -> QueryFilterFlags

    QueryFilterFlags::exclude_sensors

    fn QueryFilterFlags::exclude_sensors() -> QueryFilterFlags

    QueryFilterFlags::exclude_solids

    fn QueryFilterFlags::exclude_solids() -> QueryFilterFlags

    QueryFilterFlags::from_bits

    fn QueryFilterFlags::from_bits(bits : Int) -> QueryFilterFlags?

    QueryFilterFlags::from_bits_retain

    fn QueryFilterFlags::from_bits_retain(bits : Int) -> QueryFilterFlags

    QueryFilterFlags::from_bits_truncate

    fn QueryFilterFlags::from_bits_truncate(bits : Int) -> QueryFilterFlags

    QueryFilterFlags::from_name

    fn QueryFilterFlags::from_name(name : String) -> QueryFilterFlags?

    QueryFilterFlags::insert

    fn QueryFilterFlags::insert(self : QueryFilterFlags, bits : Int) -> QueryFilterFlags

    QueryFilterFlags::is_all

    fn QueryFilterFlags::is_all(self : QueryFilterFlags) -> Bool

    QueryFilterFlags::iter_names

    fn QueryFilterFlags::iter_names(self : QueryFilterFlags) -> Array[String]

    QueryFilterFlags::only_dynamic

    fn QueryFilterFlags::only_dynamic() -> QueryFilterFlags

    QueryFilterFlags::only_fixed

    QueryFilterFlags::only_kinematic

    fn QueryFilterFlags::only_kinematic() -> QueryFilterFlags

    QueryFilterFlags::passes

    QueryFilterFlags::symmetric_difference

    fn QueryFilterFlags::symmetric_difference(self : QueryFilterFlags, other : QueryFilterFlags) -> QueryFilterFlags

    QueryFilterFlags::toggle

    QueryFilterFlags::union

    QueryPipeline

    pub struct QueryPipeline {
    bvh : Bvh
    filter : QueryFilter
    dispatcher : QueryDispatcher
    }
    fn QueryPipeline::QueryPipeline(filter : QueryFilter, bodies :
    RigidBodySet
    , colliders : ColliderSet) -> QueryPipeline

    QueryPipeline::cast_ray

    fn QueryPipeline::cast_ray(self : QueryPipeline, bodies :
    RigidBodySet
    , colliders : ColliderSet, ray : Ray, max_toi : Float, solid : Bool) -> (ColliderHandle, Float)?

    QueryPipeline::cast_ray_and_get_normal

    fn QueryPipeline::cast_ray_and_get_normal(self : QueryPipeline, bodies :
    RigidBodySet
    , colliders : ColliderSet, ray : Ray, max_toi : Float, solid : Bool) -> (ColliderHandle, RayIntersection)?

    QueryPipeline::cast_shape_nonlinear

    fn QueryPipeline::cast_shape_nonlinear(self : QueryPipeline, bodies :
    RigidBodySet
    , colliders : ColliderSet, shape_motion : NonlinearRigidMotion, shape : Shape, start_time : Float, end_time : Float, stop_at_penetration : Bool) -> (ColliderHandle, ShapeCastHit)?

    QueryPipeline::cast_shape_nonlinear3

    fn QueryPipeline::cast_shape_nonlinear3(self : QueryPipeline, bodies :
    RigidBodySet3
    , colliders : ColliderSet3, shape_motion : NonlinearRigidMotion, shape : Shape, start_time : Float, end_time : Float, stop_at_penetration : Bool) -> (ColliderHandle, ShapeCastHit)?

    QueryPipeline::collider

    fn QueryPipeline::collider(self : QueryPipeline, colliders : ColliderSet, handle : ColliderHandle) -> Collider?

    QueryPipeline::intersect_aabb_conservative

    QueryPipeline::intersect_ray

    fn QueryPipeline::intersect_ray(self : QueryPipeline, bodies :
    RigidBodySet
    , colliders : ColliderSet, ray : Ray, max_toi : Float, solid : Bool) -> Array[(ColliderHandle, RayIntersection)]

    QueryPipeline::intersect_shape

    QueryPipeline::project_point

    QueryPipeline::project_point_and_get_feature

    fn QueryPipeline::project_point_and_get_feature(self : QueryPipeline, bodies :
    RigidBodySet
    , colliders : ColliderSet, point :
    Vec2
    , max_dist : Float, solid : Bool) -> (ColliderHandle, PointProjection, FeatureId)?

    QueryPipeline::update

    QueryPipeline::with_filter

    fn QueryPipeline::with_filter(self : QueryPipeline, filter : QueryFilter) -> QueryPipeline

    QueryPipeline3DReal

    pub struct QueryPipeline3DReal {
    filter : QueryFilter3DReal
    cached_aabbs : Array[
    Aabb3
    ?]
    }
    fn QueryPipeline3DReal::QueryPipeline3DReal(filter : QueryFilter3DReal, bodies :
    RigidBodySet3D
    , colliders : ColliderSet3D) -> QueryPipeline3DReal

    QueryPipeline3DReal::cast_ray

    fn QueryPipeline3DReal::cast_ray(self : QueryPipeline3DReal, bodies :
    RigidBodySet3D
    , colliders : ColliderSet3D, ray : Ray3, max_toi : Float, solid : Bool) -> (ColliderHandle3D, Float)?

    QueryPipeline3DReal::cast_ray_and_get_normal

    fn QueryPipeline3DReal::cast_ray_and_get_normal(self : QueryPipeline3DReal, bodies :
    RigidBodySet3D
    , colliders : ColliderSet3D, ray : Ray3, max_toi : Float, solid : Bool) -> (ColliderHandle3D, RayIntersection3)?

    QueryPipeline3DReal::cast_ray_and_get_normal_and_feature

    fn QueryPipeline3DReal::cast_ray_and_get_normal_and_feature(self : QueryPipeline3DReal, bodies :
    RigidBodySet3D
    , colliders : ColliderSet3D, ray : Ray3, max_toi : Float, solid : Bool) -> (ColliderHandle3D, RayIntersection3Feature)?

    QueryPipeline3DReal::cast_ray_and_get_voxel_key

    fn QueryPipeline3DReal::cast_ray_and_get_voxel_key(self : QueryPipeline3DReal, bodies :
    RigidBodySet3D
    , colliders : ColliderSet3D, ray : Ray3, max_toi : Float, solid : Bool) -> (ColliderHandle3D, RayIntersection3, (Int, Int, Int))?

    QueryPipeline3DReal::collider

    fn QueryPipeline3DReal::collider(self : QueryPipeline3DReal, colliders : ColliderSet3D, handle : ColliderHandle3D) -> Collider3D?

    QueryPipeline3DReal::intersect_aabb_conservative

    QueryPipeline3DReal::intersect_ray

    QueryPipeline3DReal::project_point

    QueryPipeline3DReal::update

    QueryPipeline3DReal::with_filter

    QueryPipelineMut

    pub struct QueryPipelineMut {
    pipeline : QueryPipeline
    dispatcher : QueryDispatcher
    }
    fn QueryPipelineMut::QueryPipelineMut(filter : QueryFilter, bodies :
    RigidBodySet
    , colliders : ColliderSet) -> QueryPipelineMut

    QueryPipelineMut::as_ref

    QueryPipelineMut::update

    QueryPipelineMut3DReal

    pub struct QueryPipelineMut3DReal {
    pipeline : QueryPipeline3DReal
    }
    fn QueryPipelineMut3DReal::QueryPipelineMut3DReal(filter : QueryFilter3DReal, bodies :
    RigidBodySet3D
    , colliders : ColliderSet3D) -> QueryPipelineMut3DReal

    QueryPipelineMut3DReal::as_ref

    QueryPipelineMut3DReal::update

    Ray3

    Real 3D query pipeline (brute-force).

    This query pipeline intentionally iterates all colliders (no BVH yet), but aims to match Rapier's query API surface and semantics for common operations (ray casts, point projections, shape casts).

    RayIntersection

    pub struct RayIntersection {
    toi : Float
    normal :
    Vec2

    }

    RayIntersection::normal

    RayIntersection::toi

    fn RayIntersection::toi(self : RayIntersection) -> Float

    RayIntersection3

    pub struct RayIntersection3 {
    toi : Float
    normal :
    Vec3

    }

    RayIntersection3::toi

    fn RayIntersection3::toi(self : RayIntersection3) -> Float

    RayIntersection3Feature

    pub struct RayIntersection3Feature {
    toi : Float
    normal :
    Vec3

    feature_id : Int
    }

    RayIntersection3Feature::feature_id

    fn RayIntersection3Feature::feature_id(self : RayIntersection3Feature) -> Int

    RayIntersection3Feature::toi

    Shape

    pub(all) enum Shape {
    Ball(Float)
    Cuboid(Float, Float)
    HalfSpace(
    Vec2
    )
    CapsuleX(Float, Float)
    CapsuleY(Float, Float)
    Segment(
    Vec2
    ,
    Vec2
    )
    Polyline(Array[
    Vec2
    ], Array[(Int, Int)]?)
    HeightField(Array[Float],
    Vec2
    )
    ConvexPolygon(Array[
    Vec2
    ])
    TriMesh(Array[
    Vec2
    ], Array[(Int, Int, Int)])
    Compound(Array[(
    Isometry2
    , Shape)])
    Round(
    Ref
    [Shape], Float)
    }

    Shape::voxelized_mesh

    fn Shape::voxelized_mesh(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int)], voxel_size : Float, fill_mode : FillMode) -> Shape

    Shape3D

    pub(all) enum Shape3D {
    Ball(Float)
    Cuboid(
    Vec3
    )
    CapsuleY(Float, Float)
    Cylinder(Float, Float)
    RoundCylinder(Float, Float, Float)
    Cone(Float, Float)
    HalfSpace(
    Vec3
    )
    Triangle(
    Vec3
    ,
    Vec3
    ,
    Vec3
    )
    ConvexHull(Array[
    Vec3
    ], Float)
    Compound(Array[(
    Isometry3
    , Shape3D)])
    Voxels(Voxels3DReal)
    Heightfield(Array[
    Vec3
    ], Array[(Int, Int, Int)], Int, Int, Int)
    TriMesh(Array[
    Vec3
    ], Array[(Int, Int, Int)])
    }

    Shape3D::ball

    fn Shape3D::ball(radius : Float) -> Shape3D

    Shape3D::capsule_y

    fn Shape3D::capsule_y(radius : Float, half_height : Float) -> Shape3D

    Shape3D::cone

    fn Shape3D::cone(radius : Float, half_height : Float) -> Shape3D

    Shape3D::cuboid

    fn Shape3D::cuboid(hx : Float, hy : Float, hz : Float) -> Shape3D

    Shape3D::cylinder

    fn Shape3D::cylinder(radius : Float, half_height : Float) -> Shape3D

    Shape3D::halfspace

    Shape3D::local_aabb

    Shape3D::round_cylinder

    fn Shape3D::round_cylinder(radius : Float, half_height : Float, border_radius : Float) -> Shape3D

    ShapeCastHit

    pub struct ShapeCastHit {
    toi : Float
    point :
    Vec2

    normal :
    Vec2

    }

    ShapeCastHit::normal

    ShapeCastHit::toi

    fn ShapeCastHit::toi(self : ShapeCastHit) -> Float

    ShapeCastHit3

    pub struct ShapeCastHit3 {
    toi : Float
    point :
    Vec3

    normal :
    Vec3

    }

    ShapeCastHit3::normal

    ShapeCastHit3::toi

    fn ShapeCastHit3::toi(self : ShapeCastHit3) -> Float

    ShapeCastOptions

    pub struct ShapeCastOptions {
    max_toi : Float
    target_distance : Float
    stop_at_penetration : Bool
    }
    fn ShapeCastOptions::ShapeCastOptions(max_toi : Float, stop_at_penetration : Bool) -> ShapeCastOptions

    ShapeCastOptions::max_toi

    fn ShapeCastOptions::max_toi(self : ShapeCastOptions) -> Float

    ShapeCastOptions::stop_at_penetration

    fn ShapeCastOptions::stop_at_penetration(self : ShapeCastOptions) -> Bool

    ShapeCastOptions::target_distance

    fn ShapeCastOptions::target_distance(self : ShapeCastOptions) -> Float

    ShapeCastOptions::with_target_distance

    fn ShapeCastOptions::with_target_distance(self : ShapeCastOptions, target_distance : Float) -> ShapeCastOptions

    ShapeCastOptions3

    pub struct ShapeCastOptions3 {
    max_toi : Float
    target_distance : Float
    stop_at_penetration : Bool
    }
    fn ShapeCastOptions3::ShapeCastOptions3(max_toi : Float, stop_at_penetration : Bool) -> ShapeCastOptions3

    ShapeCastOptions3::max_toi

    fn ShapeCastOptions3::max_toi(self : ShapeCastOptions3) -> Float

    ShapeCastOptions3::stop_at_penetration

    fn ShapeCastOptions3::stop_at_penetration(self : ShapeCastOptions3) -> Bool

    ShapeCastOptions3::target_distance

    fn ShapeCastOptions3::target_distance(self : ShapeCastOptions3) -> Float

    ShapeCastOptions3::with_target_distance

    fn ShapeCastOptions3::with_target_distance(self : ShapeCastOptions3, target_distance : Float) -> ShapeCastOptions3

    SharedShape

    #alias(ColliderShape)
    pub struct SharedShape {
    shape : Shape
    }
    fn SharedShape::SharedShape(shape : Shape) -> SharedShape

    SharedShape::as_shape

    fn SharedShape::as_shape(self : SharedShape) -> Shape

    SharedShape::ball

    fn SharedShape::ball(radius : Float) -> SharedShape

    SharedShape::capsule_x

    fn SharedShape::capsule_x(half_height : Float, radius : Float) -> SharedShape

    SharedShape::capsule_y

    fn SharedShape::capsule_y(half_height : Float, radius : Float) -> SharedShape

    SharedShape::cuboid

    fn SharedShape::cuboid(half_width : Float, half_height : Float) -> SharedShape

    SharedShape::heightfield

    fn SharedShape::heightfield(heights : Array[Float], scale :
    Vec2
    ) -> SharedShape

    SharedShape::polyline

    fn SharedShape::polyline(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int)]?) -> SharedShape

    SharedShape::trimesh

    fn SharedShape::trimesh(vertices : Array[
    Vec2
    ], indices : Array[(Int, Int, Int)]) -> SharedShape?

    SolverContact

    pub struct SolverContact {
    point :
    Vec2

    dist : Float
    friction : Float
    restitution : Float
    tangent_velocity :
    Vec2

    }
    fn SolverContact::SolverContact(point :
    Vec2
    , dist : Float) -> SolverContact

    SolverContact::dist

    fn SolverContact::dist(self : SolverContact) -> Float

    SolverContact::friction

    fn SolverContact::friction(self : SolverContact) -> Float

    SolverContact::restitution

    fn SolverContact::restitution(self : SolverContact) -> Float

    SolverContact::set_dist

    fn SolverContact::set_dist(self : SolverContact, dist : Float) -> Unit

    SolverContact::set_friction

    fn SolverContact::set_friction(self : SolverContact, friction : Float) -> Unit

    SolverContact::set_point

    SolverContact::set_restitution

    fn SolverContact::set_restitution(self : SolverContact, restitution : Float) -> Unit

    SolverContact::set_tangent_velocity

    fn SolverContact::set_tangent_velocity(self : SolverContact, tangent_velocity :
    Vec2
    ) -> Unit

    SolverContact::tangent_velocity

    SolverContactGeneric

    #alias(SimdSolverContact)
    pub struct SolverContactGeneric {
    point :
    Vec2

    dist : Float
    friction : Float
    restitution : Float
    tangent_velocity :
    Vec2

    warmstart_impulse : Float
    warmstart_tangent_impulse :
    Vec2

    warmstart_twist_impulse : Float
    is_new : Float
    contact_id : Array[Int]
    }

    Equivalent to Rapier's geometry::contact_pair::SolverContactGeneric.

    This is exposed primarily for pub-surface parity. The solver warmstart fields are currently not written by the narrow-phase in this port.

    SolverContactGeneric::default

    SolverFlags

    pub struct SolverFlags {
    value : Int
    }

    SolverFlags::compute_impulses

    fn SolverFlags::compute_impulses() -> SolverFlags

    SolverFlags::contains

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

    SolverFlags::default

    fn SolverFlags::default() -> SolverFlags

    SolverFlags::empty

    fn SolverFlags::empty() -> SolverFlags

    SolverFlags::insert

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

    SolverFlags::remove

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

    TriMeshFlags

    pub struct TriMeshFlags {
    value : Int
    }

    TriMeshFlags::bits

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

    TriMeshFlags::empty

    fn TriMeshFlags::empty() -> TriMeshFlags

    TriMeshFlags::from_bits

    fn TriMeshFlags::from_bits(bits : Int) -> TriMeshFlags

    VHACDParameters

    pub struct VHACDParameters {
    concavity : Float
    alpha : Float
    beta : Float
    resolution : Int
    plane_downsampling : Int
    convex_hull_downsampling : Int
    fill_mode : FillMode
    convex_hull_approximation : Bool
    max_convex_hulls : Int
    }

    VHACDParameters::alpha

    fn VHACDParameters::alpha(self : VHACDParameters) -> Float

    VHACDParameters::beta

    fn VHACDParameters::beta(self : VHACDParameters) -> Float

    VHACDParameters::concavity

    fn VHACDParameters::concavity(self : VHACDParameters) -> Float

    VHACDParameters::convex_hull_approximation

    fn VHACDParameters::convex_hull_approximation(self : VHACDParameters) -> Bool

    VHACDParameters::convex_hull_downsampling

    fn VHACDParameters::convex_hull_downsampling(self : VHACDParameters) -> Int

    VHACDParameters::default

    VHACDParameters::fill_mode

    fn VHACDParameters::fill_mode(self : VHACDParameters) -> FillMode

    VHACDParameters::max_convex_hulls

    fn VHACDParameters::max_convex_hulls(self : VHACDParameters) -> Int

    VHACDParameters::plane_downsampling

    fn VHACDParameters::plane_downsampling(self : VHACDParameters) -> Int

    VHACDParameters::resolution

    fn VHACDParameters::resolution(self : VHACDParameters) -> Int

    VHACDParameters::set_alpha

    fn VHACDParameters::set_alpha(self : VHACDParameters, alpha : Float) -> VHACDParameters

    VHACDParameters::set_beta

    fn VHACDParameters::set_beta(self : VHACDParameters, beta : Float) -> VHACDParameters

    VHACDParameters::set_concavity

    fn VHACDParameters::set_concavity(self : VHACDParameters, concavity : Float) -> VHACDParameters

    VHACDParameters::set_convex_hull_approximation

    fn VHACDParameters::set_convex_hull_approximation(self : VHACDParameters, convex_hull_approximation : Bool) -> VHACDParameters

    VHACDParameters::set_convex_hull_downsampling

    fn VHACDParameters::set_convex_hull_downsampling(self : VHACDParameters, convex_hull_downsampling : Int) -> VHACDParameters

    VHACDParameters::set_fill_mode

    fn VHACDParameters::set_fill_mode(self : VHACDParameters, fill_mode : FillMode) -> VHACDParameters

    VHACDParameters::set_max_convex_hulls

    fn VHACDParameters::set_max_convex_hulls(self : VHACDParameters, max : Int) -> VHACDParameters

    VHACDParameters::set_plane_downsampling

    fn VHACDParameters::set_plane_downsampling(self : VHACDParameters, plane_downsampling : Int) -> VHACDParameters

    VHACDParameters::set_resolution

    fn VHACDParameters::set_resolution(self : VHACDParameters, resolution : Int) -> VHACDParameters

    Voxels3DReal

    pub struct Voxels3DReal {
    voxel_size :
    Vec3

    columns :
    HashMap
    [(Int, Int), Array[Int]]
    dense_origin_x : Int
    dense_origin_z : Int
    dense_nx : Int
    dense_nz : Int
    dense_columns : Array[Array[Int]?]?
    keys : Array[(Int, Int, Int)]
    key_to_id :
    HashMap
    [(Int, Int, Int), Int]
    min_key : (Int, Int, Int)
    max_key : (Int, Int, Int)
    }

    Dim3 shape set for the real 3D backend.

    Voxels3DReal::column_ys

    fn Voxels3DReal::column_ys(self : Voxels3DReal, ix : Int, iz : Int) -> Array[Int]?

    DYNAMIC_DYNAMIC

    let DYNAMIC_DYNAMIC : Int

    DYNAMIC_FIXED

    let DYNAMIC_FIXED : Int

    DYNAMIC_KINEMATIC

    let DYNAMIC_KINEMATIC : Int

    ENABLED_OR_DISABLED

    let ENABLED_OR_DISABLED : Int

    FIXED_FIXED

    let FIXED_FIXED : Int

    GROUPS

    let GROUPS : Int

    IN_MODIFIED_SET

    let IN_MODIFIED_SET : Int

    KINEMATIC_FIXED

    let KINEMATIC_FIXED : Int

    KINEMATIC_KINEMATIC

    let KINEMATIC_KINEMATIC : Int

    LOCAL_MASS_PROPERTIES

    let LOCAL_MASS_PROPERTIES : Int

    PARENT

    let PARENT : Int

    PARENT_EFFECTIVE_DOMINANCE

    let PARENT_EFFECTIVE_DOMINANCE : Int

    POSITION

    let POSITION : Int

    SHAPE

    let SHAPE : Int

    TYPE

    let TYPE : Int

    compute_ball_ball_contact

    fn compute_ball_ball_contact(center1 :
    Vec3
    , radius1 : Float, center2 :
    Vec3
    , radius2 : Float) -> ContactPoint3D?

    compute_ball_capsule_contact

    fn compute_ball_capsule_contact(ball_center :
    Vec3
    , ball_radius : Float, capsule_pos :
    Isometry3
    , capsule_radius : Float, capsule_half_height : Float) -> ContactPoint3D?

    compute_ball_cone_contact

    fn compute_ball_cone_contact(ball_center :
    Vec3
    , ball_radius : Float, cone_pos :
    Isometry3
    , cone_radius : Float, cone_half_height : Float) -> ContactPoint3D?

    compute_ball_cuboid_contact

    fn compute_ball_cuboid_contact(ball_center :
    Vec3
    , ball_radius : Float, cuboid_pos :
    Isometry3
    , cuboid_half_extents :
    Vec3
    ) -> ContactPoint3D?

    compute_ball_cylinder_contact

    fn compute_ball_cylinder_contact(ball_center :
    Vec3
    , ball_radius : Float, cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float) -> ContactPoint3D?

    compute_ball_heightfield_contact

    fn compute_ball_heightfield_contact(ball_center :
    Vec3
    , ball_radius : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int) -> ContactPoint3D?

    compute_ball_heightfield_contact_with_flags

    fn compute_ball_heightfield_contact_with_flags(ball_center :
    Vec3
    , ball_radius : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int, flags : Int) -> ContactPoint3D?

    compute_ball_trimesh_contact

    fn compute_ball_trimesh_contact(ball_center :
    Vec3
    , ball_radius : Float, mesh_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)]) -> ContactPoint3D?

    compute_ball_voxels_contact

    fn compute_ball_voxels_contact(ball_center :
    Vec3
    , ball_radius : Float, voxels_pos :
    Isometry3
    , voxels : Voxels3DReal) -> ContactPoint3D?

    compute_capsule_capsule_contact

    fn compute_capsule_capsule_contact(pos1 :
    Isometry3
    , r1 : Float, hh1 : Float, pos2 :
    Isometry3
    , r2 : Float, hh2 : Float) -> ContactPoint3D?

    compute_capsule_cuboid_contact

    fn compute_capsule_cuboid_contact(capsule_pos :
    Isometry3
    , capsule_radius : Float, capsule_half_height : Float, cuboid_pos :
    Isometry3
    , cuboid_half_extents :
    Vec3
    ) -> ContactPoint3D?

    compute_capsule_heightfield_contact

    fn compute_capsule_heightfield_contact(capsule_pos :
    Isometry3
    , capsule_radius : Float, capsule_half_height : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int) -> ContactPoint3D?

    compute_capsule_heightfield_contact_with_flags

    fn compute_capsule_heightfield_contact_with_flags(capsule_pos :
    Isometry3
    , capsule_radius : Float, capsule_half_height : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int, flags : Int) -> ContactPoint3D?

    compute_capsule_trimesh_contact

    fn compute_capsule_trimesh_contact(capsule_pos :
    Isometry3
    , capsule_radius : Float, capsule_half_height : Float, mesh_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)]) -> ContactPoint3D?

    compute_capsule_voxels_contact

    fn compute_capsule_voxels_contact(capsule_pos :
    Isometry3
    , capsule_radius : Float, capsule_half_height : Float, voxels_pos :
    Isometry3
    , voxels : Voxels3DReal) -> ContactPoint3D?

    compute_cone_cone_contact

    fn compute_cone_cone_contact(cone1_pos :
    Isometry3
    , cone1_radius : Float, cone1_half_height : Float, cone2_pos :
    Isometry3
    , cone2_radius : Float, cone2_half_height : Float) -> ContactPoint3D?

    compute_cone_cuboid_contact

    fn compute_cone_cuboid_contact(cone_pos :
    Isometry3
    , cone_radius : Float, cone_half_height : Float, cuboid_pos :
    Isometry3
    , cuboid_half_extents :
    Vec3
    ) -> ContactPoint3D?

    compute_cone_cylinder_contact

    fn compute_cone_cylinder_contact(cone_pos :
    Isometry3
    , cone_radius : Float, cone_half_height : Float, cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float) -> ContactPoint3D?

    compute_cone_heightfield_contact

    fn compute_cone_heightfield_contact(cone_pos :
    Isometry3
    , cone_radius : Float, cone_half_height : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int) -> ContactPoint3D?

    compute_cone_heightfield_contact_with_flags

    fn compute_cone_heightfield_contact_with_flags(cone_pos :
    Isometry3
    , cone_radius : Float, cone_half_height : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int, flags : Int) -> ContactPoint3D?

    compute_cone_trimesh_contact

    fn compute_cone_trimesh_contact(cone_pos :
    Isometry3
    , cone_radius : Float, cone_half_height : Float, mesh_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)]) -> ContactPoint3D?

    compute_cone_voxels_contact

    fn compute_cone_voxels_contact(cone_pos :
    Isometry3
    , cone_radius : Float, cone_half_height : Float, voxels_pos :
    Isometry3
    , voxels : Voxels3DReal) -> ContactPoint3D?

    compute_convex_contact

    compute_cuboid_heightfield_contact

    fn compute_cuboid_heightfield_contact(cuboid_pos :
    Isometry3
    , cuboid_half_extents :
    Vec3
    , heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int) -> ContactPoint3D?

    compute_cuboid_heightfield_contact_with_flags

    fn compute_cuboid_heightfield_contact_with_flags(cuboid_pos :
    Isometry3
    , cuboid_half_extents :
    Vec3
    , heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int, flags : Int) -> ContactPoint3D?

    compute_cuboid_triangle_contact

    Cuboid-vs-triangle contact helper.

    A triangle is treated as a surface (like a mesh triangle). This uses a standard triangle-vs-OBB overlap test (SAT, Ericson 5.2.9) and produces a single contact point suitable for the current solver.

    compute_cuboid_triangle_contacts

    Cuboid-vs-triangle contact manifold helper.

    This clips the triangle by the cuboid OBB volume (in cuboid local-space) and generates multiple contact points from the resulting intersection polygon.

    compute_cuboid_trimesh_contact

    fn compute_cuboid_trimesh_contact(cuboid_pos :
    Isometry3
    , cuboid_half_extents :
    Vec3
    , mesh_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)]) -> ContactPoint3D?

    compute_cuboid_voxels_contact

    compute_cylinder_cuboid_contact

    fn compute_cylinder_cuboid_contact(cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float, cuboid_pos :
    Isometry3
    , cuboid_half_extents :
    Vec3
    ) -> ContactPoint3D?

    compute_cylinder_cylinder_contact

    fn compute_cylinder_cylinder_contact(cyl1_pos :
    Isometry3
    , cyl1_radius : Float, cyl1_half_height : Float, cyl2_pos :
    Isometry3
    , cyl2_radius : Float, cyl2_half_height : Float) -> ContactPoint3D?

    compute_cylinder_heightfield_contact

    fn compute_cylinder_heightfield_contact(cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int) -> ContactPoint3D?

    compute_cylinder_heightfield_contact_with_flags

    fn compute_cylinder_heightfield_contact_with_flags(cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int, flags : Int) -> ContactPoint3D?

    compute_cylinder_trimesh_contact

    fn compute_cylinder_trimesh_contact(cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float, mesh_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)]) -> ContactPoint3D?

    compute_cylinder_voxels_contact

    fn compute_cylinder_voxels_contact(cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float, voxels_pos :
    Isometry3
    , voxels : Voxels3DReal) -> ContactPoint3D?

    compute_halfspace_contact

    fn compute_halfspace_contact(halfspace_pos :
    Isometry3
    , halfspace_normal_local :
    Vec3
    , other_pos :
    Isometry3
    , other_shape : Shape3D) -> ContactPoint3D?

    compute_round_cylinder_heightfield_contact

    fn compute_round_cylinder_heightfield_contact(cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float, border_radius : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int) -> ContactPoint3D?

    compute_round_cylinder_heightfield_contact_with_flags

    fn compute_round_cylinder_heightfield_contact_with_flags(cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float, border_radius : Float, heightfield_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int, flags : Int) -> ContactPoint3D?

    compute_round_cylinder_trimesh_contact

    fn compute_round_cylinder_trimesh_contact(cyl_pos :
    Isometry3
    , cyl_radius : Float, cyl_half_height : Float, border_radius : Float, mesh_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], indices : Array[(Int, Int, Int)]) -> ContactPoint3D?

    handle_user_changes_to_colliders

    fn handle_user_changes_to_colliders(bodies :
    RigidBodySet
    , colliders : ColliderSet, modified_colliders : Array[ColliderHandle]) -> Unit

    handle_user_changes_to_colliders3

    fn handle_user_changes_to_colliders3(bodies :
    RigidBodySet3
    , colliders : ColliderSet3, modified_colliders : Array[ColliderHandle]) -> Unit

    heightfield_closest_point_query

    Heightfield variant of trimesh_closest_point_query.

    heightfield_closest_point_query_with_flags

    fn heightfield_closest_point_query_with_flags(p :
    Vec3
    , mesh_pos :
    Isometry3
    , vertices : Array[
    Vec3
    ], nrows : Int, ncols : Int, flags : Int) -> (
    Vec3
    ,
    Vec3
    , Float)?

    Heightfield variant of trimesh_closest_point_query with explicit HeightFieldFlags bits.

    trimesh_closest_point_query

    Returns the closest point on a triangle mesh to p (in world-space), along with the triangle normal (world-space) and the squared distance.

    This is a building block for query pipeline operations (point projection, swept-sphere conservative advancement against meshes).