| Portability | GHC | 
|---|---|
| Stability | unstable | 
| Maintainer | stephen.tetley@gmail.com | 
Wumpus.Core.GraphicProps
Description
Data types for stroke and label styles corresponding to the
 styles provided by PostScript / SVG (StrokeAttr, etc.).
Data types for annotating Primitives with their drawing style
 (PathProps, etc.). Wumpus represents pictures as trees and
 decorates all elements (paths, text-labels) with their drawing
 style. This is boardly similar to how SVG handles attributes. 
 For PostScript output, Wumpus renders attribute changes as 
 graphics state updates. 
- data StrokeAttr = StrokeAttr {}
 - data LineCap
 - data LineJoin
 - data DashPattern
 - data FontAttr = FontAttr {}
 - data FontFace = FontFace {}
 - data SVGFontStyle
 - data PathProps
 - data LabelProps = LabelProps {}
 - data EllipseProps
 - default_stroke_attr :: StrokeAttr
 - defaultFont :: Int -> FontAttr
 - wumpus_default_font :: FontAttr
 
Stroke attributes
data StrokeAttr Source
Stroke attributes for drawing paths.
Constructors
| StrokeAttr | |
Fields 
  | |
Instances
Line cap - default in output is butt.
Cap Butt:
.-------. |=======| '-------'
Cap Round:
.-------. ( ======= ) '-------'
Cap Square:
.---------. | ======= | '---------'
Line join - default in output is miter.
Join Miter:
      /\
     /..\ 
    /./\.\
   /./  \.\
  /./    \.\
Join Round:
  \.\  
   \.\ 
    ,.)
   /./
  /./
Join Bevel:
      __
     /..\ 
    /./\.\
   /./  \.\
  /./    \.\
data DashPattern Source
Dash pattern - either a solid line or a list of on-off pairs together with an offset into the dashes.
Solid
Dash offset [(on,off )..]
Instances
Font attributes
Font face and size. Equivalent fonts have different names
 in PostScript and SVG. A PostScript font name includes the 
 font style (e.g. Times-BoldItalic) whereas an SVG font has 
 a name (the font-family attribute) and a style.
For PostScript, the following fonts are expected to exist:
Times-Roman Times-Italic Times-Bold Times-BoldOtalic Helvetica Helvetica-Oblique Helvetica-Bold Helvetica-Bold-Oblique Courier Courier-Oblique Courier-Bold Courier-Bold-Oblique Symbol
See the PostScript Language Reference Manual.
FontFace :  postscript_name * svg_font_family * svg_font_style 
                * encoding_vector  
For the writing fonts in the Core 14 set the definitions are:
"Times-Roman" "Times New Roman" SVG_REGULAR standard_encoding "Times-Italic" "Times New Roman" SVG_ITALIC standard_encoding "Times-Bold" "Times New Roman" SVG_BOLD standard_encoding "Times-BoldItalic" "Times New Roman" SVG_BOLD_ITALIC standard_encoding "Helvetica" "Helvetica" SVG_REGULAR standard_encoding "Helvetica-Oblique" "Helvetica" SVG_OBLIQUE standard_encoding "Helvetica-Bold" "Helvetica" SVG_BOLD standard_encoding "Helvetica-Bold-Oblique" "Helvetica" SVG_BOLD_OBLIQUE standard_encoding "Courier" "Courier New" SVG_REGULAR standard_encoding "Courier-Oblique" "Courier New" SVG_OBLIQUE standard_encoding "Courier-Bold" "Courier New" SVG_BOLD standard_encoding "Courier-Bold-Oblique" "Courier New" SVG_BOLD_OBLIQUE standard_encoding
Constructors
| FontFace | |
Fields  | |
data SVGFontStyle Source
SVG font styles - potentially a style may generate both
 font-weight and font-style attributes in the SVG output.
Instances
Drawing styles for Primitives
Note when drawn filled and drawn stroked the same polygon will have (slightly) different size:
- A filled shape fills within the boundary of the shape
 - A stroked shape draws a pen line around the boundary of the shape. The actual size depends on the thickness of the line (stroke width).
 
CFill - closed path filled with the colour.
CStroke - closed path, stroked with the colour.
OStroke - open path, stroked with the colour.
CFillStroke - closed path, filled with the first colour, stroked with the stroke attributes and second colour.
Constructors
| CFill RGBi | |
| CStroke StrokeAttr RGBi | |
| OStroke StrokeAttr RGBi | |
| CFillStroke RGBi StrokeAttr RGBi | 
data LabelProps Source
Font rendering properties for a PrimLabel.
Constructors
| LabelProps | |
Fields 
  | |
Instances
data EllipseProps Source
Ellipses and circles are always closed.
EFill - filled ellipse.
EStroke - stroked ellipse.
EFillStroke - ellipse filled with the first colour and stroked with the stroke attributes and second colour.
Constructors
| EFill RGBi | |
| EStroke StrokeAttr RGBi | |
| EFillStroke RGBi StrokeAttr RGBi | 
Instances
Defaults
default_stroke_attr :: StrokeAttrSource
Default stroke attributes.
line_width = 1 miter_limit = 1 line_cap = CapButt line_join = JoinMiter dash_pattern = Solid
defaultFont :: Int -> FontAttrSource
defaultFont : font_size -> FontAttr 
Constructor for the default font, which is Courier (aliased 
 to Courier New for SVG) at the supplied size.
Note - the font uses the Standard encoding - this is common to fonts but uses different indices to the more common Latin1.
For instance 232 is Lslash not egrave.
Both GhostScript and the standard AFM Core 14 metrics supplied by Adobe use Standard Encoding but include further characters (e.g. egrave) in the non-indexed higher-region.
wumpus_default_font :: FontAttrSource
Constant for the default font (Courier) at 14 point.