This module contains the necessary calls to the other modules of Metafont'
to compute the outlines of a given number of pen strokes. The normal way of
using it is by calling `outlines`

. One other possible way would be :

let curves=cutAll curvesList in remerge $ contour curves $ intersections curves

- cutAll :: [[Curve]] -> Vector (Vector Curve)
- intersections :: Vector (Vector Curve) -> Map (Int, Int, Double) [(Int, Int, Double, Double)]
- contour :: Vector (Vector Curve) -> Map (Int, Int, Double) [(Int, Int, Double, Double)] -> [[(Int, Int, Double, Double)]]
- remerge :: Vector (Vector Curve) -> [(Int, Int, Double, Double)] -> [Curve]
- outlines :: [[Curve]] -> [[Curve]]

# Documentation

cutAll :: [[Curve]] -> Vector (Vector Curve)Source

is the array of all the curves, cut such that
each part does not intersect itself.
`cutAll`

curves

intersections :: Vector (Vector Curve) -> Map (Int, Int, Double) [(Int, Int, Double, Double)]Source

Computes the intersections between any pair of curves given
as input, in parallel in GHC using `+RTS -N`

.

contour :: Vector (Vector Curve) -> Map (Int, Int, Double) [(Int, Int, Double, Double)] -> [[(Int, Int, Double, Double)]]Source

`contour`

takes the curves and the intersections computed as in `intersections`

,
and outputs a list of all simple closed paths defined by the curves in the input.