Module XDotDraw


module XDotDraw: sig .. end
Parses xdot drawing operations


See dot documentation to understand the drawing operations

Types


type pos = float * float 
Dot layout coordinates
type width = float 
Dimensions
type height = float 
type size = int 

type align =
| Left
| Center
| Right
Text alignment

type style_attr =
| Filled
| Invisible
| Diagonals
| Rounded
| Dashed
| Dotted
| Solid
| Bold
| StyleString of string
Style attributes

type operation =
| Filled_ellipse of pos * width * height
| Unfilled_ellipse of pos * width * height
| Filled_polygon of pos array
| Unfilled_polygon of pos array
| Polyline of pos array
| Bspline of pos array
| Filled_bspline of pos array
| Text of pos * align * width * string
| Fill_color of string
| Pen_color of string
| Font of float * string
| Style of style_attr list
Drawing operations

Parsing and drawing state



Parses an xdot drawing attribute
val parse : string -> operation list

Some drawing operations modify the following drawing state (pen_color, font and style).

type draw_state = private {
   mutable fill_color : string;
   mutable pen_color : string;
   mutable font : float * string;
   mutable style : style_attr list;
}
val draw_with : (draw_state -> operation -> unit) ->
operation list -> unit
Iterates on the drawing operations and updates the implicit drawing state

Miscellaneous


val normalize_color : string -> string
Reads the color string and converts to rgb if in an another format