mirror of
https://github.com/reanimate/reanimate.git
synced 2026-09-14 09:32:22 +00:00
Switch from svg-tree to reanimate-svg.
This commit is contained in:
parent
585a0577d5
commit
55f1012faf
9 changed files with 56 additions and 54 deletions
|
|
@ -29,7 +29,7 @@ library
|
||||||
Reanimate.Svg.NamedColors
|
Reanimate.Svg.NamedColors
|
||||||
build-depends: base >=4.10 && <4.13,
|
build-depends: base >=4.10 && <4.13,
|
||||||
time, text, unix, lucid, filepath, process, directory,
|
time, text, unix, lucid, filepath, process, directory,
|
||||||
containers, svg-tree >= 0.6.2.3, xml, bytestring, lens, linear, mtl, matrix,
|
containers, reanimate-svg >= 0.7.0.0, xml, bytestring, lens, linear, mtl, matrix,
|
||||||
JuicyPixels, attoparsec, parallel, diagrams, diagrams-svg,
|
JuicyPixels, attoparsec, parallel, diagrams, diagrams-svg,
|
||||||
diagrams-core, diagrams-lib, diagrams-contrib,
|
diagrams-core, diagrams-lib, diagrams-contrib,
|
||||||
svg-builder, matrices, cubicbezier, palette
|
svg-builder, matrices, cubicbezier, palette
|
||||||
|
|
|
||||||
|
|
@ -8,20 +8,20 @@ module Reanimate.Diagrams
|
||||||
, SvgDiagram
|
, SvgDiagram
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import qualified Data.ByteString.Lazy as BL
|
import qualified Data.ByteString.Lazy as BL
|
||||||
import qualified Diagrams.Backend.SVG as D
|
import qualified Diagrams.Backend.SVG as D
|
||||||
import qualified Diagrams.Core.Compile as D
|
import qualified Diagrams.Core.Compile as D
|
||||||
import qualified Diagrams.Core.Types as D
|
import qualified Diagrams.Core.Types as D
|
||||||
import qualified Diagrams.Size as D
|
import qualified Diagrams.Size as D
|
||||||
import "svg-tree" Graphics.Svg (Document (..), Tree (..), defaultSvg,
|
import Graphics.SvgTree (Document (..), Tree (..), defaultSvg,
|
||||||
elements, loadSvgFile, parseSvgFile,
|
elements, loadSvgFile, parseSvgFile,
|
||||||
xmlOfDocument)
|
xmlOfDocument)
|
||||||
import qualified Graphics.Svg.Core as Svg
|
import qualified Graphics.Svg.Core as Svg
|
||||||
import Linear.V2
|
import Linear.V2
|
||||||
import Reanimate.Svg (unbox)
|
import Reanimate.Svg (unbox)
|
||||||
|
|
||||||
import Diagrams.Prelude
|
import Diagrams.Prelude
|
||||||
import qualified Diagrams.Prelude as D
|
import qualified Diagrams.Prelude as D
|
||||||
|
|
||||||
renderDiagram :: SvgDiagram -> Tree
|
renderDiagram :: SvgDiagram -> Tree
|
||||||
renderDiagram d =
|
renderDiagram d =
|
||||||
|
|
|
||||||
|
|
@ -1,35 +1,36 @@
|
||||||
{-# LANGUAGE Arrows #-}
|
{-# LANGUAGE Arrows #-}
|
||||||
{-# LANGUAGE PartialTypeSignatures #-}
|
{-# LANGUAGE FlexibleContexts #-}
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE PackageImports #-}
|
||||||
{-# LANGUAGE PackageImports #-}
|
{-# LANGUAGE ParallelListComp #-}
|
||||||
{-# LANGUAGE ParallelListComp #-}
|
{-# LANGUAGE PartialTypeSignatures #-}
|
||||||
{-# LANGUAGE TypeFamilies #-}
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
module Reanimate.Examples where
|
module Reanimate.Examples where
|
||||||
|
|
||||||
import qualified Data.Map as M
|
|
||||||
import Codec.Picture.Types
|
import Codec.Picture.Types
|
||||||
import Control.Lens ()
|
import Control.Lens ()
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
import Data.Text (Text, pack)
|
import qualified Data.Map as M
|
||||||
import "svg-tree" Graphics.Svg as S
|
import Data.Text (Text, pack)
|
||||||
|
import Graphics.SvgTree as S
|
||||||
import Linear.V2
|
import Linear.V2
|
||||||
import Numeric
|
import Numeric
|
||||||
import Text.Printf
|
import Text.Printf
|
||||||
|
|
||||||
import Reanimate.Combinators
|
import Reanimate.Combinators
|
||||||
|
import Reanimate.Diagrams
|
||||||
import Reanimate.LaTeX
|
import Reanimate.LaTeX
|
||||||
import Reanimate.Monad
|
import Reanimate.Monad
|
||||||
import Reanimate.Svg
|
import Reanimate.Svg
|
||||||
import Reanimate.Diagrams
|
|
||||||
|
|
||||||
import qualified Diagrams.Backend.SVG as D
|
|
||||||
import Diagrams.Prelude hiding (Animation, boundingBox, center,
|
|
||||||
duration, fontSize, rotate, scale,
|
|
||||||
translate, circle)
|
|
||||||
import qualified Diagrams.Prelude as D
|
|
||||||
import qualified Diagrams.TwoD.Path.LSystem as D
|
|
||||||
import qualified Data.Colour.Palette.BrewerSet as D
|
import qualified Data.Colour.Palette.BrewerSet as D
|
||||||
|
import qualified Diagrams.Backend.SVG as D
|
||||||
|
import Diagrams.Prelude hiding (Animation, boundingBox,
|
||||||
|
center, circle, duration,
|
||||||
|
fontSize, rotate, scale,
|
||||||
|
translate)
|
||||||
|
import qualified Diagrams.Prelude as D
|
||||||
|
import qualified Diagrams.TwoD.Path.LSystem as D
|
||||||
|
|
||||||
import Debug.Trace
|
import Debug.Trace
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import System.FilePath (replaceExtension, takeFileName, (</>))
|
||||||
import System.IO.Unsafe (unsafePerformIO)
|
import System.IO.Unsafe (unsafePerformIO)
|
||||||
|
|
||||||
import Control.Lens (over, set, (%~), (&), (.~), (^.))
|
import Control.Lens (over, set, (%~), (&), (.~), (^.))
|
||||||
import "svg-tree" Graphics.Svg (Document (..), Tree (..), defaultSvg,
|
import Graphics.SvgTree (Document (..), Tree (..), defaultSvg,
|
||||||
elements, loadSvgFile, parseSvgFile,
|
elements, loadSvgFile, parseSvgFile,
|
||||||
xmlOfDocument)
|
xmlOfDocument)
|
||||||
import Text.XML.Light (elContent)
|
import Text.XML.Light (elContent)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
module Reanimate.Monad where
|
module Reanimate.Monad where
|
||||||
|
|
||||||
import Control.Arrow ()
|
import Control.Arrow ()
|
||||||
import qualified Control.Category as C
|
import qualified Control.Category as C
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.Fixed
|
import Data.Fixed
|
||||||
|
|
@ -8,8 +8,9 @@ import Data.Fixed (mod')
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Monoid ((<>))
|
import Data.Monoid ((<>))
|
||||||
import Data.Text (Text, pack)
|
import Data.Text (Text, pack)
|
||||||
import "svg-tree" Graphics.Svg (Document (..), Number (..), Tree,
|
import Graphics.SvgTree (Document (..), Number (..), Text (..),
|
||||||
xmlOfDocument, Tree(..), Text(..), TextSpan(..), TextSpanContent(..))
|
TextSpan (..), TextSpanContent (..),
|
||||||
|
Tree, Tree (..), xmlOfDocument)
|
||||||
import Reanimate.LaTeX
|
import Reanimate.LaTeX
|
||||||
import Reanimate.Svg
|
import Reanimate.Svg
|
||||||
import Text.XML.Light (elContent)
|
import Text.XML.Light (elContent)
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@ import Control.Parallel.Strategies
|
||||||
import qualified Data.ByteString.Lazy.Char8 as BS
|
import qualified Data.ByteString.Lazy.Char8 as BS
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
import qualified Data.Text.IO as T
|
import qualified Data.Text.IO as T
|
||||||
import "svg-tree" Graphics.Svg (Number (..))
|
import Graphics.SvgTree (Number (..))
|
||||||
|
import Reanimate.Diagrams
|
||||||
import Reanimate.Examples
|
import Reanimate.Examples
|
||||||
import Reanimate.Misc
|
import Reanimate.Misc
|
||||||
import Reanimate.Monad
|
import Reanimate.Monad
|
||||||
import Reanimate.Diagrams
|
|
||||||
import System.Directory (renameFile)
|
import System.Directory (renameFile)
|
||||||
import System.FilePath (takeExtension, takeFileName,
|
import System.FilePath (takeExtension, takeFileName,
|
||||||
(</>))
|
(</>))
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,24 @@
|
||||||
module Reanimate.Svg where
|
module Reanimate.Svg where
|
||||||
|
|
||||||
import Codec.Picture (PixelRGBA8 (..))
|
import Codec.Picture (PixelRGBA8 (..))
|
||||||
import Codec.Picture.Types
|
import Codec.Picture.Types
|
||||||
import Control.Arrow
|
import Control.Arrow
|
||||||
import Control.Lens (over, set, (%~), (&), (.~), (^.))
|
import Control.Lens (over, set, (%~), (&), (.~), (^.))
|
||||||
import Control.Monad.Fix
|
import Control.Monad.Fix
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.Attoparsec.Text (parseOnly)
|
import Data.Attoparsec.Text (parseOnly)
|
||||||
import Data.List
|
import Data.List
|
||||||
import qualified Data.Map as Map
|
import qualified Data.Map as Map
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
import qualified Geom2D.CubicBezier as Bezier
|
import qualified Geom2D.CubicBezier as Bezier
|
||||||
import "svg-tree" Graphics.Svg
|
import Graphics.SvgTree
|
||||||
import "svg-tree" Graphics.Svg.PathParser
|
import Graphics.SvgTree.PathParser
|
||||||
import Linear.Metric
|
import Linear.Metric
|
||||||
import Linear.V2
|
import Linear.V2
|
||||||
import Linear.Vector
|
import Linear.Vector
|
||||||
import Reanimate.Svg.NamedColors
|
import Reanimate.Svg.NamedColors
|
||||||
import qualified Reanimate.Transform as Transform
|
import qualified Reanimate.Transform as Transform
|
||||||
|
|
||||||
import Debug.Trace
|
import Debug.Trace
|
||||||
|
|
||||||
|
|
@ -44,7 +44,7 @@ replaceUses doc = doc & elements %~ map (mapTree replace)
|
||||||
_ -> TransformUnknown
|
_ -> TransformUnknown
|
||||||
docTree = GroupTree $ set groupChildren (doc^.elements) defaultSvg
|
docTree = GroupTree $ set groupChildren (doc^.elements) defaultSvg
|
||||||
idMap = foldTree updMap Map.empty docTree `Map.union`
|
idMap = foldTree updMap Map.empty docTree `Map.union`
|
||||||
Map.mapMaybe elementToTree (doc^.definitions)
|
(doc^.definitions)
|
||||||
updMap m tree =
|
updMap m tree =
|
||||||
case tree^.drawAttr.attrId of
|
case tree^.drawAttr.attrId of
|
||||||
Nothing -> m
|
Nothing -> m
|
||||||
|
|
@ -330,8 +330,8 @@ svgBoundingPoints t = map (Transform.transformPoint m) $
|
||||||
RectangleTree rect ->
|
RectangleTree rect ->
|
||||||
case mapTuple (toUserUnit defaultDPI) (rect^.rectUpperLeftCorner) of
|
case mapTuple (toUserUnit defaultDPI) (rect^.rectUpperLeftCorner) of
|
||||||
(Num x, Num y) -> [V2 x y] ++
|
(Num x, Num y) -> [V2 x y] ++
|
||||||
case mapTuple (toUserUnit defaultDPI) (rect^.rectWidth, rect^.rectHeight) of
|
case mapTuple (fmap $ toUserUnit defaultDPI) (rect^.rectWidth, rect^.rectHeight) of
|
||||||
(Num w, Num h) -> [V2 (x+w) (y+h)]
|
(Just (Num w), Just (Num h)) -> [V2 (x+w) (y+h)]
|
||||||
_ -> []
|
_ -> []
|
||||||
_ -> []
|
_ -> []
|
||||||
TextTree{} -> []
|
TextTree{} -> []
|
||||||
|
|
@ -427,8 +427,8 @@ withClipPathRef ref = drawAttr %~ clipPathRef .~ pure ref
|
||||||
mkRect :: Point -> Number -> Number -> Tree
|
mkRect :: Point -> Number -> Number -> Tree
|
||||||
mkRect corner width height = RectangleTree $ defaultSvg
|
mkRect corner width height = RectangleTree $ defaultSvg
|
||||||
& rectUpperLeftCorner .~ corner
|
& rectUpperLeftCorner .~ corner
|
||||||
& rectWidth .~ width
|
& rectWidth .~ Just width
|
||||||
& rectHeight .~ height
|
& rectHeight .~ Just height
|
||||||
|
|
||||||
mkBoundingRect :: Tree -> Double -> Tree
|
mkBoundingRect :: Tree -> Double -> Tree
|
||||||
mkBoundingRect src margin =
|
mkBoundingRect src margin =
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,10 @@ module Reanimate.Transform
|
||||||
|
|
||||||
-- XXX: Use Linear.Matrix instead of Data.Matrix to drop the 'matrix' dependency.
|
-- XXX: Use Linear.Matrix instead of Data.Matrix to drop the 'matrix' dependency.
|
||||||
import Data.List
|
import Data.List
|
||||||
import "matrix" Data.Matrix (Matrix)
|
import "matrix" Data.Matrix (Matrix)
|
||||||
import qualified "matrix" Data.Matrix as M
|
import qualified "matrix" Data.Matrix as M
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import "svg-tree" Graphics.Svg
|
import Graphics.SvgTree
|
||||||
import Linear.V2
|
import Linear.V2
|
||||||
|
|
||||||
type TMatrix = Matrix Coord
|
type TMatrix = Matrix Coord
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ resolver: lts-11.22
|
||||||
allow-newer: false
|
allow-newer: false
|
||||||
|
|
||||||
extra-deps:
|
extra-deps:
|
||||||
- svg-tree-0.6.2.3
|
- reanimate-svg-0.7.0.0
|
||||||
- diagrams-1.4@sha256:3e36369e84115b900fd9dcb570672a188339a470eb19ca62170775cd835cf8ca
|
- diagrams-1.4@sha256:3e36369e84115b900fd9dcb570672a188339a470eb19ca62170775cd835cf8ca
|
||||||
- diagrams-contrib-1.4.3@sha256:bcfa6c85f8c33b8c48c3a61b7216afdebd51cd793c50da3a2dd358827d25fc76
|
- diagrams-contrib-1.4.3@sha256:bcfa6c85f8c33b8c48c3a61b7216afdebd51cd793c50da3a2dd358827d25fc76
|
||||||
- diagrams-core-1.4.1.1@sha256:6ef6b17785d77997c481eb085570e21b6a00cc91d086fbf49490504130ebc7d1
|
- diagrams-core-1.4.1.1@sha256:6ef6b17785d77997c481eb085570e21b6a00cc91d086fbf49490504130ebc7d1
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue