Module Mlpost__.Arrow

val normalize : Mlpost__.Point_lib.t -> Mlpost__.Point_lib.t
val neg : Mlpost__.Point_lib.t -> Mlpost__.Point_lib.t
val direction_on_path : float -> Mlpost__.Types.path -> Mlpost__.Spline_lib.point
val point_on_path : float -> Mlpost__.Types.path -> Mlpost__.Spline_lib.point
val subpath_01 : float -> float -> Mlpost__.Types.path -> Mlpost__.Types.path
type line = {
brush : Mlpost__.Types.brush;
from_point : float;
to_point : float;
dist : Mlpost.Num.t;
}
type head_description = {
hd_command : Mlpost.Command.t;
hd_cut : Mlpost__.Types.path option;
}
val make_head : ?⁠cut:Mlpost__.Types.path -> Mlpost.Command.t -> head_description
type head = Mlpost.Point.t -> Mlpost.Point.t -> head_description
type belt = {
clip : bool;
rev : bool;
point : float;
head : head;
}
type kind = {
lines : line list;
belts : belt list;
}
val empty : kind
val add_line : ?⁠brush:Mlpost__.Types.brush -> ?⁠dashed:Mlpost__.Types.dash -> ?⁠color:Mlpost__.Types.color -> ?⁠pen:Mlpost__.Types.pen -> ?⁠from_point:float -> ?⁠to_point:float -> ?⁠dist:Mlpost.Num.t -> kind -> kind
val head_classic_points : ?⁠angle:float -> ?⁠size:float -> Mlpost__.Point_lib.t -> Mlpost__.Point_lib.t -> Mlpost__.Point_lib.t * Mlpost__.Point_lib.t
val head_classic : ?⁠color:Mlpost__.Types.color -> ?⁠brush:Mlpost__.Types.brush -> ?⁠pen:Mlpost__.Types.pen -> ?⁠dashed:Mlpost__.Types.dash -> ?⁠angle:float -> ?⁠size:float -> Mlpost__.Point_lib.t -> Mlpost__.Point_lib.t -> head_description
val head_triangle : ?⁠color:Mlpost__.Types.color -> ?⁠brush:Mlpost__.Types.brush -> ?⁠pen:Mlpost__.Types.pen -> ?⁠dashed:Mlpost__.Types.dash -> ?⁠angle:float -> ?⁠size:float -> Mlpost__.Point_lib.t -> Mlpost__.Point_lib.t -> head_description
val head_triangle_full : ?⁠color:Mlpost__.Types.color -> ?⁠angle:float -> ?⁠size:float -> Mlpost__.Point_lib.t -> Mlpost__.Point_lib.t -> head_description
val add_belt : ?⁠clip:bool -> ?⁠rev:bool -> ?⁠point:float -> ?⁠head:head -> kind -> kind
val add_head : ?⁠head:head -> kind -> kind
val add_foot : ?⁠head:head -> kind -> kind
val parallel_path : Mlpost__.Types.path -> float -> Mlpost__.Types.path
val make_arrow_line : Mlpost__.Types.path -> line -> line * Mlpost__.Types.path
val make_arrow_belt : Mlpost__.Types.path -> belt -> belt * Mlpost.Command.t * Mlpost__.Types.path option
val clip_line_with_belt : ('a * Mlpost__.Types.path) -> (belt * 'b * Mlpost__.Types.path option) -> 'a * Mlpost__.Types.path
val draw_line : (line * Mlpost__.Types.path) -> Mlpost__.Types.commandpic
val mk_classic : ?⁠color:Mlpost__.Types.color -> unit -> kind
val mk_implies : ?⁠color:Mlpost__.Types.color -> unit -> kind
val classic : kind
val triangle : kind
val triangle_full : kind
val implies : kind
val iff : kind
val draw : ?⁠kind:kind -> ?⁠tex:string -> ?⁠pos:float -> ?⁠anchor:Mlpost__.Types.position -> Mlpost__.Types.path -> Mlpost__.Types.commandpic
type ('a, 'b) arrow_from_to = ?⁠kind:kind -> ?⁠tex:string -> ?⁠pos:float -> ?⁠anchor:Mlpost.Command.position -> ?⁠style:Mlpost.Path.joint -> ?⁠outd:Mlpost.Path.direction -> ?⁠ind:Mlpost.Path.direction -> ?⁠sep:Mlpost.Num.t -> 'a -> 'b -> Mlpost.Command.t
val point_to_point : ?⁠kind:kind -> ?⁠tex:string -> ?⁠pos:float -> ?⁠anchor:Mlpost__.Types.position -> ?⁠style:Mlpost__.Types.joint -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠sep:float -> Mlpost__.Types.point -> Mlpost__.Types.point -> Mlpost__.Types.commandpic
val box_to_box : ?⁠kind:kind -> ?⁠tex:string -> ?⁠pos:float -> ?⁠anchor:Mlpost__.Types.position -> ?⁠style:Mlpost__.Types.joint -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠sep:float -> Mlpost.Box.t -> Mlpost.Box.t -> Mlpost__.Types.commandpic
val box_to_point : ?⁠kind:kind -> ?⁠tex:string -> ?⁠pos:float -> ?⁠anchor:Mlpost__.Types.position -> ?⁠style:Mlpost__.Types.joint -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠sep:float -> Mlpost.Box.t -> Mlpost__.Types.point -> Mlpost__.Types.commandpic
val point_to_box : ?⁠kind:kind -> ?⁠tex:string -> ?⁠pos:float -> ?⁠anchor:Mlpost__.Types.position -> ?⁠style:Mlpost__.Types.joint -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠sep:float -> Mlpost__.Types.point -> Mlpost.Box.t -> Mlpost__.Types.commandpic
val simple_point_point : ?⁠style:Mlpost__.Types.joint -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠sep:float -> Mlpost__.Types.point -> Mlpost__.Types.point -> Mlpost__.Types.path
val neg : Mlpost__.Point_lib.t -> Mlpost__.Point_lib.t
val thick_path : ?⁠style:Mlpost__.Types.joint -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠width:float -> ?⁠head_length:float -> ?⁠head_width:float -> Mlpost__.Types.point -> Mlpost__.Types.point -> Mlpost__.Types.path
val draw_thick : ?⁠style:Mlpost__.Types.joint -> ?⁠boxed:bool -> ?⁠line_color:Mlpost__.Types.color -> ?⁠fill_color:Mlpost__.Types.color -> ?⁠outd:Mlpost__.Types.direction -> ?⁠ind:Mlpost__.Types.direction -> ?⁠width:float -> ?⁠head_length:float -> ?⁠head_width:float -> Mlpost__.Types.point -> Mlpost__.Types.point -> Mlpost__.Types.commandpic
val simple : ?⁠color:Mlpost__.Types.color -> ?⁠brush:Mlpost__.Types.brush -> ?⁠pen:Mlpost__.Types.pen -> ?⁠dashed:Mlpost__.Types.dash -> Mlpost__.Types.path -> Mlpost__.Types.commandpic