module Graphics.Rendering.Plot.Render.Plot.Format (
formatLineSeries
, formatPointSeries
, formatBarSeries
) where
import qualified Graphics.Rendering.Cairo as C
import Graphics.Rendering.Plot.Types
import Graphics.Rendering.Plot.Render.Types
import Control.Monad.Reader
formatLineSeries' :: [Dash] -> LineWidth -> Color -> C.Render ()
formatLineSeries' ds lw c = do
setDashes ds
C.setLineWidth lw
setColour c
formatLineSeries :: LineType -> Render ()
formatLineSeries NoLine = error "line format of NoLine in a line series"
formatLineSeries (ColourLine c) = do
(LineOptions ds lw) <- asks (_lineoptions . _renderoptions)
cairo $ formatLineSeries' ds lw c
formatLineSeries (TypeLine (LineOptions ds lw) c) =
cairo $ formatLineSeries' ds lw c
formatPointSeries' :: Color -> C.Render ()
formatPointSeries' = setColour
formatPointSeries :: PointType -> Render (LineWidth,Glyph)
formatPointSeries (FullPoint (PointOptions pz c) g) = do
cairo $ formatPointSeries' c
return (pz,g)
formatBarSeries' :: LineWidth -> C.Render ()
formatBarSeries' lw = C.setLineWidth lw
formatBarSeries :: BarType -> Render (Width,Color,Color)
formatBarSeries (ColourBar c) = do
(BarOptions bw lw bc) <- asks (_baroptions . _renderoptions)
cairo $ formatBarSeries' lw
return (bw,c,bc)
formatBarSeries (TypeBar (BarOptions bw lw bc) c) = do
cairo $ formatBarSeries' lw
return (bw,c,bc)