module Graphics.Proc.Core.State.Elements.Rnd( RndState(..), NoiseDetail(..), Seed ) where import Data.Default import System.Random data RndState = RndState { rndRandomGen :: Maybe StdGen , rndNoiseGen :: Maybe Int , rndNoiseDetail :: NoiseDetail } instance Default RndState where def = RndState def def def type Seed = Maybe Int -- | Parameters for perlin noise. See docs for function @noiseDetail@. data NoiseDetail = NoiseDetail { noiseDetailsOctaves :: Int , noiseDetailsFalloff :: Float } instance Default NoiseDetail where def = NoiseDetail 4 0.5