Module Graph.Graphviz

Interface with GraphViz

This module provides a basic interface with dot and neato, two programs of the GraphViz toolbox. These tools are available at the following URLs:

Common stuff

Because the neato and dot engines present a lot of common points - in particular in the graph description language, large parts of the code is shared. The CommonAttributes module defines attributes of graphs, vertices and edges that are understood by the two engines. Then module DotAttributes and NeatoAttributes define attributes specific to dot and neato respectively.

Common types and signatures

type color = int
type color_with_transparency = int32

The two least significant bytes encode the transparency information; the six most signification are the standard RGB color

val color_to_color_with_transparency : color -> color_with_transparency
type arrow_style = [
| `None
| `Normal
| `Onormal
| `Inv
| `Dot
| `Odot
| `Invdot
| `Invodot
]
module type ATTRIBUTES = sig ... end

The ATTRIBUTES module type defines the interface for the engines.

Common attributes

module CommonAttributes : sig ... end

The CommonAttributes module defines attributes for graphs, vertices and edges that are available in the two engines, dot and neato.

Interface with the dot engine

module DotAttributes : sig ... end

DotAttributes extends CommonAttributes and implements ATTRIBUTES.

module type GraphWithDotAttrs = sig ... end

Graph module with dot attributes

module Dot (X : sig ... end) : sig ... end

The neato engine

module NeatoAttributes : sig ... end
module Neato (X : sig ... end) : sig ... end