Module Diagram

type kind =
  1. | Box
  2. | Connector
type ends =
  1. | Begin
  2. | End
type master = {
  1. name : string;
  2. kind : kind;
  3. cells : (string * string) list;
  4. geometry : (string * string) list;
  5. points : (string * string * Ortho_route.dir) list;
}
type shape = {
  1. id : int;
  2. master : string;
  3. kind : kind;
  4. rows : (string * string) list;
  5. geometry : (string * string) list;
  6. points : (string * string * Ortho_route.dir) list;
  7. text : string;
  8. glue : (ends * int * int) list;
}
type t
val empty : t
val masters : master list
val shapes : t -> shape list
val shape : t -> int -> shape option
val drop : t -> master -> (float * float) -> t * int
val set_formula : t -> int -> string -> string -> (t, string) Stdlib.result
val value : t -> int -> string -> float option
val shown : t -> int -> string -> string
val set_text : t -> int -> string -> t
val move : t -> int -> (float * float) -> t
val resize : t -> int -> (float * float) -> t
val glue : t -> int -> ends -> target:int -> point:int -> t
val place_end : t -> int -> ends -> (float * float) -> t
val delete : t -> int -> t
val outline : t -> shape -> (float * float) list
val connection_points : t -> shape -> ((float * float) * Ortho_route.dir) list
val bounds : t -> shape -> float * float * float * float
val ends_of : t -> shape -> (float * float) * (float * float)
val route : t -> shape -> (float * float) list