Milky2018/moon_rapier/collision does not have a README file
type ColliderGraphIndex = Intpub struct ActiveCollisionTypes {
value : Int
}fn ActiveCollisionTypes::passes(self : ActiveCollisionTypes, body_type1 : RigidBodyType, body_type2 : RigidBodyType) -> Boolfn ActiveCollisionTypes::test_body_types(self : ActiveCollisionTypes, body_type1 : RigidBodyType, body_type2 : RigidBodyType) -> Boolpub struct ActiveEvents {
bits : Int
}pub struct ActiveHooks {
value : Int
}pub struct BroadPhase3D {
pairs : Array[(ColliderHandle3D, ColliderHandle3D)]
prev_pairs : Array[(ColliderHandle3D, ColliderHandle3D)]
events : Array[BroadPhasePairEvent3D]
}
fn BroadPhase3D::BroadPhase3D() -> BroadPhase3Dfn BroadPhase3D::update(self : BroadPhase3D, prediction_distance : Float, colliders : ColliderSet3D) -> Unit#alias(DefaultBroadPhase)
pub struct BroadPhaseBvh {
optimization_strategy : BvhOptimizationStrategy
pairs : Array[(ColliderHandle, ColliderHandle)]
events : Array[BroadPhasePairEvent]
override_aabbs : Array[(ColliderHandle, Aabb)]
}
fn BroadPhaseBvh::BroadPhaseBvh() -> BroadPhaseBvhfn BroadPhaseBvh::as_query_pipeline(self : BroadPhaseBvh, bodies : RigidBodySet, colliders : ColliderSet, filter : QueryFilter) -> QueryPipelinefn BroadPhaseBvh::as_query_pipeline_mut(self : BroadPhaseBvh, bodies : RigidBodySet, colliders : ColliderSet, filter : QueryFilter) -> QueryPipelineMutfn BroadPhaseBvh::update(self : BroadPhaseBvh, prediction_distance : Float, bodies : RigidBodySet, colliders : ColliderSet) -> Unitfn BroadPhaseBvh::update3(self : BroadPhaseBvh, prediction_distance : Float, bodies : RigidBodySet3, colliders : ColliderSet3) -> Unitfn BroadPhaseBvh::with_optimization_strategy(optimization_strategy : BvhOptimizationStrategy) -> BroadPhaseBvhpub(all) enum BvhOptimizationStrategy {
SubtreeOptimizer
None
}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
}fn Collider::compute_broad_phase_aabb(self : Collider, params : IntegrationParameters, bodies : RigidBodySet) -> Aabbfn Collider::set_restitution_combine_rule(self : Collider, rule : CoefficientCombineRule) -> Colliderpub 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
}fn Collider3D::set_active_collision_types(self : Collider3D, types : ActiveCollisionTypes) -> Collider3Dfn Collider3D::set_contact_force_event_threshold(self : Collider3D, threshold : Float) -> Collider3Dfn Collider3D::set_friction_combine_rule(self : Collider3D, rule : CoefficientCombineRule) -> Collider3Dfn Collider3D::set_restitution_combine_rule(self : Collider3D, rule : CoefficientCombineRule) -> Collider3Dpub 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) -> ColliderBuilderfn ColliderBuilder::active_collision_types(self : ColliderBuilder, types : ActiveCollisionTypes) -> ColliderBuilderfn ColliderBuilder::collision_groups(self : ColliderBuilder, groups : InteractionGroups) -> ColliderBuilderfn ColliderBuilder::contact_force_event_threshold(self : ColliderBuilder, threshold : Float) -> ColliderBuilderfn ColliderBuilder::converted_trimesh(vertices : Array[Vec2], indices : Array[(Int, Int, Int)], converter : MeshConverter) -> Result[ColliderBuilder, MeshConverterError]fn ColliderBuilder::convex_decomposition_with_params(vertices : Array[Vec2], indices : Array[(Int, Int)], params : VHACDParameters) -> ColliderBuilderfn ColliderBuilder::friction_combine_rule(self : ColliderBuilder, rule : CoefficientCombineRule) -> ColliderBuilderfn ColliderBuilder::polyline(vertices : Array[Vec2], indices : Array[(Int, Int)]?) -> ColliderBuilderfn ColliderBuilder::restitution_combine_rule(self : ColliderBuilder, rule : CoefficientCombineRule) -> ColliderBuilderfn ColliderBuilder::round_convex_decomposition_with_params(vertices : Array[Vec2], indices : Array[(Int, Int)], params : VHACDParameters, border_radius : Float) -> ColliderBuilderfn ColliderBuilder::round_convex_hull(points : Array[Vec2], border_radius : Float) -> ColliderBuilder?fn ColliderBuilder::round_convex_polyline(points : Array[Vec2], border_radius : Float) -> ColliderBuilder?fn ColliderBuilder::round_cuboid(half_width : Float, half_height : Float, border_radius : Float) -> ColliderBuilderfn ColliderBuilder::round_triangle(a : Vec2, b : Vec2, c : Vec2, border_radius : Float) -> ColliderBuilderfn ColliderBuilder::solver_groups(self : ColliderBuilder, groups : InteractionGroups) -> ColliderBuilderfn ColliderBuilder::trimesh(vertices : Array[Vec2], indices : Array[(Int, Int, Int)]) -> ColliderBuilder?fn ColliderBuilder::trimesh_with_flags(vertices : Array[Vec2], indices : Array[(Int, Int, Int)], _flags : TriMeshFlags) -> ColliderBuilder?fn ColliderBuilder::voxelized_mesh(vertices : Array[Vec2], indices : Array[(Int, Int)], voxel_size : Float, fill_mode : FillMode) -> ColliderBuilder#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
}fn ColliderBuilder3D::active_collision_types(self : ColliderBuilder3D, types : ActiveCollisionTypes) -> ColliderBuilder3Dfn ColliderBuilder3D::active_events(self : ColliderBuilder3D, active_events : ActiveEvents) -> ColliderBuilder3Dfn ColliderBuilder3D::active_hooks(self : ColliderBuilder3D, hooks : ActiveHooks) -> ColliderBuilder3Dfn ColliderBuilder3D::collision_groups(self : ColliderBuilder3D, groups : InteractionGroups) -> ColliderBuilder3Dfn ColliderBuilder3D::contact_force_event_threshold(self : ColliderBuilder3D, threshold : Float) -> ColliderBuilder3Dfn ColliderBuilder3D::convex_decomposition(vertices : Array[Vec3], indices : Array[(Int, Int, Int)]) -> ColliderBuilder3D?fn ColliderBuilder3D::convex_mesh(vertices : Array[Vec3], indices : Array[(Int, Int, Int)]) -> ColliderBuilder3D?fn ColliderBuilder3D::friction_combine_rule(self : ColliderBuilder3D, rule : CoefficientCombineRule) -> ColliderBuilder3Dfn ColliderBuilder3D::heightfield(heights : Array[Float], nrows : Int, ncols : Int, scale : Vec3) -> ColliderBuilder3D?fn ColliderBuilder3D::heightfield_with_flags(heights : Array[Float], nrows : Int, ncols : Int, scale : Vec3, flags : Int) -> ColliderBuilder3D?fn ColliderBuilder3D::local_position(self : ColliderBuilder3D, pos : Isometry3) -> ColliderBuilder3Dfn ColliderBuilder3D::restitution(self : ColliderBuilder3D, restitution : Float) -> ColliderBuilder3Dfn ColliderBuilder3D::restitution_combine_rule(self : ColliderBuilder3D, rule : CoefficientCombineRule) -> ColliderBuilder3Dfn ColliderBuilder3D::round_cone(radius : Float, half_height : Float, border_radius : Float) -> ColliderBuilder3Dfn ColliderBuilder3D::round_convex_decomposition(vertices : Array[Vec3], indices : Array[(Int, Int, Int)], border_radius : Float) -> ColliderBuilder3D?fn ColliderBuilder3D::round_convex_hull(points : Array[Vec3], border_radius : Float) -> ColliderBuilder3D?fn ColliderBuilder3D::round_convex_mesh(vertices : Array[Vec3], indices : Array[(Int, Int, Int)], border_radius : Float) -> ColliderBuilder3D?fn ColliderBuilder3D::round_cylinder(radius : Float, half_height : Float, border_radius : Float) -> ColliderBuilder3Dfn ColliderBuilder3D::solver_groups(self : ColliderBuilder3D, groups : InteractionGroups) -> ColliderBuilder3Dfn ColliderBuilder3D::trimesh(vertices : Array[Vec3], indices : Array[(Int, Int, Int)]) -> ColliderBuilder3D?fn ColliderBuilder3D::user_data128(self : ColliderBuilder3D, data : UserData128) -> ColliderBuilder3Dfn ColliderBuilder3D::voxels_from_points(voxel_size : Vec3, points : Array[Vec3]) -> ColliderBuilder3D?pub struct ColliderChanges {
bits : Int
}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) -> ColliderFlagspub struct ColliderHandle {
id : Int
generation : Int
}pub struct ColliderHandle3D {
id : Int
generation : Int
}pub struct ColliderMaterial {
friction : Float
restitution : Float
friction_combine_rule : CoefficientCombineRule
restitution_combine_rule : CoefficientCombineRule
}
fn ColliderMaterial::ColliderMaterial(friction : Float, restitution : Float) -> ColliderMaterialpub struct ColliderPair {
collider1 : ColliderHandle
collider2 : ColliderHandle
}
fn ColliderPair::ColliderPair(a : ColliderHandle, b : ColliderHandle) -> ColliderPairpub struct ColliderPair3D {
collider1 : ColliderHandle3D
collider2 : ColliderHandle3D
}
fn ColliderPair3D::ColliderPair3D(collider1 : ColliderHandle3D, collider2 : ColliderHandle3D) -> ColliderPair3Dpub struct ColliderParent {
handle : RigidBodyHandle
pos_wrt_parent : Isometry2
}
fn ColliderParent::ColliderParent(handle : RigidBodyHandle, pos_wrt_parent : Isometry2) -> ColliderParentpub struct ColliderPosition {
position : Isometry2
}
fn ColliderPosition::ColliderPosition(position : Isometry2) -> ColliderPositionpub struct ColliderSet {
colliders : Array[Collider?]
generations : Array[Int]
free_list : Array[Int]
modified_colliders : Array[ColliderHandle]
removed_colliders : Array[ColliderHandle]
}
fn ColliderSet::ColliderSet() -> ColliderSetfn ColliderSet::apply_pending_body_position_propagation(self : ColliderSet, bodies : RigidBodySet) -> Unitfn ColliderSet::colliders_with_parent(self : ColliderSet, parent : RigidBodyHandle) -> Array[ColliderHandle]fn ColliderSet::get_mut_internal_with_modification_tracking(self : ColliderSet, handle : ColliderHandle) -> Collider?fn ColliderSet::insert_with_parent(self : ColliderSet, collider : Collider, parent : RigidBodyHandle, bodies : RigidBodySet) -> ColliderHandlefn ColliderSet::remove(self : ColliderSet, handle : ColliderHandle, islands : IslandManager, bodies : RigidBodySet, wake_up : Bool) -> Unitfn ColliderSet::set_parent(self : ColliderSet, handle : ColliderHandle, parent : RigidBodyHandle?, bodies : RigidBodySet) -> Unitfn ColliderSet::set_parent_enabled(self : ColliderSet, parent : RigidBodyHandle, enabled : Bool) -> Unitfn ColliderSet3::clear_changes_for(self : ColliderSet3, modified_colliders : Array[ColliderHandle]) -> Unitfn ColliderSet3::colliders_with_parent(self : ColliderSet3, parent : RigidBodyHandle) -> Array[ColliderHandle]fn ColliderSet3::insert_with_parent(self : ColliderSet3, collider : Collider, parent : RigidBodyHandle, bodies : RigidBodySet3) -> ColliderHandlefn ColliderSet3::remove(self : ColliderSet3, handle : ColliderHandle, islands : IslandManager3, bodies : RigidBodySet3, wake_up : Bool) -> Unitfn ColliderSet3::set_parent(self : ColliderSet3, handle : ColliderHandle, parent : RigidBodyHandle?, bodies : RigidBodySet3) -> Unitfn ColliderSet3::set_parent_enabled(self : ColliderSet3, handle : RigidBodyHandle, enabled : Bool) -> Unitpub struct ColliderSet3D {
colliders : Array[Collider3D?]
generations : Array[Int]
free_list : Array[Int]
}
fn ColliderSet3D::ColliderSet3D() -> ColliderSet3Dfn ColliderSet3D::insert_with_parent(self : ColliderSet3D, collider : Collider3D, parent : RigidBodyHandle, bodies : RigidBodySet3D) -> ColliderHandle3Dfn ColliderSet3D::remove_attached_to(self : ColliderSet3D, parent : RigidBodyHandle) -> Array[ColliderHandle3D]fn ColliderSet3D::set_parent(self : ColliderSet3D, handle : ColliderHandle3D, parent : RigidBodyHandle?, bodies : RigidBodySet3D) -> Unitpub(all) enum ColliderType {
Solid
Sensor
}pub(all) enum CollisionEvent {
Started(ColliderHandle, ColliderHandle, CollisionEventFlags)
Stopped(ColliderHandle, ColliderHandle, CollisionEventFlags)
}pub(all) enum CollisionEvent3D {
Started(ColliderHandle3D, ColliderHandle3D, CollisionEventFlags)
Stopped(ColliderHandle3D, ColliderHandle3D, CollisionEventFlags)
}pub struct CollisionEventFlags {
bits : Int
}fn CollisionEventFlags::insert(self : CollisionEventFlags, other : CollisionEventFlags) -> CollisionEventFlagspub(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) -> ContactDatapub 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) -> ContactForceEventfn ContactForceEvent::from_contact_pair(dt : Float, collider1 : ColliderHandle, collider2 : ColliderHandle, pair : ContactPair, total_force_magnitude : Float) -> ContactForceEventpub 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) -> ContactForceEvent3Dfn ContactForceEvent3D::from_contact_pair(dt : Float, collider1 : ColliderHandle3D, collider2 : ColliderHandle3D, pair : ContactPair3D, total_force_magnitude : Float) -> ContactForceEvent3Dpub struct ContactManifold {
normal : Vec2
points : Array[ContactManifoldPoint]
}
fn ContactManifold::ContactManifold(normal : Vec2, points : Array[ContactManifoldPoint]) -> ContactManifoldpub struct ContactManifoldData {
solver_flags : SolverFlags
solver_contacts : Array[SolverContactGeneric]
relative_dominance : Int
}#alias(Contact)
pub struct ContactManifoldPoint {
local_p1 : Vec2
local_p2 : Vec2
dist : Float
fid1 : FeatureId
fid2 : FeatureId
data : ContactData
}fn ContactPair::find_deepest_contact(self : ContactPair) -> (ContactManifold, ContactManifoldPoint)?pub(all) enum FillMode {
SurfaceOnly
FloodFill(Bool, Bool)
}pub struct HeightField {
heights : Array[Float]
scale : Vec2
}
fn HeightField::HeightField(heights : Array[Float], scale : Vec2) -> HeightFieldpub struct InteractionGraph[T] {
interactions : Array[(ColliderHandle, ColliderHandle, T)]
}
fn InteractionGraph::InteractionGraph() -> InteractionGraph[T]fn[T] InteractionGraph::index_interaction(self : InteractionGraph[T], a : ColliderHandle, b : ColliderHandle) -> Int?fn[T] InteractionGraph::interaction_pair(self : InteractionGraph[T], a : ColliderHandle, b : ColliderHandle) -> T?fn[T] InteractionGraph::interaction_pair_mut(self : InteractionGraph[T], a : ColliderHandle, b : ColliderHandle) -> T?fn[T] InteractionGraph::interactions(self : InteractionGraph[T]) -> Array[(ColliderHandle, ColliderHandle, T)]fn[T] InteractionGraph::interactions_with(self : InteractionGraph[T], collider : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, T)]fn[T] InteractionGraph::interactions_with_endpoints(self : InteractionGraph[T], collider1 : ColliderHandle, collider2 : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, T)]fn[T] InteractionGraph::interactions_with_mut(self : InteractionGraph[T], collider : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, T)]fn[T] InteractionGraph::raw_graph(self : InteractionGraph[T]) -> Array[(ColliderHandle, ColliderHandle, T)]pub struct IntersectionEvent {
collider1 : ColliderHandle
collider2 : ColliderHandle
intersecting : Bool
}
fn IntersectionEvent::IntersectionEvent(collider1 : ColliderHandle, collider2 : ColliderHandle, intersecting : Bool) -> IntersectionEventpub struct IntersectionEvent3D {
collider1 : ColliderHandle3D
collider2 : ColliderHandle3D
intersecting : Bool
}
fn IntersectionEvent3D::IntersectionEvent3D(collider1 : ColliderHandle3D, collider2 : ColliderHandle3D, intersecting : Bool) -> IntersectionEvent3Dpub struct IntersectionPair {
collider1 : ColliderHandle
collider2 : ColliderHandle
intersecting : Bool
}pub struct IntersectionPair3D {
collider1 : ColliderHandle3D
collider2 : ColliderHandle3D
intersecting : Bool
}pub(all) enum MeshConverter {
TriMesh
TriMeshWithFlags(TriMeshFlags)
Aabb
Obb
ConvexHull
ConvexDecomposition
ConvexDecompositionWithParams(VHACDParameters)
}fn MeshConverter::apply(self : MeshConverter, vertices : Array[Vec2], indices : Array[(Int, Int, Int)]) -> Result[(SharedShape, Isometry2), MeshConverterError]fn MeshConverter::convert(self : MeshConverter, vertices : Array[Vec2], indices : Array[(Int, Int, Int)]) -> Result[(SharedShape, Isometry2), MeshConverterError]pub(all) enum MeshConverterError {
ConvexHullFailed
TriMeshBuilderError
EmptyVertices
}pub struct NarrowPhase {
intersections : Array[IntersectionPair]
contacts : Array[(ColliderHandle, ColliderHandle, ContactPair)]
query_dispatcher : QueryDispatcher
}
fn NarrowPhase::NarrowPhase() -> NarrowPhasefn NarrowPhase::contact_pair(self : NarrowPhase, first : ColliderHandle, second : ColliderHandle) -> ContactPair?fn NarrowPhase::contact_pair_at_index(self : NarrowPhase, index : Int) -> (ColliderHandle, ColliderHandle, ContactPair)?fn NarrowPhase::contact_pair_unknown_gen(self : NarrowPhase, first : ColliderHandle, second : ColliderHandle) -> ContactPair?fn NarrowPhase::contact_pairs(self : NarrowPhase) -> Array[(ColliderHandle, ColliderHandle, ContactPair)]fn NarrowPhase::contact_pairs_with(self : NarrowPhase, handle : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, ContactPair)]fn NarrowPhase::contact_pairs_with_unknown_gen(self : NarrowPhase, collider : ColliderHandle) -> Array[(ColliderHandle, ColliderHandle, ContactPair)]fn NarrowPhase::handle_user_changes(self : NarrowPhase, bodies : RigidBodySet, colliders : ColliderSet, modified_colliders : Array[ColliderHandle]) -> Unitfn NarrowPhase::intersection_pair(self : NarrowPhase, first : ColliderHandle, second : ColliderHandle) -> IntersectionPair?fn NarrowPhase::intersection_pair_unknown_gen(self : NarrowPhase, first : ColliderHandle, second : ColliderHandle) -> IntersectionPair?fn NarrowPhase::intersection_pairs_with(self : NarrowPhase, handle : ColliderHandle) -> Array[IntersectionPair]fn NarrowPhase::intersection_pairs_with_unknown_gen(self : NarrowPhase, collider : ColliderHandle) -> Array[IntersectionPair]fn NarrowPhase::update(self : NarrowPhase, bodies : RigidBodySet, colliders : ColliderSet, impulse_joints : ImpulseJointSet, multibody_joints : MultibodyJointSet) -> Unitfn NarrowPhase::update_with_pairs(self : NarrowPhase, bodies : RigidBodySet, colliders : ColliderSet, prediction_distance : Float, pairs : Array[(ColliderHandle, ColliderHandle)], impulse_joints : ImpulseJointSet, multibody_joints : MultibodyJointSet) -> Unitfn NarrowPhase::update_with_pairs3(self : NarrowPhase, bodies : RigidBodySet3, colliders : ColliderSet3, prediction_distance : Float, pairs : Array[(ColliderHandle, ColliderHandle)], impulse_joints : ImpulseJointSet3, multibody_joints : MultibodyJointSet3) -> Unitfn NarrowPhase::with_query_dispatcher(self : NarrowPhase, dispatcher : QueryDispatcher) -> NarrowPhasepub struct NarrowPhase3D {
contact_pairs : Array[((ColliderHandle3D, ColliderHandle3D), ContactPair3D)]
intersection_pairs : Array[((ColliderHandle3D, ColliderHandle3D), IntersectionPair3D)]
}
fn NarrowPhase3D::NarrowPhase3D() -> NarrowPhase3Dfn NarrowPhase3D::all_contact_pairs(self : NarrowPhase3D) -> Array[((ColliderHandle3D, ColliderHandle3D), ContactPair3D)]fn NarrowPhase3D::all_intersection_pairs(self : NarrowPhase3D) -> Array[((ColliderHandle3D, ColliderHandle3D), IntersectionPair3D)]fn NarrowPhase3D::contact_pair(self : NarrowPhase3D, a : ColliderHandle3D, b : ColliderHandle3D) -> ContactPair3D?fn NarrowPhase3D::intersection_pair(self : NarrowPhase3D, a : ColliderHandle3D, b : ColliderHandle3D) -> IntersectionPair3D?fn NarrowPhase3D::set_contact_pair_normal_impulses(self : NarrowPhase3D, a : ColliderHandle3D, b : ColliderHandle3D, impulses : Array[Float]) -> Unitfn NarrowPhase3D::update(self : NarrowPhase3D, pairs : Array[(ColliderHandle3D, ColliderHandle3D)], bodies : RigidBodySet3D, colliders : ColliderSet3D, prediction_distance : Float, dt : Float) -> Unitpub struct NonlinearRigidMotion {
start_pos : Isometry2
linvel : Vec2
angvel : Float
}
fn NonlinearRigidMotion::NonlinearRigidMotion(start_pos : Isometry2, linvel : Vec2, angvel : Float) -> NonlinearRigidMotionpub struct QueryDispatcher {
// private fields
}
fn QueryDispatcher::QueryDispatcher() -> QueryDispatcherpub struct QueryFilter {
excluded_body : RigidBodyHandle?
excluded_collider : ColliderHandle?
groups : InteractionGroups?
flags : QueryFilterFlags
predicate : (ColliderHandle, Collider) -> Bool?
}
fn QueryFilter::QueryFilter() -> QueryFilterfn QueryFilter::passes(self : QueryFilter, bodies : RigidBodySet, handle : ColliderHandle, collider : Collider) -> Boolfn QueryFilter::predicate(self : QueryFilter, predicate : (ColliderHandle, Collider) -> Bool) -> QueryFilterpub struct QueryFilter3DReal {
excluded_body : RigidBodyHandle?
excluded_collider : ColliderHandle3D?
groups : InteractionGroups?
flags : QueryFilterFlags
predicate : (ColliderHandle3D, Collider3D) -> Bool?
}
fn QueryFilter3DReal::QueryFilter3DReal() -> QueryFilter3DRealfn QueryFilter3DReal::exclude_collider(self : QueryFilter3DReal, handle : ColliderHandle3D) -> QueryFilter3DRealfn QueryFilter3DReal::exclude_rigid_body(self : QueryFilter3DReal, handle : RigidBodyHandle) -> QueryFilter3DRealfn QueryFilter3DReal::groups(self : QueryFilter3DReal, groups : InteractionGroups) -> QueryFilter3DRealfn QueryFilter3DReal::predicate(self : QueryFilter3DReal, predicate : (ColliderHandle3D, Collider3D) -> Bool) -> QueryFilter3DRealpub struct QueryFilterFlags {
bits : Int
}
fn QueryFilterFlags::QueryFilterFlags(bits : Int) -> QueryFilterFlagsfn QueryFilterFlags::difference(self : QueryFilterFlags, other : QueryFilterFlags) -> QueryFilterFlagsfn QueryFilterFlags::passes(self : QueryFilterFlags, bodies : RigidBodySet, collider : Collider) -> Boolfn QueryFilterFlags::symmetric_difference(self : QueryFilterFlags, other : QueryFilterFlags) -> QueryFilterFlagspub struct QueryPipeline {
bvh : Bvh
filter : QueryFilter
dispatcher : QueryDispatcher
}
fn QueryPipeline::QueryPipeline(filter : QueryFilter, bodies : RigidBodySet, colliders : ColliderSet) -> QueryPipelinefn QueryPipeline::cast_ray(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet, ray : Ray, max_toi : Float, solid : Bool) -> (ColliderHandle, Float)?fn QueryPipeline::cast_ray_and_get_normal(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet, ray : Ray, max_toi : Float, solid : Bool) -> (ColliderHandle, RayIntersection)?fn QueryPipeline::cast_shape(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet, shape_pos : Isometry2, shape_vel : Vec2, shape : Shape, options : ShapeCastOptions) -> (ColliderHandle, ShapeCastHit)?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)?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)?fn QueryPipeline::collider(self : QueryPipeline, colliders : ColliderSet, handle : ColliderHandle) -> Collider?fn QueryPipeline::intersect_aabb_conservative(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet, aabb : Aabb) -> Array[ColliderHandle]fn QueryPipeline::intersect_point(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet, point : Vec2) -> Array[ColliderHandle]fn QueryPipeline::intersect_ray(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet, ray : Ray, max_toi : Float, solid : Bool) -> Array[(ColliderHandle, RayIntersection)]fn QueryPipeline::intersect_shape(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet, shape_pos : Isometry2, shape : Shape) -> Array[ColliderHandle]fn QueryPipeline::new3(filter : QueryFilter, bodies : RigidBodySet3, colliders : ColliderSet3) -> QueryPipelinefn QueryPipeline::project_point(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet, point : Vec2, max_dist : Float, solid : Bool) -> (ColliderHandle, PointProjection)?fn QueryPipeline::project_point_and_get_feature(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet, point : Vec2, max_dist : Float, solid : Bool) -> (ColliderHandle, PointProjection, FeatureId)?fn QueryPipeline::rigid_body(self : QueryPipeline, bodies : RigidBodySet, handle : RigidBodyHandle) -> RigidBody?fn QueryPipeline::update(self : QueryPipeline, bodies : RigidBodySet, colliders : ColliderSet) -> Unitpub struct QueryPipeline3DReal {
filter : QueryFilter3DReal
cached_aabbs : Array[Aabb3?]
}
fn QueryPipeline3DReal::QueryPipeline3DReal(filter : QueryFilter3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D) -> QueryPipeline3DRealfn QueryPipeline3DReal::cast_ray(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D, ray : Ray3, max_toi : Float, solid : Bool) -> (ColliderHandle3D, Float)?fn QueryPipeline3DReal::cast_ray_and_get_normal(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D, ray : Ray3, max_toi : Float, solid : Bool) -> (ColliderHandle3D, RayIntersection3)?fn QueryPipeline3DReal::cast_ray_and_get_normal_and_feature(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D, ray : Ray3, max_toi : Float, solid : Bool) -> (ColliderHandle3D, RayIntersection3Feature)?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))?fn QueryPipeline3DReal::cast_shape(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D, shape_pos : Isometry3, shape_vel : Vec3, shape : Shape3D, options : ShapeCastOptions3) -> (ColliderHandle3D, ShapeCastHit3)?fn QueryPipeline3DReal::collider(self : QueryPipeline3DReal, colliders : ColliderSet3D, handle : ColliderHandle3D) -> Collider3D?fn QueryPipeline3DReal::intersect_aabb_conservative(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D, aabb : Aabb3) -> Array[ColliderHandle3D]fn QueryPipeline3DReal::intersect_point(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D, point : Vec3) -> Array[ColliderHandle3D]fn QueryPipeline3DReal::intersect_ray(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D, ray : Ray3, max_toi : Float, solid : Bool) -> Array[(ColliderHandle3D, RayIntersection3Feature)]fn QueryPipeline3DReal::intersect_shape(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D, shape_pos : Isometry3, shape : Shape3D) -> Array[ColliderHandle3D]fn QueryPipeline3DReal::project_point(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D, point : Vec3, max_dist : Float, solid : Bool) -> (ColliderHandle3D, PointProjection3)?fn QueryPipeline3DReal::rigid_body(self : QueryPipeline3DReal, bodies : RigidBodySet3D, handle : RigidBodyHandle) -> RigidBody3D?fn QueryPipeline3DReal::rigid_body_mut(self : QueryPipeline3DReal, bodies : RigidBodySet3D, handle : RigidBodyHandle) -> RigidBody3D?fn QueryPipeline3DReal::update(self : QueryPipeline3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D) -> Unitfn QueryPipeline3DReal::with_filter(self : QueryPipeline3DReal, filter : QueryFilter3DReal) -> QueryPipeline3DRealpub struct QueryPipelineMut {
pipeline : QueryPipeline
dispatcher : QueryDispatcher
}
fn QueryPipelineMut::QueryPipelineMut(filter : QueryFilter, bodies : RigidBodySet, colliders : ColliderSet) -> QueryPipelineMutfn QueryPipelineMut::new3(filter : QueryFilter, bodies : RigidBodySet3, colliders : ColliderSet3) -> QueryPipelineMutfn QueryPipelineMut::update(self : QueryPipelineMut, bodies : RigidBodySet, colliders : ColliderSet) -> Unitpub struct QueryPipelineMut3DReal {
pipeline : QueryPipeline3DReal
}
fn QueryPipelineMut3DReal::QueryPipelineMut3DReal(filter : QueryFilter3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D) -> QueryPipelineMut3DRealfn QueryPipelineMut3DReal::update(self : QueryPipelineMut3DReal, bodies : RigidBodySet3D, colliders : ColliderSet3D) -> Unitpub(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)
}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)])
}pub struct ShapeCastOptions {
max_toi : Float
target_distance : Float
stop_at_penetration : Bool
}
fn ShapeCastOptions::ShapeCastOptions(max_toi : Float, stop_at_penetration : Bool) -> ShapeCastOptionsfn ShapeCastOptions::with_target_distance(self : ShapeCastOptions, target_distance : Float) -> ShapeCastOptionspub struct ShapeCastOptions3 {
max_toi : Float
target_distance : Float
stop_at_penetration : Bool
}
fn ShapeCastOptions3::ShapeCastOptions3(max_toi : Float, stop_at_penetration : Bool) -> ShapeCastOptions3fn ShapeCastOptions3::with_target_distance(self : ShapeCastOptions3, target_distance : Float) -> ShapeCastOptions3#alias(ColliderShape)
pub struct SharedShape {
shape : Shape
}
fn SharedShape::SharedShape(shape : Shape) -> SharedShapepub struct SolverContact {
point : Vec2
dist : Float
friction : Float
restitution : Float
tangent_velocity : Vec2
}
fn SolverContact::SolverContact(point : Vec2, dist : Float) -> SolverContactpub struct SolverFlags {
value : Int
}pub struct TriMeshFlags {
value : Int
}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
}fn VHACDParameters::set_convex_hull_approximation(self : VHACDParameters, convex_hull_approximation : Bool) -> VHACDParametersfn VHACDParameters::set_convex_hull_downsampling(self : VHACDParameters, convex_hull_downsampling : Int) -> VHACDParametersfn VHACDParameters::set_plane_downsampling(self : VHACDParameters, plane_downsampling : Int) -> VHACDParameterspub 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)
}fn compute_ball_ball_contact(center1 : Vec3, radius1 : Float, center2 : Vec3, radius2 : Float) -> ContactPoint3D?fn compute_ball_capsule_contact(ball_center : Vec3, ball_radius : Float, capsule_pos : Isometry3, capsule_radius : Float, capsule_half_height : Float) -> ContactPoint3D?fn compute_ball_cone_contact(ball_center : Vec3, ball_radius : Float, cone_pos : Isometry3, cone_radius : Float, cone_half_height : Float) -> ContactPoint3D?fn compute_ball_cuboid_contact(ball_center : Vec3, ball_radius : Float, cuboid_pos : Isometry3, cuboid_half_extents : Vec3) -> ContactPoint3D?fn compute_ball_cylinder_contact(ball_center : Vec3, ball_radius : Float, cyl_pos : Isometry3, cyl_radius : Float, cyl_half_height : Float) -> ContactPoint3D?fn compute_ball_heightfield_contact(ball_center : Vec3, ball_radius : Float, heightfield_pos : Isometry3, vertices : Array[Vec3], nrows : Int, ncols : Int) -> ContactPoint3D?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?fn compute_ball_voxels_contact(ball_center : Vec3, ball_radius : Float, voxels_pos : Isometry3, voxels : Voxels3DReal) -> ContactPoint3D?fn compute_capsule_capsule_contact(pos1 : Isometry3, r1 : Float, hh1 : Float, pos2 : Isometry3, r2 : Float, hh2 : Float) -> ContactPoint3D?fn compute_capsule_cuboid_contact(capsule_pos : Isometry3, capsule_radius : Float, capsule_half_height : Float, cuboid_pos : Isometry3, cuboid_half_extents : Vec3) -> ContactPoint3D?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?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?fn compute_capsule_voxels_contact(capsule_pos : Isometry3, capsule_radius : Float, capsule_half_height : Float, voxels_pos : Isometry3, voxels : Voxels3DReal) -> ContactPoint3D?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?fn compute_cone_cuboid_contact(cone_pos : Isometry3, cone_radius : Float, cone_half_height : Float, cuboid_pos : Isometry3, cuboid_half_extents : Vec3) -> ContactPoint3D?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?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?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?fn compute_cone_voxels_contact(cone_pos : Isometry3, cone_radius : Float, cone_half_height : Float, voxels_pos : Isometry3, voxels : Voxels3DReal) -> ContactPoint3D?fn compute_convex_contact(pos1 : Isometry3, s1 : Shape3D, pos2 : Isometry3, s2 : Shape3D) -> ContactPoint3D?fn compute_cuboid_cuboid_contact(pos1 : Isometry3, he1 : Vec3, pos2 : Isometry3, he2 : Vec3) -> ContactPoint3D?fn compute_cuboid_voxels_contact(cuboid_pos : Isometry3, cuboid_half_extents : Vec3, voxels_pos : Isometry3, voxels : Voxels3DReal) -> ContactPoint3D?fn compute_cylinder_cuboid_contact(cyl_pos : Isometry3, cyl_radius : Float, cyl_half_height : Float, cuboid_pos : Isometry3, cuboid_half_extents : Vec3) -> ContactPoint3D?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?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?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?fn compute_cylinder_voxels_contact(cyl_pos : Isometry3, cyl_radius : Float, cyl_half_height : Float, voxels_pos : Isometry3, voxels : Voxels3DReal) -> ContactPoint3D?fn compute_halfspace_contact(halfspace_pos : Isometry3, halfspace_normal_local : Vec3, other_pos : Isometry3, other_shape : Shape3D) -> ContactPoint3D?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?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?fn handle_user_changes_to_colliders(bodies : RigidBodySet, colliders : ColliderSet, modified_colliders : Array[ColliderHandle]) -> Unitfn handle_user_changes_to_colliders3(bodies : RigidBodySet3, colliders : ColliderSet3, modified_colliders : Array[ColliderHandle]) -> UnitInstall
Download zipA Physics library in MoonBit.