wumpus-core-0.12.0: Pure Haskell PostScript and SVG generation.

PortabilityGHC
Stabilityhighly unstable
MaintainerStephen Tetley <stephen.tetley@gmail.com>

Wumpus.Core.PostScript

Contents

Description

Wumpus - Writer Monad PostScript

PostScript is emitted line by line - there is no abstract syntax tree representing PostScript. So we use a writer monad.

Synopsis

Types

type WumpusM a = PsT Id aSource

runWumpus :: TextEncoder -> WumpusM a -> StringSource

Drop state and result, take the Writer trace.

Deltas

Emit PostScript

ps_setlinewidth :: PSUnit u => u -> WumpusM ()Source

 ... setlinewidth

ps_setlinecap :: LineCap -> WumpusM ()Source

 ... setlinecap

ps_setlinejoin :: LineJoin -> WumpusM ()Source

 ... setlinejoin

ps_setmiterlimit :: PSUnit u => u -> WumpusM ()Source

 ... setmiterlimit

ps_setdash :: DashPattern -> WumpusM ()Source

 [... ...] ... setdash

ps_setgray :: PSUnit u => u -> WumpusM ()Source

 ... setgray

ps_setrgbcolor :: PSUnit u => u -> u -> u -> WumpusM ()Source

 ... ... ... setrgbcolor

ps_sethsbcolor :: PSUnit u => u -> u -> u -> WumpusM ()Source

 ... ... ... sethsbcolor

ps_translate :: PSUnit u => u -> u -> WumpusM ()Source

 ... ... translate

ps_scale :: PSUnit u => u -> u -> WumpusM ()Source

 ... ... scale

ps_concat :: PSUnit u => CTM u -> WumpusM ()Source

 [... ... ... ... ... ...] concat

ps_moveto :: PSUnit u => u -> u -> WumpusM ()Source

 ... ... moveto

ps_rmoveto :: PSUnit u => u -> u -> WumpusM ()Source

 ... ... rmoveto

ps_lineto :: PSUnit u => u -> u -> WumpusM ()Source

 ... ... lineto

ps_rlineto :: PSUnit u => u -> u -> WumpusM ()Source

 ... ... rlineto

ps_arc :: PSUnit u => u -> u -> u -> u -> u -> WumpusM ()Source

 ... ... ... ... ... arc

ps_arcn :: PSUnit u => u -> u -> u -> u -> u -> WumpusM ()Source

 ... ... ... ... ... arcn

ps_curveto :: PSUnit u => u -> u -> u -> u -> u -> u -> WumpusM ()Source

 ... ... ... ... ... ... curveto

ps_findfont :: String -> WumpusM ()Source

The following fonts are expected to exist on most platforms:

 Times-Roman  Times-Italic  Times-Bold  Times-BoldItalic
 Helvetica  Helvetica-Oblique  Helvetica-Bold  Helvetica-Bold-Oblique
 Courier  Courier-Oblique  Courier-Bold  Courier-Bold-Oblique
 Symbol

List from Bill Casselman 'Mathematical Illustrations' p279.

 /... findfont

ps_scalefont :: Int -> WumpusM ()Source

 ... scalefont

ps_show :: String -> WumpusM ()Source

 (...) show

bang_PS :: WumpusM ()Source

 %!PS-Adobe-3.0

bang_EPS :: WumpusM ()Source

 %!PS-Adobe-3.0 EPSF-3.0

dsc_comment :: String -> [String] -> WumpusM ()Source

 %%...: ...

dsc_BoundingBox :: PSUnit u => u -> u -> u -> u -> WumpusM ()Source

%%BoundingBox: ... ... ... ... llx lly urx ury

dsc_CreationDate :: String -> WumpusM ()Source

 %%CreationDate: ...

The creation date is informational and never interpreted, thus the format is entirely arbitrary.

dsc_Pages :: Int -> WumpusM ()Source

 %%Pages: ...

dsc_Page :: String -> Int -> WumpusM ()Source

 %%Page: ... ...