Unless stated otherwise, compositing functions assume every flomap argument has an alpha component.
Superimposes fm2 over fm1 so that point x2 y2 on flomap f2 is directly over point x1 y1 on flomap f1.
If x2 and y2 are not provided, they are assumed to be 0.
The result is expanded as necessary.
fm1 and fm2 must have the same number of components.
The other compositing functions are defined in terms of flomap-pin.
For each adjacent pair fm1 fm2 in the argument list, pins fm2 over fm1.
The pin-over points are calculated from the four real arguments as follows.
If fm1 is size w1×h1, then x1 = (* w1 x1-frac) and y1 = (* h1 y1-frac), and similarly for x2 and y2.
The following example pins the upper-left corner of each fm2 over a point near the upper-left corner of each fm1:
All the flomap superimpose and append functions are defined using flomap-pin* with different pin-over point fractions.
For example, (flomap-lt-superimpose fm0 fm ...) = (flomap-pin* 0 0 0 0 fm0 fm ...),
and (flomap-vc-append fm0 fm ...) = (flomap-pin* 1/2 1 1/2 0 fm0 fm ...).
These create a new flomap by superimposing the flomaps in the argument list.
The two-letter abbreviation determines the pin-over points.
For example, flomap-lt-superimpose
(“flomap left-top superimpose”) pins points 0 0
together on each adjacent pair of flomaps:
These create a new flomap by spatially appending the flomaps in the argument list.
The two-letter abbreviation determines direction (v or h) and alignment (l, c, r, or t, c, b).