-- | Description: Math helpers. -- Module provides mathematics helper functions. module Chiphunk.Low.Math where import Data.VectorSpace -- | Clamp @f@ to be between @min@ and @max@ fClamp :: Double -- ^ f -> Double -- ^ min -> Double -- ^ max -> Double fClamp x a b | x < a = a | x > b = b | otherwise = x -- | Linearly interpolate between @f1@ and @f2@ fLerp :: Double -- ^ f1 -> Double -- ^ f2 -> Double -> Double fLerp = lerp -- | Linearly interpolate from @f1@ towards @f2@ by no more than @d@. fLerpConst :: Double -- ^ f1 -> Double -- ^ f2 -> Double -- ^ d -> Double fLerpConst x y d = x + fClamp (y - x) (-d) d