Module Shape

type t =
  1. | Point
  2. | Circle of float
  3. | Box of float * float
  4. | Polygon of Vec2.t list
type placed =
  1. | Point_at of Vec2.t
  2. | Circle_at of Vec2.t * float
  3. | Polygon_at of Vec2.t list
val place : ?angle:float -> ?scale:float -> Vec2.t -> t -> placed
val box_corners : float -> float -> Vec2.t list
val edges : Vec2.t list -> (Vec2.t * Vec2.t) list
val area : t -> float
val moments : placed -> float * float
val bounds : placed -> Vec2.t * Vec2.t
val convex : Vec2.t list -> bool