sig
type tag = ..
type tag += TName of string
type vertex = private
MoveTo of Math.vector
| LineTo of Math.vector
| BezierTo of Math.vector * Math.vector * Math.vector
| Arc of Math.vector * Math.vector * float * float * float
| ClosePath
type t = private
Shape of Shape.vertex list
| Group of Shape.t list
| Paint of Shape.t * Paint.paint_update
| Tag of Shape.t * Shape.tag
| Background of Color.color
| Empty
val poly : ?close:[ `Close | `Open ] -> Math.vector list -> Shape.t
val point : Math.vector -> Shape.t
val line : Math.vector -> Math.vector -> Shape.t
val rect :
Math.vector -> ?align:[ `Center | `Corner ] -> Math.vector -> Shape.t
val quad :
Math.vector -> Math.vector -> Math.vector -> Math.vector -> Shape.t
val triangle : Math.vector -> Math.vector -> Math.vector -> Shape.t
val ellipse :
Math.vector -> ?align:[ `Center | `Corner ] -> Math.vector -> Shape.t
val circle :
Math.vector -> ?align:[ `Center | `Corner ] -> float -> Shape.t
val arc :
Math.vector ->
?align:[ `Center | `Corner ] ->
Math.vector ->
?stroke_mode:[ `Closed | `Open ] ->
?fill_mode:[ `Chord | `Pie ] -> ?phi:float -> float -> float -> Shape.t
val bezier : Bezier.t -> Shape.t
val group : Shape.t list -> Shape.t
val shape : Shape.t -> Math.vector -> Shape.t
val background : Color.color -> Shape.t
val empty : Shape.t
val fill : Color.color -> Shape.t -> Shape.t
val no_fill : Shape.t -> Shape.t
val stroke : Color.color -> Shape.t -> Shape.t
val no_stroke : Shape.t -> Shape.t
val stroke_weight : float -> Shape.t -> Shape.t
val stroke_cap : [ `Project | `Round | `Square ] -> Shape.t -> Shape.t
val stroke_join : [ `Bevel | `Miter | `Round ] -> Shape.t -> Shape.t
val bleach : Shape.t -> Shape.t
val name : string -> Shape.t -> Shape.t
val find_name : string -> Shape.t -> Shape.t option
val find_names : string -> Shape.t -> Shape.t list
val tag : Shape.tag -> Shape.t -> Shape.t
val find_tag :
?eq:(Shape.tag -> Shape.tag -> bool) ->
Shape.tag -> Shape.t -> Shape.t option
val find_tags :
?eq:(Shape.tag -> Shape.tag -> bool) ->
Shape.tag -> Shape.t -> Shape.t list
val translate : Math.vector -> Shape.t -> Shape.t
val scale : Math.vector -> Shape.t -> Shape.t
val rotate : float -> Shape.t -> Shape.t
end