Physics3dtype body = {shape : Playground3d.shape3d;x : Playground3d.number;y : Playground3d.number;z : Playground3d.number;vx : Playground3d.number;vy : Playground3d.number;vz : Playground3d.number;orientation : Quat.t;spin : Playground3d.number * Playground3d.number * Playground3d.number;mass : Playground3d.number;bounciness : Playground3d.number;friction : Playground3d.number;hitbox : Hitbox3d.t;inertia : Mat3.t;ax : Playground3d.number;ay : Playground3d.number;az : Playground3d.number;torque : Playground3d.number * Playground3d.number * Playground3d.number;}val body : Playground3d.shape3d -> bodyval hitbox : Hitbox3d.t -> body -> bodyval hitbox_of : body -> Hitbox3d.placedval at :
Playground3d.number ->
Playground3d.number ->
Playground3d.number ->
body ->
bodyval moving :
Playground3d.number ->
Playground3d.number ->
Playground3d.number ->
body ->
bodyval pointing :
(Playground3d.number * Playground3d.number * Playground3d.number) ->
Playground3d.number ->
body ->
bodyval turning :
(Playground3d.number * Playground3d.number * Playground3d.number) ->
Playground3d.number ->
body ->
bodyval heavy : Playground3d.number -> body -> bodyval bouncy : Playground3d.number -> body -> bodyval rough : Playground3d.number -> body -> bodyval solid_as :
(Playground3d.number * Playground3d.number * Playground3d.number) ->
body ->
bodyval fall : Playground3d.number -> body -> bodyval push :
Playground3d.number ->
Playground3d.number ->
Playground3d.number ->
body ->
bodyval thrust : Playground3d.number -> body -> bodyval slow : Playground3d.number -> body -> bodyval pulled_to :
Playground3d.number ->
Playground3d.number ->
Playground3d.number ->
Playground3d.number ->
body ->
bodyval floating :
?damping:Playground3d.number ->
water:Playground3d.number ->
density:Playground3d.number ->
body ->
bodyval spin_slow : Playground3d.number -> body -> bodyval spin_by :
Playground3d.number ->
Playground3d.number ->
Playground3d.number ->
body ->
bodyval tick : Playground3d.numberval draw : body -> Playground3d.shape3dval debug : body -> Playground3d.shape3dval contact : body -> body -> Contact3d.t optionval bounce_all : ?broad_phase:Broadphase3d.method_ -> body list -> body listval broad_phase : Broadphase3d.method_ -> body list -> Broadphase3d.resultval world_bounds : body -> Broadphase3d.boxval ray :
from:(Playground3d.number * Playground3d.number * Playground3d.number) ->
direction:(Playground3d.number * Playground3d.number * Playground3d.number) ->
body list ->
(body * Playground3d.number) optionval position :
body ->
Playground3d.number * Playground3d.number * Playground3d.numberval forward :
body ->
Playground3d.number * Playground3d.number * Playground3d.numberval distance : body -> body -> Playground3d.numberval speed : body -> Playground3d.numberval bounds :
Playground3d.shape3d ->
(Playground3d.number * Playground3d.number * Playground3d.number)
* (Playground3d.number * Playground3d.number * Playground3d.number)type world = {bodies : body list;memory : Solver3d.memory;still : int list;asleep : bool list;solved : int;swept : int;joints : Joint3d.t list;}val simulate :
?gravity:Playground3d.number ->
?iterations:int ->
?warm_starting:bool ->
?sleeping:bool ->
?broad_phase:Broadphase3d.method_ ->
?continuous:bool ->
?substeps:int ->
world ->
worldval ball_joint :
?cone:
((Playground3d.number * Playground3d.number * Playground3d.number)
* Playground3d.number) ->
int ->
int ->
at:(Playground3d.number * Playground3d.number * Playground3d.number) ->
world ->
worldval hinge :
?limits:(Playground3d.number * Playground3d.number) ->
?motor:(Playground3d.number * Playground3d.number) ->
int ->
int ->
at:(Playground3d.number * Playground3d.number * Playground3d.number) ->
axis:(Playground3d.number * Playground3d.number * Playground3d.number) ->
world ->
worldval rod :
int ->
int ->
at_a:(Playground3d.number * Playground3d.number * Playground3d.number) ->
at_b:(Playground3d.number * Playground3d.number * Playground3d.number) ->
world ->
worldval set_motor :
int ->
(Playground3d.number * Playground3d.number) ->
world ->
worldval joint_angle : int -> world -> Playground3d.numberval held_by :
(Playground3d.number * Playground3d.number * Playground3d.number) ->
body ->
bodyval debug_joints : world -> Playground3d.shape3d list