- type Point = (Double, Double)
- type Line = (Point, Point)
- crossPoint :: Line -> Line -> Maybe Point
- plantedToLines :: Planted a -> [(Line, a)]
- plantToGeometry :: Plant a -> GeometryGenerator a ()
- gardenToLines :: Garden a -> [(Line, a)]
- lightenLines :: Double -> [(Line, a)] -> [(Line, a, Double)]
- lightPolygons :: Double -> [(Line, a)] -> [(Point, Point, Point, Point, Double)]
- allKindsOfStuffWithAngle :: forall a. Double -> [(Line, a)] -> ([(Line, a, Double)], [(Point, Point, Point, Point, Double)])
- lightenGarden :: Angle -> Garden a -> Garden (a, Double)
- mapLine :: (forall b. [(Line, b)] -> [(Line, b, c)]) -> c -> (c -> c -> c) -> Garden a -> Garden (a, c)

# Documentation

plantedToLines :: Planted a -> [(Line, a)]Source

plantToGeometry :: Plant a -> GeometryGenerator a ()Source

gardenToLines :: Garden a -> [(Line, a)]Source

Lines are annotated with its plant, identified by the extra data

allKindsOfStuffWithAngle :: forall a. Double -> [(Line, a)] -> ([(Line, a, Double)], [(Point, Point, Point, Point, Double)])Source