Sign in

    Milky2018/moon_rapier/pipeline does not have a README file

    ChannelEventCollector

    pub struct ChannelEventCollector {
    handler : EventHandler
    }
    fn ChannelEventCollector::ChannelEventCollector() -> ChannelEventCollector

    ChannelEventCollector::take_collision_events

    ChannelEventCollector::take_contact_force_events

    ChannelEventCollector::take_intersection_events

    CollisionPipeline

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

    CollisionPipeline3

    pub struct CollisionPipeline3 {
    inner : CollisionPipeline
    }
    fn CollisionPipeline3::CollisionPipeline3() -> CollisionPipeline3

    3D-flavored collision pipeline.

    This is a thin wrapper around the existing 2D CollisionPipeline used to port the rapier-reference dim3 unit tests.

    ContactImpulse3D

    pub struct ContactImpulse3D {
    normal : Float
    tangent1 : Float
    tangent2 : Float
    }

    ContactImpulse3D::scaled

    fn ContactImpulse3D::scaled(self : ContactImpulse3D, coeff : Float) -> ContactImpulse3D

    ContactImpulse3D::zero

    ContactModificationContext

    ContactModificationContext::set_normal

    ContactModificationContext::set_user_data

    fn ContactModificationContext::set_user_data(self : ContactModificationContext, user_data : Int) -> Unit

    ContactModificationContext::update_as_oneway_platform

    fn ContactModificationContext::update_as_oneway_platform(self : ContactModificationContext, allowed_local_n1 :
    Vec2
    , allowed_angle : Float) -> Unit

    ContactSolverCache3D

    pub struct ContactSolverCache3D {
    entries :
    HashMap
    [(Int, Int, Int, Int), Array[(
    Vec3
    ,
    Vec3
    , ContactImpulse3D)]]
    }
    fn ContactSolverCache3D::ContactSolverCache3D() -> ContactSolverCache3D

    ContactSolverCache3D::clear

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

    DebugColor

    pub struct DebugColor {
    h : Float
    s : Float
    l : Float
    a : Float
    }
    fn DebugColor::DebugColor(h : Float, s : Float, l : Float, a : Float) -> DebugColor

    DebugRenderBackend

    pub struct DebugRenderBackend {
    lines : Array[DebugRenderLine]
    }
    fn DebugRenderBackend::DebugRenderBackend() -> DebugRenderBackend

    DebugRenderBackend::draw_line

    DebugRenderBackend::draw_line_strip

    fn DebugRenderBackend::draw_line_strip(self : DebugRenderBackend, object : DebugRenderObject, vertices : Array[
    Vec2
    ], color : DebugColor, closed : Bool) -> Unit

    DebugRenderBackend::draw_polyline

    fn DebugRenderBackend::draw_polyline(self : DebugRenderBackend, object : DebugRenderObject, vertices : Array[
    Vec2
    ], color : DebugColor, closed : Bool) -> Unit

    DebugRenderBackend::filter_object

    fn DebugRenderBackend::filter_object(self : DebugRenderBackend, object : DebugRenderObject) -> Bool

    DebugRenderBackend::lines

    DebugRenderBackend::serialize_lines

    fn DebugRenderBackend::serialize_lines(self : DebugRenderBackend) -> String

    DebugRenderLine

    DebugRenderMode

    pub struct DebugRenderMode {
    bits : Int
    }

    DebugRenderMode::all

    DebugRenderMode::collider_aabbs

    fn DebugRenderMode::collider_aabbs() -> DebugRenderMode

    DebugRenderMode::collider_shapes

    fn DebugRenderMode::collider_shapes() -> DebugRenderMode

    DebugRenderMode::contacts

    DebugRenderMode::contains

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

    DebugRenderMode::default

    DebugRenderMode::empty

    DebugRenderMode::impulse_joints

    fn DebugRenderMode::impulse_joints() -> DebugRenderMode

    DebugRenderMode::insert

    DebugRenderMode::joints

    DebugRenderMode::multibody_joints

    fn DebugRenderMode::multibody_joints() -> DebugRenderMode

    DebugRenderMode::remove

    DebugRenderMode::rigid_body_axes

    fn DebugRenderMode::rigid_body_axes() -> DebugRenderMode

    DebugRenderMode::solver_contacts

    fn DebugRenderMode::solver_contacts() -> DebugRenderMode

    DebugRenderPipeline

    pub struct DebugRenderPipeline {
    style : DebugRenderStyle
    mode : DebugRenderMode
    }
    fn DebugRenderPipeline::DebugRenderPipeline(style : DebugRenderStyle, mode : DebugRenderMode) -> DebugRenderPipeline

    DebugRenderPipeline::default

    DebugRenderPipeline::render_all

    DebugRenderPipeline::render_colliders

    DebugRenderPipeline::render_contacts

    DebugRenderPipeline::render_rigid_bodies

    DebugRenderStyle

    pub struct DebugRenderStyle {
    subdivisions : Int
    border_subdivisions : Int
    collider_dynamic_color : DebugColor
    collider_fixed_color : DebugColor
    collider_kinematic_color : DebugColor
    collider_parentless_color : DebugColor
    impulse_joint_anchor_color : DebugColor
    impulse_joint_separation_color : DebugColor
    multibody_joint_anchor_color : DebugColor
    multibody_joint_separation_color : DebugColor
    sleep_color_multiplier : DebugColor
    disabled_color_multiplier : DebugColor
    rigid_body_axes_length : Float
    contact_depth_color : DebugColor
    contact_normal_color : DebugColor
    contact_normal_length : Float
    collider_aabb_color : DebugColor
    }

    DebugRenderStyle::default

    EventHandler

    EventHandler::push_collision_event

    EventHandler::push_contact_force_event

    EventHandler::push_intersection_event

    EventHandler::take_collision_events

    EventHandler::take_contact_force_events

    EventHandler::take_intersection_events

    EventHandler3D

    EventHandler3D::push_collision_event

    EventHandler3D::push_contact_force_event

    EventHandler3D::push_intersection_event

    EventHandler3D::take_collision_events

    EventHandler3D::take_contact_force_events

    EventHandler3D::take_intersection_events

    PhysicsHooks

    pub struct PhysicsHooks {
    filter_contact_pair : (
    RigidBodySet
    ,
    ColliderSet
    ,
    ColliderHandle
    ,
    ColliderHandle
    ) -> Bool?
    filter_intersection_pair : (
    RigidBodySet
    ,
    ColliderSet
    ,
    ColliderHandle
    ,
    ColliderHandle
    ) -> Bool?
    modify_solver_contacts : (
    RigidBodySet
    ,
    ColliderSet
    ,
    ColliderHandle
    ,
    ColliderHandle
    ,
    ContactManifold
    ) -> (Bool,
    Vec2
    )?
    modify_solver_contacts_with_solver_contacts : (
    RigidBodySet
    ,
    ColliderSet
    ,
    ColliderHandle
    ,
    ColliderHandle
    ,
    ContactManifold
    , Array[
    SolverContact
    ],
    SolverFlags
    ) ->
    SolverFlags
    ?
    }
    fn PhysicsHooks::PhysicsHooks() -> PhysicsHooks

    PhysicsHooks3D

    PhysicsPipeline3

    pub struct PhysicsPipeline3 {
    inner : PhysicsPipeline
    }
    fn PhysicsPipeline3::PhysicsPipeline3() -> PhysicsPipeline3

    PhysicsPipeline3D

    pub struct PhysicsPipeline3D {
    inner : PhysicsPipeline3DReal
    }
    fn PhysicsPipeline3D::PhysicsPipeline3D() -> PhysicsPipeline3D

    Real dim3 physics pipeline (broadphase + narrowphase + contact solver).

    This is the public 3D pipeline entrypoint. Internally it delegates to the incremental 3D backend implementation (PhysicsPipeline3DReal).

    PhysicsPipeline3D::step_integration_only

    Integration-only step retained as a lightweight helper.

    PhysicsPipeline3DReal

    Real dim3 physics pipeline (broadphase + narrowphase + contact solver).

    This is an incremental replacement for the current dim3 compatibility layer.

    SolverBodies

    pub struct SolverBodies {
    vels : Array[SolverVel]
    poses : Array[SolverPose]
    }

    SolverBodies::clear

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

    SolverBodies::copy_from

    Copy the current rigid-body velocity/pose into this solver slot.

    SolverBodies::default

    fn SolverBodies::default() -> SolverBodies

    SolverBodies::len

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

    SolverBodies::resize

    fn SolverBodies::resize(self : SolverBodies, sz : Int) -> Unit

    SolverBodies::writeback_vels

    Write back solver velocities into the live rigid bodies.

    This mirrors Rapier's "scatter solver vels" step and is required because the sequential impulse solvers operate on SolverBodies.vels rather than mutating RigidBodySet directly.

    SolverPose

    pub struct SolverPose {
    translation :
    Vec2

    rotation :
    Rot2

    im :
    Vec2

    ii : Float
    padding : Float
    }

    SolverPose::zero

    fn SolverPose::zero() -> SolverPose

    SolverVel

    pub struct SolverVel {
    linear :
    Vec2

    angular : Float
    }

    SolverVel::zero

    fn SolverVel::zero() -> SolverVel

    parallel_enabled

    fn parallel_enabled() -> Bool

    Feature parity note:
    • Rapier's parallel feature (rayon) is not available in this MoonBit port.
    • Rapier's simd-stable / simd-nightly features are not available in this MoonBit port.

    This port always runs deterministically on a single thread. Public APIs are provided with sequential semantics, and tests must not depend on parallel scheduling.

    parallel_strategy

    fn parallel_strategy() -> String

    remove_rigid_body

    Remove a rigid-body like Rapier's RigidBodySet::remove, but without introducing a dependency from dynamics to collision (those packages depend on each other in this port).

    simd_enabled

    fn simd_enabled() -> Bool

    simd_strategy

    fn simd_strategy() -> String