From 217c54ab3884d6fa900f31d216690b0cf547ba90 Mon Sep 17 00:00:00 2001 From: David Himmelstrup Date: Sat, 19 Sep 2020 22:18:21 +0800 Subject: [PATCH] cleanup (#166) * Remove unused import. * Add missing documentation. --- docs/gifs/doc_oGrow.gif | Bin 0 -> 68106 bytes docs/gifs/doc_oHideWith.gif | Bin 0 -> 53397 bytes examples/doc_oDraw.hs | 2 -- examples/doc_oGrow.hs | 15 ++++++++ examples/doc_oHideWith.hs | 16 +++++++++ src/Reanimate/GeoProjection.hs | 10 +++--- src/Reanimate/Render.hs | 2 +- src/Reanimate/Scene.hs | 13 ++----- src/Reanimate/Scene/Core.hs | 17 ++++----- src/Reanimate/Scene/Object.hs | 64 +++++++++++++++++++++++++++++++++ src/Reanimate/Scene/Sprite.hs | 50 +++++++++++++------------- src/Reanimate/Scene/Var.hs | 11 +++--- 12 files changed, 143 insertions(+), 57 deletions(-) create mode 100644 docs/gifs/doc_oGrow.gif create mode 100644 docs/gifs/doc_oHideWith.gif create mode 100755 examples/doc_oGrow.hs create mode 100755 examples/doc_oHideWith.hs diff --git a/docs/gifs/doc_oGrow.gif b/docs/gifs/doc_oGrow.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1104c01322774e72fe60300aff82ea0f5b187c8 GIT binary patch literal 68106 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 literal 0 HcmV?d00001 diff --git a/docs/gifs/doc_oHideWith.gif b/docs/gifs/doc_oHideWith.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f942739c4d9b86ba72dee4b9a8e47b717ce2245 GIT binary patch literal 53397 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 literal 0 HcmV?d00001 diff --git a/examples/doc_oDraw.hs b/examples/doc_oDraw.hs index ba8475d..a7a5a43 100755 --- a/examples/doc_oDraw.hs +++ b/examples/doc_oDraw.hs @@ -9,8 +9,6 @@ import Reanimate.Builtin.Documentation import Control.Lens main :: IO () --- main = reanimate $ docEnv $ oDraw $ --- withFillOpacity 1 $ withStrokeWidth (defaultStrokeWidth*0) $ center $ scale 2 $ latex "oDraw" main = reanimate $ docEnv $ scene $ do txt <- oNew $ withStrokeWidth 0 $ withFillOpacity 1 $ center $ scale 4 $ latex "oDraw" diff --git a/examples/doc_oGrow.hs b/examples/doc_oGrow.hs new file mode 100755 index 0000000..84ab1ef --- /dev/null +++ b/examples/doc_oGrow.hs @@ -0,0 +1,15 @@ +#!/usr/bin/env stack +-- stack runghc --package reanimate +{-# LANGUAGE OverloadedStrings #-} +module Main(main) where + +import Reanimate +import Reanimate.Scene +import Reanimate.Builtin.Documentation + +main :: IO () +main = reanimate $ docEnv $ scene $ do + txt <- oNew $ withStrokeWidth 0 $ withFillOpacity 1 $ + center $ scale 3 $ latex "oGrow" + oShowWith txt oGrow + wait 1; oHideWith txt oFadeOut diff --git a/examples/doc_oHideWith.hs b/examples/doc_oHideWith.hs new file mode 100755 index 0000000..df21321 --- /dev/null +++ b/examples/doc_oHideWith.hs @@ -0,0 +1,16 @@ +#!/usr/bin/env stack +-- stack runghc --package reanimate +{-# LANGUAGE OverloadedStrings #-} +module Main(main) where + +import Reanimate +import Reanimate.Scene +import Reanimate.Builtin.Documentation + +main :: IO () +main = reanimate $ docEnv $ scene $ do + txt <- oNew $ withStrokeWidth 0 $ withFillOpacity 1 $ + center $ scale 3 $ latex "oScaleIn" + oShowWith txt oFadeIn + -- oShowWith txt $ adjustDuration (*2) . oScaleIn + -- wait 1; oHideWith txt oFadeOut diff --git a/src/Reanimate/GeoProjection.hs b/src/Reanimate/GeoProjection.hs index b7c9bb4..445a3df 100644 --- a/src/Reanimate/GeoProjection.hs +++ b/src/Reanimate/GeoProjection.hs @@ -376,7 +376,7 @@ mercatorP = Projection "mercator" forward inverse where forward (LonLat lam phi) = XYCoord ((lam+pi)/tau) - (min 1 $ max 0 $ ((log(tan(pi/4+phi/2))) + pi)/tau) + (min 1 $ max 0 $ (log(tan(pi/4+phi/2)) + pi)/tau) inverse (XYCoord x y) = LonLat xPi (atan (sinh yPi)) where xPi = fromToS (-pi) pi x @@ -384,7 +384,7 @@ mercatorP = Projection "mercator" forward inverse thetas :: V.Vector Double thetas = V.fromList $ - map (find_theta_fast . fromIndex) [0 .. granularity] + map (findThetaFast . fromIndex) [0 .. granularity] granularity :: Int granularity = 50000 @@ -421,9 +421,9 @@ mollweideP = Projection "mollweide" forward inverse lam = pi*x/(2*sqrt2*cos theta) phi = asin ((2*theta+sin(2*theta))/pi) -find_theta_fast :: Double -> Double -find_theta_fast !phi | abs phi == pi/2 = signum phi * halfPi -find_theta_fast (D# phi) = go phi +findThetaFast :: Double -> Double +findThetaFast !phi | abs phi == pi/2 = signum phi * halfPi +findThetaFast (D# phi) = go phi where !(D# pi#) = pi go acc = diff --git a/src/Reanimate/Render.hs b/src/Reanimate/Render.hs index 7b43d94..a7bf75d 100644 --- a/src/Reanimate/Render.hs +++ b/src/Reanimate/Render.hs @@ -68,7 +68,7 @@ renderSvgs folder offset _prettyPrint ani = do now = (duration ani / (fromIntegral frameCount - 1)) * fromIntegral nth frame = frameAt (if frameCount <= 1 then 0 else now) ani path = folder show nth <.> "svg" - ~svg = renderSvg Nothing Nothing frame + svg = renderSvg Nothing Nothing frame idempotentFile path $ writeFile path svg diff --git a/src/Reanimate/Scene.hs b/src/Reanimate/Scene.hs index 84ecf51..6f7a565 100644 --- a/src/Reanimate/Scene.hs +++ b/src/Reanimate/Scene.hs @@ -1,10 +1,3 @@ -{-# LANGUAGE ApplicativeDo #-} -{-# LANGUAGE ExistentialQuantification #-} -{-# LANGUAGE LambdaCase #-} -{-# LANGUAGE PatternSynonyms #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE RecordWildCards #-} - -- | -- Module : Reanimate.Scene -- Copyright : Written by David Himmelstrup @@ -108,24 +101,24 @@ module Reanimate.Scene -- ** Graphics object methods oShow, oHide, + oShowWith, + oHideWith, oFadeIn, oFadeOut, oGrow, oShrink, oTransform, - oShowWith, - oHideWith, Origin, oScaleIn, oScaleIn', oScaleOut, oScaleOut', + oDraw, oSim, oStagger, oStaggerRev, oStagger', oStaggerRev', - oDraw, -- , oBalloon -- ** Pre-defined objects diff --git a/src/Reanimate/Scene/Core.hs b/src/Reanimate/Scene/Core.hs index 1a69cfa..20f717b 100644 --- a/src/Reanimate/Scene/Core.hs +++ b/src/Reanimate/Scene/Core.hs @@ -43,6 +43,7 @@ instance Monad (Scene s) where instance MonadFix (Scene s) where mfix fn = M $ \t -> mfix (\v -> let (a, _s, _p, _gens) = v in unM (fn a) t) +-- | Lift ST action into the Scene monad. liftST :: ST s a -> Scene s a liftST action = M $ \_ -> action >>= \a -> return (a, 0, 0, []) @@ -78,8 +79,8 @@ scene action = -- Example: -- -- @ --- do 'fork' $ 'play' 'Reanimate.Builtin.Documentation.drawBox' --- 'play' 'Reanimate.Builtin.Documentation.drawCircle' +-- do 'fork' $ 'Reanimate.Scene.play' 'Reanimate.Builtin.Documentation.drawBox' +-- 'Reanimate.Scene.play' 'Reanimate.Builtin.Documentation.drawCircle' -- @ -- -- <> @@ -93,8 +94,8 @@ fork (M action) = M $ \t -> do -- Example: -- -- @ --- do now \<- 'play' 'Reanimate.Builtin.Documentation.drawCircle' *\> 'queryNow' --- 'play' $ 'staticFrame' 1 $ 'scale' 2 $ 'withStrokeWidth' 0.05 $ +-- do now \<- 'Reanimate.Scene.play' 'Reanimate.Builtin.Documentation.drawCircle' *\> 'queryNow' +-- 'Reanimate.Scene.play' $ 'staticFrame' 1 $ 'scale' 2 $ 'withStrokeWidth' 0.05 $ -- 'mkText' $ "Now=" <> T.pack (show now) -- @ -- @@ -107,9 +108,9 @@ queryNow = M $ \t -> return (t, 0, 0, []) -- Example: -- -- @ --- do 'fork' $ 'play' 'Reanimate.Builtin.Documentation.drawBox' +-- do 'fork' $ 'Reanimate.Scene.play' 'Reanimate.Builtin.Documentation.drawBox' -- 'wait' 1 --- 'play' 'Reanimate.Builtin.Documentation.drawCircle' +-- 'Reanimate.Scene.play' 'Reanimate.Builtin.Documentation.drawCircle' -- @ -- -- <> @@ -127,8 +128,8 @@ waitUntil tNew = do -- Example: -- -- @ --- do 'waitOn' $ 'fork' $ 'play' 'Reanimate.Builtin.Documentation.drawBox' --- 'play' 'Reanimate.Builtin.Documentation.drawCircle' +-- do 'waitOn' $ 'fork' $ 'Reanimate.Scene.play' 'Reanimate.Builtin.Documentation.drawBox' +-- 'Reanimate.Scene.play' 'Reanimate.Builtin.Documentation.drawCircle' -- @ -- -- <> diff --git a/src/Reanimate/Scene/Object.hs b/src/Reanimate/Scene/Object.hs index e703bac..4d33d85 100644 --- a/src/Reanimate/Scene/Object.hs +++ b/src/Reanimate/Scene/Object.hs @@ -350,6 +350,10 @@ oShow o = oModify o $ oShown .~ True oHide :: Object s a -> Scene s () oHide o = oModify o $ oShown .~ False +-- | Show object with an animator function. The animator is responsible for +-- transitioning the object from invisible to having its final shape. +-- If this doesn't hold true for the animator function then the final +-- animation will be discontinuous. oShowWith :: Object s a -> (SVG -> Animation) -> Scene s () oShowWith o fn = do oModify o $ oShown .~ True @@ -359,6 +363,10 @@ oShowWith o fn = do obj {_oSVG = getAnimationFrame SyncStretch ani t 1} oModify o $ \obj -> obj {_oSVG = initSVG} +-- | Hide object with an animator function. The animator is responsible for +-- transitioning the object from visible to invisible. +-- If this doesn't hold true for the animator function then the final +-- animation will be discontinuous. oHideWith :: Object s a -> (SVG -> Animation) -> Scene s () oHideWith o fn = do initSVG <- oRead o oSVG @@ -377,6 +385,17 @@ oFadeOut :: SVG -> Animation oFadeOut = reverseA . oFadeIn -- | Scale in object over a set duration. +-- +-- Example: +-- +-- @ +-- do txt <- 'oNew' $ 'withStrokeWidth' 0 $ 'withFillOpacity' 1 $ +-- 'center' $ 'scale' 3 $ 'Reanimate.LaTeX.latex' "oGrow" +-- 'oShowWith' txt 'oGrow' +-- 'wait' 1; 'oHideWith' txt 'oFadeOut' +-- @ +-- +-- <> oGrow :: SVG -> Animation oGrow svg = animate $ \t -> scale t svg @@ -384,6 +403,7 @@ oGrow svg = animate $ \t -> scale t svg oShrink :: SVG -> Animation oShrink = reverseA . oGrow +-- | Relative coordinates for an SVG node. type Origin = (Double, Double) svgOrigin :: SVG -> Origin -> (Double, Double) @@ -394,9 +414,22 @@ svgOrigin svg (originX, originY) = polyY + polyHeight * originY ) +-- | Scale in children from left to right, with an origin at the top of each child. +-- +-- Example: +-- +-- @ +-- do txt <- 'oNew' $ 'withStrokeWidth' 0 $ 'withFillOpacity' 1 $ +-- 'center' $ 'scale' 3 $ 'Reanimate.LaTeX.latex' "oScaleIn" +-- 'oShowWith' txt $ 'adjustDuration' (*2) . 'oScaleIn' +-- 'wait' 1; 'oHideWith' txt 'oFadeOut' +-- @ +-- +-- <> oScaleIn :: SVG -> Animation oScaleIn = oScaleIn' (curveS 2) (0.5, 1) +-- | Like 'oScaleIn' but takes an easing function and an origin. oScaleIn' :: Signal -> Origin -> SVG -> Animation oScaleIn' easing origin = oStagger' 0.05 $ \svg -> let (cx, cy) = svgOrigin svg origin @@ -409,35 +442,66 @@ oScaleIn' easing origin = oStagger' 0.05 $ \svg -> (- cy) svg +-- | Scale out children from left to right, with an origin at the bottom of each child. +-- +-- Example: +-- +-- @ +-- do txt <- 'oNew' $ 'withStrokeWidth' 0 $ 'withFillOpacity' 1 $ +-- 'center' $ 'scale' 3 $ 'Reanimate.LaTeX.latex' "oScaleOut" +-- 'oShowWith' txt 'oFadeIn' +-- 'oHideWith' txt $ 'adjustDuration' (*2) . 'oScaleOut' +-- @ +-- +-- <> oScaleOut :: SVG -> Animation oScaleOut = reverseA . oStaggerRev' 0.05 (oScaleIn' (curveS 2) (0.5, 0)) +-- | Like 'oScaleOut' but takes an easing function and an origin. oScaleOut' :: Signal -> Origin -> SVG -> Animation oScaleOut' easing origin = reverseA . oStaggerRev' 0.05 (oScaleIn' easing origin) +-- | Animate each child node in parallel. oSim :: (SVG -> Animation) -> SVG -> Animation oSim = oStagger' 0 -- oSim (oStagger fn) = oSim fn -- oStagger (oStagger fn) = oStagger fn +-- | Animate each child node in parallel, staggered by 0.2 seconds. oStagger :: (SVG -> Animation) -> SVG -> Animation oStagger = oStagger' 0.2 +-- | Animate each child node in parallel, staggered by 0.2 seconds and in reverse order. oStaggerRev :: (SVG -> Animation) -> SVG -> Animation oStaggerRev = oStaggerRev' 0.2 +-- | Animate each child node in parallel, staggered by a given duration. oStagger' :: Duration -> (SVG -> Animation) -> SVG -> Animation oStagger' staggerDelay fn svg = scene $ forM_ (svgGlyphs svg) $ \(ctx, _attr, node) -> do void $ fork $ newSpriteA' SyncFreeze (fn $ ctx node) wait staggerDelay +-- | Animate each child node in parallel, staggered by given duration and in reverse order. oStaggerRev' :: Duration -> (SVG -> Animation) -> SVG -> Animation oStaggerRev' staggerDelay fn svg = scene $ forM_ (reverse $ svgGlyphs svg) $ \(ctx, _attr, node) -> do void $ fork $ newSpriteA' SyncFreeze (fn $ ctx node) wait staggerDelay +-- | Render SVG by first drawing outlines and then filling shapes. +-- +-- Example: +-- +-- @ +-- do txt <- 'oNew' $ 'withStrokeWidth' 0 $ 'withFillOpacity' 1 $ +-- 'center' $ 'scale' 4 $ 'Reanimate.LaTeX.latex' "oDraw" +-- 'oModify' txt $ 'oEasing' .~ id +-- 'oShowWith' txt 'oDraw'; 'wait' 1 +-- 'oHideWith' txt 'oFadeOut' +-- @ +-- +-- <> oDraw :: SVG -> Animation oDraw = oStagger $ \svg -> scene $ forM_ (svgGlyphs $ pathify svg) $ \(ctx, attr, node) -> do diff --git a/src/Reanimate/Scene/Sprite.hs b/src/Reanimate/Scene/Sprite.hs index e69b00e..8fda6dc 100644 --- a/src/Reanimate/Scene/Sprite.hs +++ b/src/Reanimate/Scene/Sprite.hs @@ -41,8 +41,8 @@ import Reanimate.Transition (Transition, overlapT) -- Example: -- -- @ --- do var \<- 'simpleVar' 'mkCircle' 0 --- 'tweenVar' var 2 $ \\val -> 'fromToS' val ('Reanimate.Constants.screenHeight'/2) +-- do var \<- 'simpleVar' 'Reanimate.Svg.Constructors.mkCircle' 0 +-- 'Reanimate.Scene.tweenVar' var 2 $ \\val -> 'Reanimate.fromToS' val ('Reanimate.Constants.screenHeight'/2) -- @ -- -- <> @@ -98,9 +98,9 @@ instance Applicative (Frame s) where -- -- @ -- do v \<- 'newVar' 0 --- 'newSprite' $ 'mkCircle' \<$\> 'unVar' v --- 'tweenVar' v 1 $ \\val -> 'fromToS' val 3 --- 'tweenVar' v 1 $ \\val -> 'fromToS' val 0 +-- 'newSprite' $ 'Reanimate.Svg.Constructors.mkCircle' \<$\> 'unVar' v +-- 'Reanimate.Scene.tweenVar' v 1 $ \\val -> 'Reanimate.fromToS' val 3 +-- 'Reanimate.Scene.tweenVar' v 1 $ \\val -> 'Reanimate.fromToS' val 0 -- @ -- -- <> @@ -123,7 +123,7 @@ spriteDuration = Frame $ return (\_real_t d _t -> d) -- Example: -- -- @ --- do 'newSprite' $ 'mkCircle' \<$\> 'spriteT' -- Circle sprite where radius=time. +-- do 'newSprite' $ 'Reanimate.Svg.Constructors.mkCircle' \<$\> 'spriteT' -- Circle sprite where radius=time. -- 'wait' 2 -- @ -- @@ -169,7 +169,7 @@ newSprite_ = void . newSprite -- @ -- do 'fork' $ 'newSpriteA' 'Reanimate.Builtin.Documentation.drawCircle' -- 'play' 'Reanimate.Builtin.Documentation.drawBox' --- 'play' $ 'reverseA' 'Reanimate.Builtin.Documentation.drawBox' +-- 'play' $ 'Reanimate.Animation.reverseA' 'Reanimate.Builtin.Documentation.drawBox' -- @ -- -- <> @@ -182,9 +182,9 @@ newSpriteA = newSpriteA' SyncStretch -- Example: -- -- @ --- do 'fork' $ 'newSpriteA'' 'SyncFreeze' 'Reanimate.Builtin.Documentation.drawCircle' +-- do 'fork' $ 'newSpriteA'' 'Reanimate.Animation.SyncFreeze' 'Reanimate.Builtin.Documentation.drawCircle' -- 'play' 'Reanimate.Builtin.Documentation.drawBox' --- 'play' $ 'reverseA' 'Reanimate.Builtin.Documentation.drawBox' +-- 'play' $ 'Reanimate.Animation.reverseA' 'Reanimate.Builtin.Documentation.drawBox' -- @ -- -- <> @@ -198,7 +198,7 @@ newSpriteA' sync animation = -- Example: -- -- @ --- do 'newSpriteSVG' $ 'mkBackground' "lightblue" +-- do 'newSpriteSVG' $ 'Reanimate.Svg.Constructors.mkBackground' "lightblue" -- 'play' 'Reanimate.Builtin.Documentation.drawCircle' -- @ -- @@ -219,8 +219,8 @@ newSpriteSVG_ = void . newSpriteSVG -- @ -- do s \<- 'fork' $ 'newSpriteA' 'Reanimate.Builtin.Documentation.drawBox' -- v \<- 'newVar' 0 --- 'applyVar' v s 'rotate' --- 'tweenVar' v 2 $ \\val -> 'fromToS' val 90 +-- 'applyVar' v s 'Reanimate.Svg.Constructors.rotate' +-- 'Reanimate.Scene.tweenVar' v 2 $ \\val -> 'Reanimate.fromToS' val 90 -- @ -- -- <> @@ -235,7 +235,7 @@ applyVar var sprite fn = spriteModify sprite $ do -- Example: -- -- @ --- do s <- 'newSpriteSVG' $ 'withFillOpacity' 1 $ 'mkCircle' 1 +-- do s <- 'newSpriteSVG' $ 'Reanimate.Svg.Constructors.withFillOpacity' 1 $ 'Reanimate.Svg.Constructors.mkCircle' 1 -- 'fork' $ 'wait' 1 \>\> 'destroySprite' s -- 'play' 'Reanimate.Builtin.Documentation.drawBox' -- @ @@ -267,7 +267,7 @@ spriteModify (Sprite born ref) modFn = liftST $ -- @ -- do s \<- 'fork' $ 'newSpriteA' 'Reanimate.Builtin.Documentation.drawCircle' -- 'wait' 1 --- 'spriteMap' s 'flipYAxis' +-- 'spriteMap' s 'Reanimate.Svg.Constructors.flipYAxis' -- @ -- -- <> @@ -285,7 +285,7 @@ spriteMap sprite@(Sprite born _) fn = do -- -- @ -- do s \<- 'fork' $ 'newSpriteA' 'Reanimate.Builtin.Documentation.drawCircle' --- 'spriteTween' s 1 $ \\val -> 'translate' ('Reanimate.Constants.screenWidth'*0.3*val) 0 +-- 'spriteTween' s 1 $ \\val -> 'Reanimate.Svg.Constructors.translate' ('Reanimate.Constants.screenWidth'*0.3*val) 0 -- @ -- -- <> @@ -309,8 +309,8 @@ spriteTween sprite@(Sprite born _) dur fn = do -- -- @ -- do s \<- 'fork' $ 'newSpriteA' 'Reanimate.Builtin.Documentation.drawBox' --- v \<- 'spriteVar' s 0 'rotate' --- 'tweenVar' v 2 $ \\val -> 'fromToS' val 90 +-- v \<- 'spriteVar' s 0 'Reanimate.Svg.Constructors.rotate' +-- 'Reanimate.Scene.tweenVar' v 2 $ \\val -> 'Reanimate.fromToS' val 90 -- @ -- -- <> @@ -326,8 +326,8 @@ spriteVar sprite def fn = do -- -- @ -- do s <- 'fork' $ 'newSpriteA' 'Reanimate.Builtin.Documentation.drawCircle' --- 'spriteE' s $ 'overBeginning' 1 'fadeInE' --- 'spriteE' s $ 'overEnding' 0.5 'fadeOutE' +-- 'spriteE' s $ 'Reanimate.Effect.overBeginning' 1 'Reanimate.Effect.fadeInE' +-- 'spriteE' s $ 'Reanimate.Effect.overEnding' 0.5 'Reanimate.Effect.fadeOutE' -- @ -- -- <> @@ -349,8 +349,8 @@ spriteE (Sprite born ref) effect = do -- Example: -- -- @ --- do s1 \<- 'newSpriteSVG' $ 'withFillOpacity' 1 $ 'withFillColor' "blue" $ 'mkCircle' 3 --- 'newSpriteSVG' $ 'withFillOpacity' 1 $ 'withFillColor' "red" $ 'mkRect' 8 3 +-- do s1 \<- 'newSpriteSVG' $ 'Reanimate.Svg.Constructors.withFillOpacity' 1 $ 'Reanimate.Svg.Constructors.withFillColor' "blue" $ 'Reanimate.Svg.Constructors.mkCircle' 3 +-- 'newSpriteSVG' $ 'Reanimate.Svg.Constructors.withFillOpacity' 1 $ 'Reanimate.Svg.Constructors.withFillColor' "red" $ 'Reanimate.Svg.Constructors.mkRect' 8 3 -- 'wait' 1 -- 'spriteZ' s1 1 -- 'wait' 1 @@ -375,13 +375,13 @@ spriteZ (Sprite born ref) zindex = do -- -- @ -- do -- the rect lives through the entire 3s animation --- 'newSpriteSVG_' $ 'translate' (-3) 0 $ 'mkRect' 4 4 +-- 'newSpriteSVG_' $ 'Reanimate.Svg.Constructors.translate' (-3) 0 $ 'Reanimate.Svg.Constructors.mkRect' 4 4 -- 'wait' 1 -- 'spriteScope' $ do -- -- the circle only lives for 1 second. --- local \<- 'newSpriteSVG' $ 'translate' 3 0 $ 'mkCircle' 2 --- 'spriteE' local $ 'overBeginning' 0.3 'fadeInE' --- 'spriteE' local $ 'overEnding' 0.3 'fadeOutE' +-- local \<- 'newSpriteSVG' $ 'Reanimate.Svg.Constructors.translate' 3 0 $ 'Reanimate.Svg.Constructors.mkCircle' 2 +-- 'spriteE' local $ 'Reanimate.Effect.overBeginning' 0.3 'Reanimate.Effect.fadeInE' +-- 'spriteE' local $ 'Reanimate.Effect.overEnding' 0.3 'Reanimate.Effect.fadeOutE' -- 'wait' 1 -- 'wait' 1 -- @ diff --git a/src/Reanimate/Scene/Var.hs b/src/Reanimate/Scene/Var.hs index 2caccfa..64a659f 100644 --- a/src/Reanimate/Scene/Var.hs +++ b/src/Reanimate/Scene/Var.hs @@ -5,7 +5,6 @@ module Reanimate.Scene.Var where import Control.Monad.ST (ST) import qualified Data.Map as M -import Data.Maybe (fromMaybe) import Data.STRef import Reanimate.Animation (Duration, Time) import Reanimate.Scene.Core (Scene, liftST, queryNow, wait) @@ -34,7 +33,7 @@ type Timeline a = M.Map Time (Modifier a) -- earlier than when the variable was created. For example: -- -- @ --- do v \<- 'fork' ('wait' 10 \>\> 'newVar' 0) -- Create a variable at timestamp '10'. +-- do v \<- 'Reanimate.Scene.fork' ('wait' 10 \>\> 'newVar' 0) -- Create a variable at timestamp '10'. -- 'readVar' v -- Read the variable at timestamp '0'. -- -- The value of the variable will be '0'. -- @ @@ -54,7 +53,7 @@ unpackVar (Var ref) = readVarData <$> readSTRef ref -- -- @ -- do v \<- 'newVar' 0 --- 'newSprite' $ 'mkCircle' \<$\> 'unVar' v +-- 'Reanimate.Scene.newSprite' $ 'Reanimate.Svg.Constructors.mkCircle' \<$\> 'Reanimate.Scene.unVar' v -- 'writeVar' v 1; 'wait' 1 -- 'writeVar' v 2; 'wait' 1 -- 'writeVar' v 3; 'wait' 1 @@ -129,7 +128,7 @@ elseVar :: VarData a -> VarData a -> VarData a elseVar var1 var2 | Just t <- evarLastTime var1 = let afterTimeline = evarTimeline var1 - joinAt = fromMaybe t . fmap fst $ M.lookupMin afterTimeline + joinAt = maybe t fst $ M.lookupMin afterTimeline beforeTimeline = case keepBefore joinAt var2 of x | Just lastTime <- evarLastTime x, lastTime < joinAt -> M.insert lastTime (StaticValue $ evarLastValue x) $ evarTimeline x @@ -139,7 +138,7 @@ elseVar var1 var2 -- Restrict a var to a given time interval. keepInRange :: Maybe Time -> Maybe Time -> VarData a -> VarData a -keepInRange st nd = fromMaybe id (keepFrom <$> st) . fromMaybe id (keepBefore <$> nd) +keepInRange st nd = maybe id keepFrom st . maybe id keepBefore nd -- Restrict a var to start at given timestamp. keepFrom :: Time -> VarData a -> VarData a @@ -167,4 +166,4 @@ keepBefore nd var@VarData {..} = lastTime = case lastModifier of Just (t, TweenValue dur _) -> Just $ min nd (t + dur) _ -> min nd <$> evarLastTime - in VarData evarDefault timeline'' lastTime (fromMaybe evarDefault $ fmap (readVarData var) lastTime) + in VarData evarDefault timeline'' lastTime (maybe evarDefault (readVarData var) lastTime)