This module is mostly a general dump...
- timeSpanFraction :: Double -> ClockTime -> ClockTime -> Double
- formatTimeInfo :: Integer -> Double -> String
- lightAngle :: Double -> Angle
- remainingGrowth :: (a -> GrowthState) -> Planted a -> Double
- growGarden :: RandomGen g => Angle -> g -> GrowingGarden -> Double -> GrowingGarden
- applyGenome :: RandomGen g => Angle -> g -> GrowingGarden -> [(GrowingPlanted, [Double])]
- growPlanted :: GrowingPlanted -> Double -> Double -> GrowingPlanted
- applyGrowth :: Double -> GrowingPlanted -> GrowingPlanted
- applyGrowth' :: (Double -> Double -> Double) -> GrowingPlant -> GrowingPlant
Given the fraction of the time passed, returnes the angle of the sunlight
For a GrowingGarden, calculates the current amount of light and then advance the growth. This ought to be called after applyGenome
For all Growing plants that are done, find out the next step If new plants are to be created, these are returned via their position, next to their parent plant.
Applies an L-System to a Plant, putting the new length in the additional information field
Applies Growth at given fraction, leaving the target length in place