topkata-0.0: PdfLaby.hs
module Main (main) where
import Labygen
import Graphics.Rendering.Cairo
import System.Random
import Data.Array
drawBlock p Free = return ()
drawBlock (Pos2 (x,y)) Block = do
rectangle (fromIntegral (x-1) * 20.0) (fromIntegral (y-1) * 40.0) 20 40
fill
draw laby = do
setSourceRGBA 0.0 0.0 0.0 1.0
translate 20 40
rectangle 0 0 (fromIntegral xb * 20.0) (fromIntegral yb * 40.0)
stroke
sequence_ [ drawBlock p b | (p, b) <- assocs laby ]
where (_, Pos2 (xb, yb)) = bounds laby
main = do
putStrLn "LabyGen"
laby <- labygenIO (Pos2 (1,1), (Pos2 (30,50))) (Pos2 (1,1)) (Pos2 (30, 50))
withPDFSurface "laby.pdf" 740 2100 $ \ sf ->
renderWith sf $ draw laby