sig
type t
val create : (float * float) array -> SFShape.t
val move : shape:SFShape.t -> offset:float * float -> unit
val move2 : shape:SFShape.t -> offsetX:float -> offsetY:float -> unit
val rotate : shape:SFShape.t -> angle:float -> unit
val scale : shape:SFShape.t -> factors:float * float -> unit
val scale2 : shape:SFShape.t -> factorX:float -> factorY:float -> unit
val setPosition : shape:SFShape.t -> pos:float * float -> unit
val setPosition2 : shape:SFShape.t -> posX:float -> posY:float -> unit
val setRotation : shape:SFShape.t -> angle:float -> unit
val setScale : shape:SFShape.t -> scale:float * float -> unit
val setScale2 : shape:SFShape.t -> scaleX:float -> scaleY:float -> unit
val setOrigin : shape:SFShape.t -> origin:float * float -> unit
val setOrigin2 : shape:SFShape.t -> originX:float -> originY:float -> unit
val setFillColor : shape:SFShape.t -> color:SFColor.t -> unit
val setOutlineColor : shape:SFShape.t -> color:SFColor.t -> unit
val setOutlineThickness : shape:SFShape.t -> thickness:float -> unit
val update : shape:SFShape.t -> unit
val getPointCount : shape:SFShape.t -> int
val of_circle : SFCircleShape.t -> SFShape.t
val of_rectangle : SFRectangleShape.t -> SFShape.t
end