Module Mlpost.Tree


module Tree: sig .. end
Create and draw trees


This module provides high-level means for creating and drawing Trees
type t 
The type of trees

type arrow_style =
| Directed (*edges are directed and an arrow is drawn at the end of an edge*)
| Undirected (*edges are undirected and no arrow is drawn*)
The style of arrows between nodes

type edge_style =
| Straight (*edges are straight lines between nodes*)
| Curve (*edges are curved lines between nodes*)
| Square (*edges are straight lines and branch out from the sides of nodes*)
| HalfSquare (*edges are straight lines and branch out from below nodes*)
There are several styles available for edges
val leaf : Box.t -> t

Creation

leaf b creates a leaf with Box b.

val node : ?ls:Num.t ->
?cs:Num.t ->
?arrow_style:arrow_style ->
?edge_style:edge_style ->
?stroke:Color.t ->
?brush:Brush.t ->
?pen:Pen.t ->
?sep:Num.t -> Box.t -> t list -> t
node label children creates a node with label label and a list of children children. Default arrow_style is Directed. Default edge_style is Straight.
val nodel : ?ls:Num.t ->
?cs:Num.t ->
?arrow_style:arrow_style ->
?edge_style:edge_style ->
?stroke:Color.t ->
?brush:Brush.t ->
?pen:Pen.t ->
?sep:Num.t ->
Box.t ->
(t * (Command.position * Picture.t)) list ->
t
Similar to node but with labels on edges. Labels are taken into account only when edge_style is Straight.
val bin : ?ls:Num.t ->
?cs:Num.t ->
?arrow_style:arrow_style ->
?edge_style:edge_style ->
?stroke:Color.t ->
?brush:Brush.t ->
?pen:Pen.t ->
?sep:Num.t ->
Box.t -> t -> t -> t
bin label l r creates a binary node with label label and children l and r. Optional arguments are the same as in leaf.
val to_box : t -> Box.t
val draw : ?debug:bool -> t -> Command.t
module Simple: sig .. end