name: wumpus-core version: 0.51.0 license: BSD3 license-file: LICENSE copyright: Stephen Tetley maintainer: Stephen Tetley homepage: http://code.google.com/p/copperbox/ category: Graphics synopsis: Pure Haskell PostScript and SVG generation. description: . 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 reasonably efficient as the use of stack operations, i.e @gsave@ and @grestore@, is minimized. . 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 in a coordinate-free style. . 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.50.0 to v0.51.0: . * Added special cases to handle continuity to the function @lineDirection@ in @Core.Geometry@. . * Added @zeroVec@ to @Core.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 @Picture@ objects (it for remains the @Geometric@ objects @Point2@, @Vec2@ etc.). Certain useful units, e.g. @em@ and @en@, 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 from @Core.Picture@) are fixed to use Double - representing 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. @lineTo@ becomes @absLineTo@ and @curveTo@ becomes @absCurveTo@. The path builders are qualified with /Prim/, @vertexPath@ becomes @vertexPrimPath@, @vectorPath@ becomes @vectorPrimPath@, @emptyPath@ becomes @emptyPrimPath@ and @curvedPath@ becomes @curvedPrimPath@. @xlink@ becomes @xlinkPrim@. . * API change - @PtSize@ data type replaced by @AfmUnit@ for font measurements. . * API and representation change - clipping paths are represented as @Primitive@ constructor rather than a @Picture@ constructor. This should make them more useful. The type of the function @clip@ in @Core.Picture@ has likewise changed. . * Picture API change - changed @primPath@ to @absPrimPath@, added the functions @relPrimPath@, @relLineTo@, @relCurveTo@. . * Added the class @Tolerance@ to @Core.Geometry@ and made the Eq instances of @Point2@, @Vec2@ and @BoundingBox@ tolerant. 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 @bezierCircle@ in @Core.Geometry@ has 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 as @subdivisionCircle@ as it is useful for corroborating @bezierCircle@, but the general use of @subdivisionCircle@ should be avoided. . * Added a function @bezierEllipse@ to @Core.Geometry@. . build-type: Simple stability: unstable cabal-version: >= 1.2 extra-source-files: CHANGES, LICENSE, demo/AffineTest01.hs, demo/AffineTest02.hs, demo/AffineTest03.hs, demo/AffineTestBase.hs, demo/ClipPic.hs, demo/DeltaPic.hs, demo/EllipsePic.hs, demo/FontMetrics.hs, demo/Hyperlink.hs, demo/KernPic.hs, demo/LabelPic.hs, demo/Latin1Pic.hs, demo/MultiPic.hs, demo/TextBBox.hs, demo/TransformEllipse.hs, demo/TransformPath.hs, demo/TransformTextlabel.hs, demo/ZOrderPic.hs, doc/Guide.pdf, doc-src/Guide.lhs, doc-src/Makefile, doc-src/WorldFrame.hs library hs-source-dirs: src build-depends: base < 5, containers >= 0.3 && <= 0.6, time >= 1.1.3 && < 1.6, vector-space >= 0.6 && < 1.0 exposed-modules: Wumpus.Core, Wumpus.Core.AffineTrans, Wumpus.Core.BoundingBox, Wumpus.Core.Colour, Wumpus.Core.FontSize, Wumpus.Core.Geometry, Wumpus.Core.GraphicProps, Wumpus.Core.OutputPostScript, Wumpus.Core.OutputSVG, Wumpus.Core.Picture, Wumpus.Core.Text.Base, Wumpus.Core.Text.GlyphIndices, Wumpus.Core.Text.GlyphNames, Wumpus.Core.Text.Latin1Encoding, Wumpus.Core.Text.StandardEncoding, Wumpus.Core.Text.Symbol, Wumpus.Core.VersionNumber, Wumpus.Core.WumpusTypes other-modules: Wumpus.Core.PageTranslation, Wumpus.Core.PictureInternal, Wumpus.Core.PostScriptDoc, Wumpus.Core.SVGDoc, Wumpus.Core.TrafoInternal, Wumpus.Core.Utils.Common, Wumpus.Core.Utils.HList, Wumpus.Core.Utils.JoinList, Wumpus.Core.Utils.FormatCombinators extensions: ghc-options: includes: