Module Joint2dSource

Sourcetype kind =
  1. | Pin of {
    1. motor : (float * float) option;
    }
  2. | Rod of {
    1. length : float;
    }
  3. | Rope of {
    1. length : float;
    }
  4. | Pulley of {
    1. ground_a : Vec2.t;
    2. ground_b : Vec2.t;
    3. length : float;
    }
Sourcetype t = {
  1. a : int;
  2. b : int;
  3. anchor_a : Vec2.t;
  4. anchor_b : Vec2.t;
  5. kind : kind;
}
Sourceval pin : Body.t array -> float array -> int -> int -> at:Vec2.t -> ?motor:(float * float) -> unit -> t
Sourceval rod : Body.t array -> float array -> int -> int -> at_a:Vec2.t -> at_b:Vec2.t -> unit -> t
Sourceval rope : Body.t array -> float array -> int -> int -> at_a:Vec2.t -> at_b:Vec2.t -> ?length:float -> unit -> t
Sourceval pulley : Body.t array -> float array -> int -> int -> at_a:Vec2.t -> at_b:Vec2.t -> ground_a:Vec2.t -> ground_b:Vec2.t -> unit -> t
Sourcetype row
Sourceval rows : beta:float -> dt:float -> Body.t array -> float array -> t -> row list
Sourceval solve_row : Body.t array -> row -> unit
Sourceval anchors : Body.t array -> float array -> t -> Vec2.t * Vec2.t
Sourceval length_now : Body.t array -> float array -> t -> float