sig
type tip_info = { tip_line_width : float; is_double : bool; }
type info = {
tip_info : Diagrams.Edge.tip_info;
start : Diagrams.Gentity.t;
finish : Diagrams.Gentity.t;
params : RawContent.path_param;
given_curve : Diagrams.Curve.t;
underlying_curve : Diagrams.Curve.t;
curves : (RawContent.path_param * Diagrams.Curve.t) list;
decorations : Diagrams.Edge.decoration list;
z_curve : float array list;
anchor : Diagrams.anchor -> Diagrams.Point.t;
}
and decoration =
Curve of RawContent.path_param * Diagrams.Curve.t
| Node of Diagrams.Node.t
val evaluate_z : Diagrams.Edge.info -> int * float -> float
val evaluate_z_global : Diagrams.Edge.info -> float -> float
type t = Diagrams.Edge.info
type edge_transfo = Diagrams.Edge.info -> Diagrams.Edge.info
module Transfo :
sig
module rec Style :
sig
type t = { pet : Pet.t; transfo : transfo; }
and transfo = info -> info
end
and Pet :
sig
type t
val name : t -> string
val append : t -> Style.t list -> Style.t -> Style.t list
val ( = ) : t -> t -> bool
val register :
?depends:t list ->
?codepends:t list ->
?append:(Style.t list -> Style.t -> Style.t list) ->
string -> (t -> 'a) -> 'a * t
module Map :
sig
type key = t
type +'a t
val empty : 'a t
val is_empty : 'a t -> bool
val mem : key -> 'a t -> bool
val add : key -> 'a -> 'a t -> 'a t
val singleton : key -> 'a -> 'a t
val remove : key -> 'a t -> 'a t
val merge :
(key -> 'a option -> 'b option -> 'c option) ->
'a t -> 'b t -> 'c t
val union :
(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val iter : (key -> 'a -> unit) -> 'a t -> unit
val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val for_all : (key -> 'a -> bool) -> 'a t -> bool
val exists : (key -> 'a -> bool) -> 'a t -> bool
val filter : (key -> 'a -> bool) -> 'a t -> 'a t
val partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
val cardinal : 'a t -> int
val bindings : 'a t -> (key * 'a) list
val min_binding : 'a t -> key * 'a
val min_binding_opt : 'a t -> (key * 'a) option
val max_binding : 'a t -> key * 'a
val max_binding_opt : 'a t -> (key * 'a) option
val choose : 'a t -> key * 'a
val choose_opt : 'a t -> (key * 'a) option
val split : key -> 'a t -> 'a t * 'a option * 'a t
val find : key -> 'a t -> 'a
val find_opt : key -> 'a t -> 'a option
val find_first : (key -> bool) -> 'a t -> key * 'a
val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
val find_last : (key -> bool) -> 'a t -> key * 'a
val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
val map : ('a -> 'b) -> 'a t -> 'b t
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
end
end
val transform : Style.t list -> info -> info
end
val default_tip_info : Diagrams.Edge.tip_info
val default_params : RawContent.path_param
val default_edge_info :
Diagrams.Gentity.t ->
Diagrams.Gentity.t -> Diagrams.Curve.t -> Diagrams.Edge.info
val empty : Diagrams.Edge.info
val transform :
Diagrams.Edge.Transfo.Style.t list ->
Diagrams.Gentity.t ->
Diagrams.Gentity.t -> Diagrams.Curve.t -> Diagrams.Edge.info
val outer_curve : 'a -> 'b -> 'b
type continue_path_spec = Diagrams.Point.t list
and path_spec = Diagrams.Edge.continue_path_spec list
val point_lists_of_path_spec : 'a -> 'a list list -> 'a list list
type controls = Diagrams.Edge.continue_path_spec * Diagrams.Point.t list
val point_lists_of_edge_spec_rec :
'a list list -> 'a -> 'a -> 'a list list -> 'a list list
val point_lists_of_edge_spec :
Diagrams.Gentity.t ->
Diagrams.Point.t list list ->
Diagrams.Gentity.t -> Diagrams.Point.t list list
val decoration_to_contents :
'a -> Diagrams.Edge.decoration -> RawContent.raw list
val to_contents : Diagrams.Edge.info -> RawContent.raw list
val to_gentity : Diagrams.Edge.info -> Diagrams.Gentity.t
val paramsOf : RawContent.path_param -> Transfo.Style.t
val params_pet : Transfo.Pet.t
val dashed : float list -> Diagrams.Edge.Transfo.Style.t
val fill : Color.color -> Diagrams.Edge.Transfo.Style.t
val color : Color.color -> Diagrams.Edge.Transfo.Style.t
val noStroke : Diagrams.Edge.Transfo.Style.t
val black : Diagrams.Edge.Transfo.Style.t
val lineWidth : float -> Diagrams.Edge.Transfo.Style.t
val do_clip :
(float array * float array) list ->
Diagrams.Gentity.t ->
Diagrams.Gentity.t -> (float array * float array) list
val clip : Transfo.Style.t
val clip_pet : Transfo.Pet.t
val draw : Transfo.Style.t
val draw_pet : Transfo.Pet.t
val do_squiggle :
int ->
float -> float array * float array -> (float array * float array) list
val squiggle : int -> float -> float -> float -> Transfo.Style.t
val squiggle_pet : Transfo.Pet.t
val shorten : float -> float -> Transfo.Style.t
val shorten_pet : Transfo.Pet.t
val shortenS : float -> Diagrams.Edge.Transfo.Style.t
val shortenE : float -> Diagrams.Edge.Transfo.Style.t
val zs : float array list -> Transfo.Style.t
val zs_pet : Transfo.Pet.t
val double : float -> Transfo.Style.t
val double_pet : Transfo.Pet.t
val fontArrowHeadCurves :
Document.environment -> (float array * float array) list list * float
val fontArrowHead :
float * float ->
float ->
'a ->
Diagrams.Edge.tip_info ->
RawContent.path_param ->
(float array * float array) list list ->
float -> (float array * float array) list
val cliptip :
?reverse:bool ->
float * float ->
Diagrams.Edge.info ->
(float array * float array) list ->
(float array * float array) list -> (float array * float array) list
val base_arrow :
Document.environment ->
?head_or_tail:bool -> Diagrams.Edge.info -> Diagrams.Edge.info
val arrowOf : Document.environment -> Transfo.Style.t
val arrow_head_pet : Transfo.Pet.t
val arrow : Document.environment -> Diagrams.Edge.Transfo.Style.t
val backArrowOf : Document.environment -> Transfo.Style.t
val backArrow_head_pet : Transfo.Pet.t
val arrow' : Document.environment -> Diagrams.Edge.Transfo.Style.t
val bothArrowOf : Document.environment -> Transfo.Style.t
val bothArrow_head_pet : Transfo.Pet.t
val dblArrow : Document.environment -> Diagrams.Edge.Transfo.Style.t
val modToOf : float -> float -> Document.environment -> Transfo.Style.t
val mod_to_of_pet : Transfo.Pet.t
val modTo : Document.environment -> Diagrams.Edge.Transfo.Style.t
val bendOf : float -> Transfo.Style.t
val bend_pet : Transfo.Pet.t
val bendLeft : float -> Diagrams.Edge.Transfo.Style.t
val bendRight : float -> Diagrams.Edge.Transfo.Style.t
val foreground :
?shortens:float ->
?shortene:float -> ?color:Color.color -> float -> Transfo.Style.t
val foreground_pet : Transfo.Pet.t
val make_anchors : Transfo.Style.t
val make_anchors_pet : Transfo.Pet.t
val label :
Document.environment ->
?pos:anchor ->
?style:Node.Transfo.Style.t list ->
Document.content list -> Transfo.Style.t
val label_pet : Transfo.Pet.t
val label_anchor :
Diagrams.anchor ->
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val above :
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val below :
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val left :
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val right :
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val aboveL :
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val aboveR :
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val belowL :
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val belowR :
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val labelOn :
Document.environment ->
?style:Diagrams.Node.Transfo.Style.t list ->
Document.environment ->
?pos:Diagrams.anchor ->
?shape:Diagrams.Node.Transfo.Style.t ->
Document.content list -> Diagrams.Edge.Transfo.Style.t
val raw_edge :
Diagrams.Edge.Transfo.Style.t list ->
Diagrams.Gentity.t ->
Diagrams.Gentity.t -> Diagrams.Curve.t -> Diagrams.Edge.info
val path_of_curve :
Diagrams.Edge.Transfo.Style.t list ->
Diagrams.Curve.t -> Diagrams.Edge.info
val path :
Diagrams.Edge.Transfo.Style.t list ->
float * float -> (float * float) list list -> Diagrams.Edge.info
val polyLine :
Diagrams.Edge.Transfo.Style.t list ->
Diagrams.Node.info list -> Diagrams.Edge.info
val of_gentities :
Diagrams.Edge.Transfo.Style.t list ->
Diagrams.Gentity.t ->
?controls:Diagrams.Point.t list list ->
Diagrams.Gentity.t -> Diagrams.Edge.info
val make :
Diagrams.Edge.Transfo.Style.t list ->
Diagrams.Node.info ->
?controls:Diagrams.Point.t list list ->
Diagrams.Node.info -> Diagrams.Edge.info
val makes :
Diagrams.Edge.Transfo.Style.t list ->
(Diagrams.Edge.Transfo.Style.t list * Diagrams.Node.info *
Diagrams.Point.t list list * Diagrams.Node.info)
list -> Diagrams.Edge.info list
val make_3d :
Diagrams.Edge.Transfo.Style.t list ->
Diagrams.Node.info ->
?projection:Proj3d.projection ->
?controls:Diagrams.Point.t list list ->
?controls3d:(float * float * float) list list ->
Diagrams.Node.info -> Diagrams.Edge.info
val makes_3d :
Diagrams.Edge.Transfo.Style.t list ->
?projection:Proj3d.projection ->
(Diagrams.Edge.Transfo.Style.t list * Diagrams.Node.info *
Diagrams.Point.t list list * (float * float * float) list list *
Diagrams.Node.info)
list -> Diagrams.Edge.info list
val restrict :
Diagrams.Edge.info -> int * float -> int * float -> Diagrams.Edge.info
val put_forth :
Diagrams.Edge.info ->
int * float -> ?color:Color.color -> float -> float -> Diagrams.Edge.info
end