hcg-minus-cairo 0.12 → 0.14
raw patch · 4 files changed
+41/−38 lines, 4 filesdep −SGdep ~hcg-minus
Dependencies removed: SG
Dependency ranges changed: hcg-minus
Files
- README +11/−3
- Render/CG/Minus.hs +13/−19
- Render/CG/Minus/Arrow.hs +15/−14
- hcg-minus-cairo.cabal +2/−2
README view
@@ -1,4 +1,12 @@-hcg-minus-cairo -- cairo rendering for hcg-minus+hcg-minus-cairo+=============== -(c) rohan drape, 2009-2011- gpl, http://gnu.org/copyleft/+[cairo][cairo] rendering for [hcg-minus][hcg-minus]++[cairo]: http://cairographics.org/+[hcg-minus]: http://rd.slavepianos.org/?t=hcg-minus++© [rd][rd], 2009-2013, [gpl][gpl]++[rd]: http://rd.slavepianos.org/+[gpl]: http://gnu.org/copyleft/
Render/CG/Minus.hs view
@@ -2,11 +2,11 @@ module Render.CG.Minus where import qualified Codec.Binary.UTF8.String as U {- utf8-string -}-import Data.CG.Minus-import Data.CG.Minus.Colour-import Data.Colour+import Data.CG.Minus {- hcg-minus -}+import Data.CG.Minus.Colour {- hcg-minus -}+import Data.Colour {- colour -} import qualified Graphics.Rendering.Cairo as C {- cairo -}-import System.FilePath+import System.FilePath {- filepath -} -- * Paths @@ -19,10 +19,10 @@ line l = case l of [] -> nil- (p0:pp) -> do let (x0,y0) = pt_xy p0- C.moveTo x0 y0- let f p = let (x,y) = pt_xy p in C.lineTo x y- mapM_ f pp+ Pt x0 y0 : pp ->+ do C.moveTo x0 y0+ let f (Pt x y) = C.lineTo x y+ mapM_ f pp -- | Variant of 'line' that runs 'C.closePath'. polygon :: Ls R -> C.Render ()@@ -35,16 +35,12 @@ -- Runs 'C.fill' on each square. points :: R -> Ls R -> C.Render () points n l = do- let f p = do let (x,y) = pt_xy p- C.rectangle x y n n- C.fill+ let f (Pt x y) = C.rectangle x y n n >> C.fill mapM_ f l -- | Circle centred at 'Pt' with radius 'R'. circle :: Pt R -> R -> C.Render ()-circle o z =- let (x,y) = pt_xy o- in C.arc x y z 0 (2 * pi)+circle (Pt x y) z = C.arc x y z 0 (2 * pi) -- * Context & drawing @@ -85,8 +81,7 @@ -- | Render rectangle given colour 'Ca', upper-left 'Pt' and -- /(width,height)/. rect :: Ca -> Pt R -> (R,R) -> C.Render ()-rect c p (w,h) = do- let (x,y) = pt_xy p+rect c (Pt x y) (w,h) = do C.rectangle x y w h pen 0.05 c C.stroke@@ -95,9 +90,8 @@ -- | Render text 'String' in colour 'Ca' at 'Pt' in font size /sz/. text :: Ca -> Pt R -> R -> String -> C.Render ()-text c p sz txt = do- let (x,y) = pt_xy p- (r,g,b,_) = unCa c+text c (Pt x y) sz txt = do+ let (r,g,b,_) = unCa c C.save C.selectFontFace "Times" C.FontSlantNormal C.FontWeightNormal C.setFontSize sz
Render/CG/Minus/Arrow.hs view
@@ -1,10 +1,11 @@ -- | Rendering of "Data.CG.Minus.Arrow". module Render.CG.Minus.Arrow where -import Data.CG.Minus-import Data.CG.Minus.Arrow-import Data.CG.Minus.Colour-import qualified Graphics.Rendering.Cairo as C+import Data.CG.Minus {- hcg-minus -}+import Data.CG.Minus.Arrow {- hcg-minus -}+import Data.CG.Minus.Colour {- hcg-minus -}+import qualified Graphics.Rendering.Cairo as C {- cairo -}+ import Render.CG.Minus arrow_strk :: Ca -> C.Render ()@@ -16,24 +17,24 @@ -- | Render 'Ln' with solid arrow tip at endpoint. Arrow tip -- co-ordinates are given by 'arrow_coord'. arrow_ep :: R -> R -> Ca -> Ln R -> C.Render ()-arrow_ep n a c l = do- let (p0,p1) = ln_pt l- (p2,p3) = arrow_coord l n a- line [p0,ln_midpoint (ln p2 p3)]+arrow_ep n a c ln = do+ let Ln p0 p1 = ln+ (p2,p3) = arrow_coord ln n a+ line [p0,ln_midpoint (Ln p2 p3)] arrow_strk c polygon [p2,p1,p3] C.fill -- | Variant of 'arrow_ep' to render 'Ls' as sequence of arrows. arrows_ep :: R -> R -> Ca -> Ls R -> C.Render ()-arrows_ep n a c xs = mapM_ (arrow_ep n a c) (zipWith ln xs (tail xs))+arrows_ep n a c xs = mapM_ (arrow_ep n a c) (zipWith Ln xs (tail xs)) -- | Variant of 'arrow_ep' with draws tip at mid-point of 'Ln'. arrow_mp :: R -> R -> Ca -> Ln R -> C.Render ()-arrow_mp n a c l = do- let (p0,p1) = ln_pt l- p1' = ln_midpoint (ln p0 (pt_linear_extension n l))- (p2,p3) = arrow_coord (ln p0 p1') n a+arrow_mp n a c ln = do+ let Ln p0 p1 = ln+ p1' = ln_midpoint (Ln p0 (pt_linear_extension n ln))+ (p2,p3) = arrow_coord (Ln p0 p1') n a line [p0,p1] arrow_strk c polygon [p2,p1',p3]@@ -41,4 +42,4 @@ -- | Variant of 'arrow_mp' to render 'Ls' as sequence of arrows. arrows_mp :: R -> R -> Ca -> Ls R -> C.Render ()-arrows_mp n a c xs = mapM_ (arrow_mp n a c) (zipWith ln xs (tail xs))+arrows_mp n a c xs = mapM_ (arrow_mp n a c) (zipWith Ln xs (tail xs))
hcg-minus-cairo.cabal view
@@ -1,5 +1,5 @@ name: hcg-minus-cairo-version: 0.12+version: 0.14 synopsis: haskell cg (minus) (cairo rendering) description: cg (minus) library (cairo rendering) license: BSD3@@ -14,7 +14,7 @@ data-files: README library- build-depends: base==4.*,cairo,colour,hcg-minus==0.12.*,filepath,SG,utf8-string+ build-depends: base==4.*,cairo,colour,hcg-minus==0.14.*,filepath,utf8-string ghc-options: -Wall -fwarn-tabs exposed-modules: Render.CG.Minus Render.CG.Minus.Arrow