Safe Haskell | Safe-Inferred |
---|
- data Colour = Colour {}
- cmap :: (Double -> Double) -> Colour -> Colour
- czip :: (Double -> Double -> Double) -> Colour -> Colour -> Colour
- cfold :: (Double -> Double -> Double) -> Colour -> Double
- grey :: Double -> Colour
- cscale :: Double -> Colour -> Colour
- clip :: Colour -> Colour
- unpack :: Colour -> (Double, Double, Double)
- pack :: (Double, Double, Double) -> Colour
- cBlack :: Colour
- cRed :: Colour
- cYellow :: Colour
- cGreen :: Colour
- cCyan :: Colour
- cBlue :: Colour
- cMagenta :: Colour
- cWhite :: Colour
Documentation
The main colour type. It stores three channels (red, green and
blue) as linear Double
values normally ranging from 0 to 1.
(0 represents minimum intensity, 1 represents maximum. Black is
therefore Colour 0 0 0
and white is Colour 1 1 1
.)
The channel values are stored as strict, unboxed fields, so
operating on Colour
s should be quite efficient in time and space.
The Num
and Fractional
instances provide arithmetic for
Colour
s. Note that (*)
acts channel-wise; this is usually what
is wanted.
cmap :: (Double -> Double) -> Colour -> ColourSource
Apply a function to every channel in a colour. (Mostly used internally, but exposed here in case it may be useful.)
czip :: (Double -> Double -> Double) -> Colour -> Colour -> ColourSource
This is similar to zipWith
. (Mostly used internally,
but exposed here in case it may be useful.)
cfold :: (Double -> Double -> Double) -> Colour -> DoubleSource
Use a function to collapse a Colour
into a Double
. No
particular order of application is promised.
cscale :: Double -> Colour -> ColourSource
Scale a Colour
by a specified amount. (That is, change the
brightness while not affecting the shade.)