Portability | GHC |
---|---|
Stability | highly unstable |
Maintainer | Stephen Tetley <stephen.tetley@gmail.com> |
- 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.