Module Physics3d

val ball : body -> body
val pill : body -> body
val hitbox : Hitbox3d.t -> body -> body
val hitbox_of : body -> Hitbox3d.placed
val heavy : Playground3d.number -> body -> body
val bouncy : Playground3d.number -> body -> body
val rough : Playground3d.number -> body -> body
val immovable : body -> body
val upright : body -> body
val fall : Playground3d.number -> body -> body
val thrust : Playground3d.number -> body -> body
val slow : Playground3d.number -> body -> body
val attracted_by : body -> body -> body
val floating : ?damping:Playground3d.number -> water:Playground3d.number -> density:Playground3d.number -> body -> body
val spin_slow : Playground3d.number -> body -> body
val step : body -> body
val debug : body -> Playground3d.shape3d
val touching : body -> body -> bool
val contact : body -> body -> Contact3d.t option
val bounce : body -> body -> body * body
val bounce_off : body -> body -> body
val bounce_all : ?broad_phase:Broadphase3d.method_ -> body list -> body list
val broad_phase : Broadphase3d.method_ -> body list -> Broadphase3d.result
val world_bounds : body -> Broadphase3d.box
val distance : body -> body -> Playground3d.number
val speed : body -> Playground3d.number
type world = {
  1. bodies : body list;
  2. memory : Solver3d.memory;
  3. still : int list;
  4. asleep : bool list;
  5. solved : int;
  6. swept : int;
  7. joints : Joint3d.t list;
}
val world : body list -> world
val simulate : ?gravity:Playground3d.number -> ?iterations:int -> ?warm_starting:bool -> ?sleeping:bool -> ?broad_phase:Broadphase3d.method_ -> ?continuous:bool -> ?substeps:int -> world -> world
val went_through : body -> body -> bool
val set_motor : int -> (Playground3d.number * Playground3d.number) -> world -> world
val joint_angle : int -> world -> Playground3d.number
val debug_joints : world -> Playground3d.shape3d list