{- Datatypes to specify a geometric angle HGamer3D Library (A project to enable 3D game development in Haskell) Copyright 2011-2015 Peter Althainz Distributed under the Apache License, Version 2.0 (See attached file LICENSE or copy at http://www.apache.org/licenses/LICENSE-2.0) file: HGamer3D/Data/Colour.hs -} -- | The Colour type and some standard colours module HGamer3D.Data.Colour ( Colour (..), ctColour, white, silver, grey, darkgrey, black, red, maroon, yellow, olive, lime, green, aqua, teal, blue, navy, fuchsia, purple ) where import Data.MessagePack import Fresco -- generated data Colour = Colour { cRed::Float, cGreen::Float, cBlue::Float, cAlpha::Float } instance ComponentClass Colour where toObj (Colour v1 v2 v3 v4) = ObjectArray [ObjectFloat v1, ObjectFloat v2, ObjectFloat v3, ObjectFloat v4] fromObj (ObjectArray [ObjectFloat v1, ObjectFloat v2, ObjectFloat v3, ObjectFloat v4]) = Colour v1 v2 v3 v4 ctColour :: ComponentType Colour ctColour = ComponentType 0xe202add0521cde41 -- generated white :: Colour white = Colour 1.0 1.0 1.0 1.0 silver:: Colour silver = Colour 0.75 0.75 0.75 1.0 grey:: Colour grey = Colour 0.5 0.5 0.5 1.0 darkgrey :: Colour darkgrey = Colour 0.25 0.25 0.25 1.0 black :: Colour black = Colour 0.0 0.0 0.0 1.0 red :: Colour red = Colour 1.0 0.0 0.0 1.0 maroon :: Colour maroon = Colour 0.5 0.0 0.0 1.0 yellow :: Colour yellow = Colour 1.0 1.0 0.0 1.0 olive :: Colour olive = Colour 0.5 0.5 0.0 1.0 lime :: Colour lime = Colour 0.0 1.0 0.0 1.0 green :: Colour green = Colour 0.0 0.5 0.0 1.0 aqua :: Colour aqua = Colour 0.0 1.0 1.0 1.0 teal :: Colour teal = Colour 0.0 0.5 0.5 1.0 blue :: Colour blue = Colour 0.0 0.0 1.0 1.0 navy :: Colour navy = Colour 0.0 0.0 0.5 1.0 fuchsia :: Colour fuchsia = Colour 1.0 0.0 1.0 1.0 purple :: Colour purple = Colour 0.5 0.0 0.5 1.0