packages feed

arcgrid-viewer-0.1.0.0: src/Vector.hs

module Vector where

import Graphics.Gloss
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Reader
import Data.Monoid

import Types
import ColorScheme

makeVectorPicture :: ReaderT ViewerCtx IO Picture
makeVectorPicture = do
  vs <- asks vctxValTblData
  ps <- mapM pictureFromRowColValue vs
  return $ pictures ps


pictureFromRowColValue :: ((Int, Int), Int) -> ReaderT ViewerCtx IO Picture
pictureFromRowColValue ((r, c), v) = do
  sq <- asks vctxSqSize
  vcolor <- colorFromValue v
  let mon = mconcat
        [ Endo $ translate (fromIntegral c * sq) (negate (fromIntegral r * sq))
        , Endo $ color vcolor
        ]
--  lift $ putStrLn $ "((r,c,),val)=" ++ show ((r,c), v) ++ " vcolor=" ++ show vcolor ++ " "
  return $ appEndo mon $ rectangleSolid sq sq