module Music.Theory.Diagram.Render.Grid where
import Data.CG.Minus
import Data.CG.Minus.Colour
import Data.Colour
import qualified Graphics.Rendering.Cairo as C
import qualified Music.Theory.Diagram.Grid as T
import Render.CG.Minus
mk_grid :: (Int,Int) -> (R,R) -> R -> T.Grid -> C.Render ()
mk_grid (r,c) (dx,dy) fs xs = do
let g = T.grid (10,10) (10,10) (r,c)
grid_pt' = uncurry Pt . T.displace (dx,dy) . T.grid_pt (10,10) (10,10)
mapM_ (\(x,y) -> rect (opaque black) (Pt x y) (10,10)) g
mapM_ (\(l,clr,i) -> text (opaque (toC clr)) (grid_pt' l) fs i) xs
C.showPage
to_pdf :: FilePath -> (R,R) -> C.Render () -> IO ()
to_pdf nm (w,h) f = do
let g s = C.renderWith s f
C.withPDFSurface nm w h g