| Portability | GHC |
|---|---|
| Stability | highly unstable |
| Maintainer | Stephen Tetley <stephen.tetley@gmail.com> |
Wumpus.Tree
Description
- type TreeDrawing u = Drawing u
- type DTreeDrawing = TreeDrawing Double
- type ScaleFactors u = ScalingContext u Int u
- uniformScaling :: Num u => u -> ScaleFactors u
- scaleFactors :: Num u => u -> u -> ScaleFactors u
- drawScaledTree :: (Real u, Floating u, FromPtSize u, InnerSpace (Vec2 u)) => (a -> TreeNode u) -> ScaleFactors u -> Tree a -> TreeDrawing u
- drawScaledFamilyTree :: (Real u, Floating u, FromPtSize u, InnerSpace (Vec2 u)) => (a -> TreeNode u) -> ScaleFactors u -> Tree a -> TreeDrawing u
- charNode :: (Real u, Floating u, FromPtSize u) => Char -> TreeNode u
- textNode :: (Real u, Floating u, FromPtSize u) => String -> TreeNode u
- circleNode :: (Floating u, FromPtSize u) => RGBi -> a -> TreeNode u
- diskNode :: (Floating u, FromPtSize u) => RGBi -> a -> TreeNode u
The type of rendered trees
type TreeDrawing u = Drawing uSource
A rendered tree - alias for for Picture Double in
Wumpus-Core.
type DTreeDrawing = TreeDrawing DoubleSource
type ScaleFactors u = ScalingContext u Int uSource
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 :: Num u => u -> ScaleFactors uSource
Build uniform x- and y-scaling factors, i.e. x == y .
scaleFactors :: Num u => u -> u -> ScaleFactors uSource
drawScaledTree :: (Real u, Floating u, FromPtSize u, InnerSpace (Vec2 u)) => (a -> TreeNode u) -> ScaleFactors u -> Tree a -> TreeDrawing uSource
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.
drawScaledFamilyTree :: (Real u, Floating u, FromPtSize u, InnerSpace (Vec2 u)) => (a -> TreeNode u) -> ScaleFactors u -> Tree a -> TreeDrawing uSource
Drawing nodes
charNode :: (Real u, Floating u, FromPtSize u) => Char -> TreeNode uSource
Render tree nodes with a single character.
Useful for rendering Data.Tree Char .
textNode :: (Real u, Floating u, FromPtSize u) => String -> TreeNode uSource
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 :: (Floating u, FromPtSize u) => RGBi -> a -> TreeNode uSource
Tree nodes with a stroked circle.
Suitable for printing the shape of a tree, ignoring the data.