Portability | GHC |
---|---|
Stability | highly unstable |
Maintainer | Stephen Tetley <stephen.tetley@gmail.com> |
- type TreePicture = Picture Double
- type ScaleFactors = ScalingContext Double Int Double
- uniformScaling :: Double -> ScaleFactors
- scaleFactors :: Double -> Double -> ScaleFactors
- drawTreePicture :: (a -> TreeNode) -> DrawingContext -> ScaleFactors -> Tree a -> TreePicture
- drawFamilyTreePicture :: (a -> TreeNode) -> DrawingContext -> ScaleFactors -> Tree a -> TreePicture
- writeEPS_TreePicture :: FilePath -> TreePicture -> IO ()
- writeSVG_TreePicture :: FilePath -> TreePicture -> IO ()
- charNode :: Char -> TreeNode
- textNode :: String -> TreeNode
- circleNode :: RGBi -> a -> TreeNode
- diskNode :: RGBi -> a -> TreeNode
The type of rendered trees
type TreePicture = Picture DoubleSource
A rendered tree - alias for for Picture Double
in
Wumpus-Core.
type ScaleFactors = ScalingContext Double Int DoubleSource
Customize the size of the printed tree.
A tree is designed with a height of 1 unit between parent and child nodes.
The y-scaling factor multiplies the unit height, a scaling factor of 30 represents 30 points.
In the horizontal, 1 unit is the smallest possible distance between child nodes.
uniformScaling :: Double -> ScaleFactorsSource
Build uniform x- and y-scaling factors, i.e. x == y
.
scaleFactors :: Double -> Double -> ScaleFactorsSource
drawTreePicture :: (a -> TreeNode) -> DrawingContext -> ScaleFactors -> Tree a -> TreePictureSource
drawTreePicture
: draw_fun * attr * scale_factors * tree -> TreePicture
The rendering function.
draw_fun
renders the individual nodes. Usually charNode
,
circleNode
attr
is the font size (translates to node size), stroke
colour, fill colour.
scale_factors
scales the distances between parent and child
(y-scale) and sibling nodes (x-scale).
tree
is the input tree to be rendered.
drawFamilyTreePicture :: (a -> TreeNode) -> DrawingContext -> ScaleFactors -> Tree a -> TreePictureSource
Output to file
writeEPS_TreePicture :: FilePath -> TreePicture -> IO ()Source
Output a TreePicture
, generating an EPS file.
writeSVG_TreePicture :: FilePath -> TreePicture -> IO ()Source
Output a TreePicture
, generating a SVG file.
Drawing nodes
charNode :: Char -> TreeNodeSource
Render tree nodes with a single character.
Useful for rendering Data.Tree Char
.
textNode :: String -> TreeNodeSource
Tree nodes with a text label.
Useful for rendering Data.Tree String
.
Note the width of the label is not accounted for in the design of the tree. Labels with long texts may overlap. Also, only a single line of text is printed - any text after the first newline character will be dropped.
circleNode :: RGBi -> a -> TreeNodeSource
Tree nodes with a stroked circle.
Suitable for printing the shape of a tree, ignoring the data.