Copyright | (c) 2013 Daniel Bergey |
---|---|

License | BSD-style (see LICENSE) |

Maintainer | bergey@alum.mit.edu |

Safe Haskell | None |

Language | Haskell2010 |

Define Diagrams Paths by specifying points and
optionally directions and tension. Calculate control points to
maintain smooth curvature at each point, following rules
implemented in Donald Knuth's *Metafont*.

This module is intended to be imported qualified.

- module Diagrams.TwoD.Path.Metafont.Combinators
- fromString :: (TrailLike t, V t ~ R2) => Text -> Either ParseError t
- fromStrings :: (TrailLike t, V t ~ R2) => [Text] -> Either [ParseError] [t]
- fromPath :: (TrailLike t, V t ~ R2) => MFP -> t
- flex :: (TrailLike t, V t ~ R2) => [P2] -> t
- metafont :: (TrailLike t, V t ~ R2) => MFPathData P -> t
- metafontParser :: Parser (MFPath (Maybe PathDir) BasicJoin)

# Documentation

fromString :: (TrailLike t, V t ~ R2) => Text -> Either ParseError t Source

MF.fromString parses a Text value in MetaFont syntax, and attempts to return a TrailLike. Only a subset of Metafont is supported; see the tutorial for details.

fromStrings :: (TrailLike t, V t ~ R2) => [Text] -> Either [ParseError] [t] Source

fromPath :: (TrailLike t, V t ~ R2) => MFP -> t Source

Should you wish to construct the MFPath in some other fashion, fromPath makes a TrailLike directly from the MFPath

flex :: (TrailLike t, V t ~ R2) => [P2] -> t Source

flex ps draws a Trail through the points ps, such that at every point p ∊ ps except the endpoints, the Trail is parallel to the line from the first to the last point. This is the same as the flex command defined in plain MetaFont.

metafont :: (TrailLike t, V t ~ R2) => MFPathData P -> t Source

metafont converts a path defined in the Metafont combinator synax into a native Diagrams TrailLike.