hgeometry-ipe-0.9.0.0: src/Data/Tree/Draw.hs
module Data.Tree.Draw where
import Data.Ext
import Data.Geometry.LineSegment
import Data.Geometry.Point
import Data.Geometry.Ipe
import Data.Tree
--------------------------------------------------------------------------------
-- | Draws a tree
drawTree' :: IpeOut (Tree (Point 2 r :+ p)) Group r
drawTree' = ipeGroup . map (iO . defIO . uncurry ClosedLineSegment) . treeEdges
treeEdges :: Tree a -> [(a,a)]
treeEdges (Node v chs) = map ((v,) . rootLabel) chs ++ concatMap treeEdges chs