@hackage wumpus-tree0.15.0

Drawing trees

Tree drawing with nice layout.

Draw trees represented by Data.Tree, output SVG or EPS. The output should be quite good - no overlapping edges, identical subtrees should have the same shape, leaf nodes evenly spaced.

Note - the demos now use font metrics. Font metrics for the "Core 14" PostScript fonts are distributed as *.afm files with GhostScript (AFM file version 2.0 for GhostScript 8.63) or available from Adode (AFM file version 4.1). To run the demos properly you will need one of these sets of metrics.

Adobe Font technical notes: https://www.adobe.com/devnet/font.html

Core 14 AFM metrics: https://www.adobe.com/content/dam/Adobe/en/devnet/font/pdfs/Core14_AFMs.tar

** WARNING ** - the API is unstable and will change.

Changelog:

v0.14.0 to v0.15.0

  • Updated to work with latest Wumpus libraries. ScalingContext has been temporarily added from Wumpus-Basic (it was considered obsolete there). At some point the functionality needs re-implementing so it can be removed from Tree.

v0.13.0 to v0.14.0:

  • Updated to work with latest Wumpus libraries.

v0.12.0 to v0.13.0:

  • Changed the specification of trees so that they are built in a monad. The bind operation of the monad allows anchors to be extracted from tree nodes so they can be annotated with supplementary graphics. At the moment this is rather limited as Wumpus-Basic and Wumpus-Drawing do not offer much support for anchors other than the basic type classes.

  • Changed the type of the rendering functions so they produce a TreeDrawing. This type is more suitable for building composite pictures than the previous type TreePicture.

  • Also the rendering functions now take a start point for the root node, again this should be more convenient for drawing composite pictures - see the demo which now draws all the example trees on one page.

  • Internally the tree design is now more flexible - trees can be designed upwards or leftwards rightwards, rather than just downwards; and edge drawing style is lifted out of the rendering to use a supplied combinator. Currently these features are not exposed by the API, the API needs more thought (possibly warranting changes to Wumpus-Basic and Wumpus-Drawing).

v0.11.1 to v0.12.0:

  • Internal changes to track updates to Wumpus-Basic.