Module Collide3dSource

Sourceval closest_on_segment : (Vec3.t * Vec3.t) -> Vec3.t -> Vec3.t
Sourceval closest_between_segments : (Vec3.t * Vec3.t) -> (Vec3.t * Vec3.t) -> Vec3.t * Vec3.t
Sourceval closest_on_box : Hitbox3d.placed -> Vec3.t -> Vec3.t
Sourceval closest_on_triangle : (Vec3.t * Vec3.t * Vec3.t) -> Vec3.t -> Vec3.t
Sourceval spheres : (Vec3.t * float) -> (Vec3.t * float) -> Contact3d.t option
Sourceval sphere_box : (Vec3.t * float) -> Hitbox3d.placed -> Contact3d.t option
Sourceval sphere_capsule : (Vec3.t * float) -> Hitbox3d.placed -> Contact3d.t option
Sourceval boxes : ?edge_axes:bool -> Hitbox3d.placed -> Hitbox3d.placed -> Contact3d.t option
Sourceval box_capsule : Hitbox3d.placed -> Hitbox3d.placed -> Contact3d.t option
Sourceval plane_hitbox : (Vec3.t * float) -> Hitbox3d.placed -> Contact3d.t option
Sourceval sphere_triangle : (Vec3.t * float) -> (Vec3.t * Vec3.t * Vec3.t) -> Contact3d.t option
Sourceval touching : Hitbox3d.placed -> Hitbox3d.placed -> bool
Sourceval box_faces : Hitbox3d.placed -> (Vec3.t * Vec3.t list) list
Sourceval clip_by_plane : Vec3.t list -> Vec3.t -> float -> Vec3.t list
Sourceval spread_out : int -> Contact3d.t list -> Contact3d.t list
Sourceval bounds_overlap : (Vec3.t * Vec3.t) -> (Vec3.t * Vec3.t) -> bool
Sourceval ray_sphere : from:Vec3.t -> direction:Vec3.t -> (Vec3.t * float) -> float option
Sourceval ray_plane : from:Vec3.t -> direction:Vec3.t -> (Vec3.t * float) -> float option
Sourceval ray_box : from:Vec3.t -> direction:Vec3.t -> Hitbox3d.placed -> float option
Sourceval ray_capsule : from:Vec3.t -> direction:Vec3.t -> Hitbox3d.placed -> float option
Sourceval ray_triangle : from:Vec3.t -> direction:Vec3.t -> (Vec3.t * Vec3.t * Vec3.t) -> float option
Sourceval ray : from:Vec3.t -> direction:Vec3.t -> Hitbox3d.placed -> float option