module Graphics.PS.GS ( GS(..)
                      , LineCap(..)
                      , LineJoin(..)
                      , Color(..)
                      , greyGS ) where

data LineCap = ButtCap 
             | RoundCap 
             | ProjectingSquareCap
               deriving (Eq, Show, Enum)

type LineWidth = Double

data LineJoin = MiterJoin 
              | RoundJoin 
              | BevelJoin
                deriving (Eq, Show, Enum)

data Color = RGB Double Double Double
             deriving (Eq, Show)

data GS = GS Color LineWidth LineCap LineJoin ([Int], Int) Double
          deriving (Eq, Show)

greyGS :: Double -> GS
greyGS g = GS (RGB g g g) 1.0 ButtCap MiterJoin ([], 0) 10.0

{--
blackGS :: GS
blackGS = greyGS 0
--}