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
val string_scale_size : string -> float -> string -> width * height
string_scale_size font font_size text. Interpolates the font metrics we have to use to draw the given text with the given font but preserving the bounding box of the text even with a proportional font. For a fixed width font the result is font_size*font_size.

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