module Math.Noise.Modules.ScaleBias where
import Math.Noise.NoiseModule
import Control.Applicative

data ScaleBias = ScaleBias { bias
			   , scale :: Double
			   }

scalebias :: ScaleBias 
scalebias = ScaleBias { bias = 0.0, scale = 1.0 }

instance NoiseClass ScaleBias where
--  getSourceCount = const 1
  getNoiseValue (ScaleBias {bias = bias, scale= scale}) [src] (x,y,z) =
    sbfunc <$> getValue src (x, y, z) 
    where sbfunc a = a * scale + bias

  getNoiseValue s [] (x,y,z) = Nothing