Mlpost.MetaPathMetaPaths: gradually build a path with constraints, get a real path at thxe end.
MetaPaths are the objects used to describe lines, curves, and more generally almost everything that is drawn with Mlpost. A path (Path.t) is defined by points and control points. A metapath is defined by points (knots) and constraints on the links between the points. A metapath is an easy way to define a path gradually with only a few points, and apply heuristics afterwards to transform it into a real path (using of_metapath).
type direction = Path.directionA direction is used to put constraints on metapaths:
vec p defines a direction by a point (interpreted as a vector)curl f changes the curling factor of the extremity of a metapath; higher curling factor means flatter curvesnoDir means no particular directionval curl : float -> directionval noDir : directiontype knot = Path.knotA knot is the basic element of a metapath, and is simply a point with an incoming and outgoing direction constraint
Build a knot from a point; the optional arguments are the incoming directions.Warning they are going in the same direction.
type joint = Path.jointA joint is the connection between two knots in a metapath. It is either
jLine for a straight linejCurve for a spline curvejCurveNoInflex to avoid inflexion pointsjTension f1 f2 to specify "tension" on the joint; jCurve uses a default tension of 1. Higher tension means less "wild" curvesjControls p1 p2 to explicitely specify control pointsval jLine : jointval jCurve : jointval jCurveNoInflex : jointval jTension : float -> float -> jointtype path = Path.tIn all the functions below :
Build a knot from a pair of floats
Build a knot from a Num.t pair; the optional arguments are as in knot
Build a metapath from a list of pairs of floats
Build a metapath from n points and n-1 joints, with default directions
Build a metapath from n float_pairs and n-1 joints, with default directions
Close a metapath using direction dir and style style
val defaultjoint : jointThe default joint style (JCurve)
Compute the control point of the path for a good looking result according to the constraint on the direction, tension, curve