module Graphics.PS.GS where
data LineCap = ButtCap
| RoundCap
| ProjectingSquareCap
deriving (Eq, Show, Enum)
type LineWidth = Double
data LineJoin = MiterJoin
| RoundJoin
| BevelJoin
deriving (Eq, Show, Enum)
data Color = RGBA Double Double Double Double
deriving (Eq, Show)
data GS = GS {gs_color :: Color
,gs_line_width :: LineWidth
,gs_line_cap :: LineCap
,gs_line_join :: LineJoin
,gs_dash :: ([Int], Int)
,gs_miter_limit :: Double}
deriving (Eq, Show)
defaultGS :: Color -> GS
defaultGS c = GS c 1.0 ButtCap MiterJoin ([], 0) 10.0
greyGS :: Double -> GS
greyGS g = defaultGS (RGBA g g g 1)