wumpus-basic
Version 0.14.0 revision 0 uploaded by StephenTetley.
Package meta
- Synopsis
- Common drawing utilities built on wumpus-core.
- Description
** WARNING ** - this package is sub-alpha, it was released to Hackage prematurely and while its capabilities have improved with subsequent updates it is arguably becoming even less stable and more experimental (unfortunately the only thing consistent about the API is that it consistently changes...).
Version 0.14.0 breaks up Wumpus-Basic into two layers -
Wumpus.Basic
for core data types, general utilities and System utilities (currently only font loading); the other layer,Wumpus.Drawing
, is for for specific drawing "objects" - arrowheads, dots, and the like. The APIs of theDrawing
modules have not been given much attention as the underlying graphic types have changed, they are due for substantial revision. This includes modules that were previously considered fairly stable such as theBasic.SafeFonts
module which no longer seems very SVG safe.NOTE - many of the demos now use font metrics. Font metrics for the "Core 14" PostScript fonts are distributed as
*.afm
files with GhostScript in thefonts
directory. Wumpus expects the GhostScript font metrics to be AFM version 2.0 files (this matches GhostScript 8.63). Alternatively, metrics for the Core 14 fonts are available from Adode (AFM version 4.1), see the links below. To run the demos properly you will need one of these sets of metrics.Adobe Font techinal 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
Also note that Wumpus uses fallback metrics (derived from the monospaced Courier font) when font loading fails, rather than throwing a terminal error. Applications should ideally check the font loading log to ensure that fonts have loaded correctly (the demos print this log to standard out).
Changelog:
v0.13.0 to v0.14.0:
Re-organised module hierarchy, Wumpus-Basic is now divided into two layers - Basic (Font loader, utils, kernel drawing) and Drawing - constructed graphic objects like arrows, dots, etc.
Re-designed the ContextFunction function types. Context functions with different numbers of static arguments are now separate newtypes. This has allowed a major cull of the combinators operating on context functions (
prepro
,postpro
,situ
, etc.) and now only a handful of special combinators are needed. As the newtypes are instances of Monad and Applicative the usual Applicative and Monad combinators are now more readily useful.Work on the font loader code to improve its robustness, and improved error signalling on load failure. Loading glyph metrics now returns both the metrics (possibly fallback metrics if parsing failed) and a log.
v0.12.0 to v0.13.0:
Major changes to
Basic.Graphic
modules.DrawingR
is renamedDrawing
and is substantially re-worked. Graphic functional types are now encapulated in the Drawing constructorDrawing (ctx -> pt -> prim)
rather than partially outside itpt -> Drawing (ctx -> prim)
.Drawing
monad renamedTraceDrawing
andDrawingT
transformer renamedTraceDrawingT
.Rudimentary font loading added, only AFM files are supported.
Basic.Shapes.Coordinate
re-worked. The Coordinate type is now more like the Shapes types (excepting the intentional difference in drawing style).Basic.Shapes.Plaintext
removed.Basic.Text.LRText
completely redesigned.
- Author
- n/a
- Bug reports
- n/a
- Category
- Graphics
- Copyright
- Stephen Tetley <stephen.tetley@gmail.com>
- Homepage
- http://code.google.com/p/copperbox/
- Maintainer
- Stephen Tetley <stephen.tetley@gmail.com>
- Package URL
- n/a
- Stability
- highly unstable