github ↗
docs menu

Module Hugin.Resolved

Resolved figures.

A resolved figure is a figure with its view applied, its binds evaluated, its ids assigned, its scopes formed and its composition checked, and every scale fitted to its data, which was summarised where it lives. It holds no size and no theme.

#type t

The type for resolved figures.

#val scale : ?at:id -> t -> 'd Scale.t -> 'd Scale.t

scale ~at r s is the scale named like s, of the kind of s, in the scope that holds the node at (Scopes), the root by default, fitted: its domain set and its nice and zero unset (Scale.fit), and its other properties those its channels merged, implied ones included. Given to another figure, it normalises as it does in r and carries the ranges it states. So a zoomed scale has its zoomed domain (View.zoom), and a band scale read by y has the reverse that y implies, which reverses x where the scale is given to x. A stepped scale steps at the ticks of the figure that draws it, so another figure, of another size or theme, may step it elsewhere. Only the name and kind of s are read: scale r (Scale.linear ~name:"color" ()) is the fitted quantitative "color".

Raises Invalid_argument if s is unnamed, if no node of r has the id at, if no scope of the name of s holds at, or if its scope has no scale of that name and kind.

#val warnings : t -> warning list

warnings r is the warnings of resolving, in the order of the nodes they are about in the figure, a generated node in the place of the node it lies under, then those about values of the view that no key reads.

#val equal : t -> t -> bool

equal r r' is true iff r and r' resolve Hugin.equal figures under View.equal views to the same scopes, Scale.equal fitted scales and equal warnings. The figures that bind returns are not compared: they are functions of the figure and the view.

#val pp : Stdlib.Format.formatter -> t -> unit

pp ppf r formats the scopes of r, their fitted scales and the warnings, for debugging and baselines.