AC-Colour-1.1.5: Efficient RGB colour types.

Safe HaskellSafe-Inferred
LanguageHaskell98

Data.Colour.Double

Description

This module provides Colour, which stores linear RGB (red, green, blue) colour values where each channel is a Double. It also provides arithmetic over such colours, and a few predefined colours.

Synopsis

Documentation

data Colour Source

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 Colours should be quite efficient in time and space.

The Num and Fractional instances provide arithmetic for Colours. Note that (*) acts channel-wise; this is usually what is wanted.

Constructors

Colour 

Fields

red :: !Double
 
green :: !Double
 
blue :: !Double
 

cmap :: (Double -> Double) -> Colour -> Colour Source

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 -> Colour Source

This is similar to zipWith. (Mostly used internally, but exposed here in case it may be useful.)

cfold :: (Double -> Double -> Double) -> Colour -> Double Source

Use a function to collapse a Colour into a Double. No particular order of application is promised.

grey :: Double -> Colour Source

Turn a Double into a shade of grey.

cscale :: Double -> Colour -> Colour Source

Scale a Colour by a specified amount. (That is, change the brightness while not affecting the shade.)

clip :: Colour -> Colour Source

Take a Colour and clip all channels to the range 0--1 inclusive. Any value outside that range will be replaced with the nearest endpoint (i.e., 0 for negative numbers, 1 for positive numbers higher than 1). Values inside the range are unaffected.

unpack :: Colour -> (Double, Double, Double) Source

Convert a Colour into a tuple.

pack :: (Double, Double, Double) -> Colour Source

Convert a tuple into a Colour.

cBlack :: Colour Source

Constant: Black.

cRed :: Colour Source

Constant: Red.

cYellow :: Colour Source

Constant: Yellow.

cGreen :: Colour Source

Constant: Green.

cCyan :: Colour Source

Constant: Cyan.

cBlue :: Colour Source

Constant: Blue.

cMagenta :: Colour Source

Constant: Magenta.

cWhite :: Colour Source

Constant: White.