wumpus-core: Pure Haskell PostScript and SVG generation.
Wumpus-Core is a low-level library for generating static 2D
vector pictures, its salient feature is portability due to no
FFI dependencies. It can generate PostScript (EPS) files and SVG
files. The generated PostScript code is plain and someways
efficient as the use of stack operations, i.e gsave and
grestore, is minimized (unfortunately there is no sharing
so the generated PostScript can be huge...).
Although Wumpus-Core only generates vector output, the generated PostScript can be interpreted by GraphicsMagick or a similar tool to convert EPS files into bitmap image files (e.g JPEGs).
Wumpus-Core makes pictures from paths and text labels. Paths themselves are made from points. The usual affine transformations (rotations, scaling, translations) can be applied to Pictures. Unlike PostScript there is no notion of a current point, Wumpus-Core builds pictures by direct positioning of each element.
GENERAL DRAWBACKS...
For actually building pictures, diagrams, etc. Wumpus-Core is
very low-level. There are two supplementary packages
Wumpus-Basic and Wumpus-Drawing also on Hackage that aim to
be a higher-level basis for creating certain types of diagram,
but they are experimental - functionality is added and dropped
between releases and curently the API is too unstable to write
code upon (they should be considered a technology preview rather
than re-usable libraries).
Also, some of the design decisions made for Wumpus-Core are not sophisticated - e.g. how path and text attributes like colour are handled, and how the bounding boxes of text labels are calculated. Compared to other systems, Wumpus might be rather limited, however, the design permits a fairly simple implementation.
Changelog:
v0.52.0 to v0.52.1:
Removed internal
(<>)format combinator that caused problems for GHC 7.4.
v0.51.0 to v0.52.0:
Added limited support for adding SVG ids to text and Primitives.
Fixed types of
d2randr2dto Double for degrees, rather than a parametric (Real a, Floating a) type. Although this is less general, it removes the burden of type annotating the common case.Added the vector functions
orthoVec,vsumandvdifftoCore.Geometry.Re-named
cliptoclipPrimitive
v0.50.0 to v0.51.0:
Added special cases to handle continuity to the function
lineDirectioninCore.Geometry.Added
zeroVectoCore.Geometry.Extended some Haddock documentation.
v0.43.0 to v0.50.0:
Major change hence the version number jump - the notion of parametric unit has been removed from the
Pictureobjects (it for remains theGeometricobjectsPoint2,Vec2etc.). Certain useful units, e.g.emanden, are contextual on the "current point size", and having a parametric unit here was actually a hinderance to supporting units properly in higher-level layers. Now all Picture objects (those defined or exported fromCore.Picture) are fixed to use Doublerepresenting PostScript points. Higher level layers that intend to support alternative units must translate drawing objects to PostScript point measurements before calling the Picture API. Geometric objects - objects defined in
Core.Geometry, e.g.Point2,Vec2- are still polymorphic on unit.Picture API change - Various function names changed.
lineTobecomesabsLineToandcurveTobecomesabsCurveTo. The path builders are qualified with Prim,vertexPathbecomesvertexPrimPath,vectorPathbecomesvectorPrimPath,emptyPathbecomesemptyPrimPathandcurvedPathbecomescurvedPrimPath.xlinkbecomesxlinkPrim.API change -
PtSizedata type replaced byAfmUnitfor font measurements.API and representation change - clipping paths are represented as
Primitiveconstructor rather than aPictureconstructor. This should make them more useful. The type of the functionclipinCore.Picturehas likewise changed.Picture API change - changed
primPathtoabsPrimPath, added the functionsrelPrimPath,relLineTo,relCurveTo.Added the class
TolerancetoCore.Geometryand made the Eq instances ofPoint2,Vec2andBoundingBoxtolerant. Tolerance accounts for a fairly lax equality on floating point numbers - it is suitable for Wumpus (printing) where high accuracy is needed.
v0.42.1 to v0.43.0:
API change - the function
bezierCircleinCore.Geometryhas changed. It now implements a better method of drawing circles with Bezier curves and no longer needs the subvision factor. The old circle drawing function has been retained assubdivisionCircleas it is useful for corroboratingbezierCircle, but the general use ofsubdivisionCircleshould be avoided.Added a function
bezierEllipsetoCore.Geometry.
Modules
[Index]
Downloads
- wumpus-core-0.52.1.tar.gz [browse] (Cabal source package)
 - Package description (revised from the package)
 
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
 
| Versions [RSS] | 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.15.0, 0.16.0, 0.17.0, 0.18.0, 0.19.0, 0.20.0, 0.21.0, 0.22.0, 0.23.0, 0.30.0, 0.31.0, 0.32.0, 0.33.0, 0.34.0, 0.35.0, 0.36.0, 0.37.0, 0.40.0, 0.41.0, 0.42.0, 0.42.1, 0.43.0, 0.50.0, 0.51.0, 0.52.0, 0.52.1 | 
|---|---|
| Change log | CHANGES | 
| Dependencies | base (<4.8), containers (>=0.3 && <=0.6), time (>=1.1.3 && <1.6), vector-space (>=0.6 && <1.0) [details] | 
| License | BSD-3-Clause | 
| Copyright | Stephen Tetley <stephen.tetley@gmail.com> | 
| Author | |
| Maintainer | Stephen Tetley <stephen.tetley@gmail.com> | 
| Revised | Revision 1 made by HerbertValerioRiedel at 2015-11-07T11:42:34Z | 
| Category | Graphics | 
| Home page | http://code.google.com/p/copperbox/ | 
| Uploaded | by StephenTetley at 2012-05-01T12:50:58Z | 
| Distributions | |
| Reverse Dependencies | 5 direct, 0 indirect [details] | 
| Downloads | 25968 total (43 in the last 30 days) | 
| Rating | (no votes yet) [estimated by Bayesian average] | 
| Your Rating | |
| Status | Docs uploaded by user Build status unknown [no reports yet]  |