module Triangle:sig..end
Tree-like, triangular shapes, with a root on top and an horizontal bottom line.
typet =Box.t
A triangular shape is a box. In the following, we simply call it a "triangle".
val create : ?brush:Brush.t ->
?stroke:Color.t option ->
?pen:Pen.t ->
?dash:Dash.t ->
?fill:Color.t ->
?left:float ->
?right:float ->
?width:Num.t -> depth:Num.t -> unit -> Box.tcreate depth creates a triangular shape of depth depth.
The width is equal to depth, unless specified using width.
left and right control the horizontal position of the root;
they default to 0.5 i.e. the root is centered. Negative values for
left and right are allowed.
val pic : ?brush:Brush.t ->
?stroke:Color.t option ->
?pen:Pen.t ->
?dash:Dash.t ->
?fill:Color.t ->
?dx:float -> ?dy:float -> Picture.t -> tbuilds a triangle surrounding a picture
val tex : ?brush:Brush.t ->
?stroke:Color.t option ->
?pen:Pen.t ->
?dash:Dash.t ->
?fill:Color.t -> ?dx:float -> ?dy:float -> string -> tbuilds a triangle surrounding a LaTeX label
val root : t -> Point.t
val bottom_left : t -> Point.t
val bottom_right : t -> Point.tSpecial points in a triangle.
val draw : ?debug:bool -> t -> Command.t
val root_label : ?pos:Command.position ->
Picture.t -> t -> t
val tex_root_label : ?pos:Command.position ->
string -> t -> tAttach a label to the root.
val x_depth : ?x:float -> ?depth:float -> t -> Point.ta point inside a triangle is denoted using two coordinates
x and depth. Coordinate x controls horizontal placement,
with 0.0 for left and 1.0 for right (negative values are allowed).
Coordinate depth controls vertical placement, with 0.0 for root
and 1.0 for bottom line (negative values are allowed).
x defaults to 0.5 (centered) and depth defaults to 1.0
(bottom).
val label : ?x:float ->
?depth:float ->
?pos:Command.position ->
Picture.t -> t -> t
val tex_label : ?x:float ->
?depth:float ->
?pos:Command.position ->
string -> t -> tAttach a label to the point (x, depth).
Coordinate depth defaults to 0.7, so that label is likely to fit
nicely in the triangle (otherwise, you may consider using functions
pic and tex above).
val anchor : ?x:float ->
?depth:float -> t -> t -> tanchor t2 t1 moves triangle t1 at position (x, depth) in
triangle t2
val pose : ?x:float ->
?depth:float -> t -> t -> tpose t2 t1 moves triangle t1 so that its south point is
at position (x, depth) in triangle t2
val pose_left : ?x:float ->
?depth:float -> t -> t -> t
val pose_right : ?x:float ->
?depth:float -> t -> t -> tsimilarly, using bottom_left and bottom_right instead of
south point