-- | -- Module : Reanimate.Scene -- Copyright : Written by David Himmelstrup -- License : Unlicense -- Maintainer : lemmih@gmail.com -- Stability : experimental -- Portability : POSIX -- -- Scenes are an imperative way of defining animations. module Reanimate.Scene ( -- * Scenes Scene, ZIndex, scene, -- :: (forall s. Scene s a) -> Animation play, -- :: Animation -> Scene s () fork, -- :: Scene s a -> Scene s a queryNow, -- :: Scene s Time wait, -- :: Duration -> Scene s () waitUntil, -- :: Time -> Scene s () waitOn, -- :: Scene s a -> Scene s a adjustZ, -- :: (ZIndex -> ZIndex) -> Scene s a -> Scene s a withSceneDuration, -- :: Scene s () -> Scene s Duration -- * Variables Var, newVar, -- :: a -> Scene s (Var s a) readVar, -- :: Var s a -> Scene s a writeVar, -- :: Var s a -> a -> Scene s () modifyVar, -- :: Var s a -> (a -> a) -> Scene s () tweenVar, -- :: Var s a -> Duration -> (a -> Time -> a) -> Scene s () simpleVar, -- :: (a -> SVG) -> a -> Scene s (Var s a) findVar, -- :: (a -> Bool) -> [Var s a] -> Scene s (Var s a) -- * Sprites Sprite, Frame, unVar, -- :: Var s a -> Frame s a spriteT, -- :: Frame s Time spriteDuration, -- :: Frame s Duration newSprite, -- :: Frame s SVG -> Scene s (Sprite s) newSprite_, -- :: Frame s SVG -> Scene s () newSpriteA, -- :: Animation -> Scene s (Sprite s) newSpriteA', -- :: Sync -> Animation -> Scene s (Sprite s) newSpriteSVG, -- :: SVG -> Scene s (Sprite s) newSpriteSVG_, -- :: SVG -> Scene s () destroySprite, -- :: Sprite s -> Scene s () applyVar, -- :: Var s a -> Sprite s -> (a -> SVG -> SVG) -> Scene s () spriteModify, -- :: Sprite s -> Frame s ((SVG,ZIndex) -> (SVG, ZIndex)) -> Scene s () spriteMap, -- :: Sprite s -> (SVG -> SVG) -> Scene s () spriteTween, -- :: Sprite s -> Duration -> (Double -> SVG -> SVG) -> Scene s () spriteVar, -- :: Sprite s -> a -> (a -> SVG -> SVG) -> Scene s (Var s a) spriteE, -- :: Sprite s -> Effect -> Scene s () spriteZ, -- :: Sprite s -> ZIndex -> Scene s () spriteScope, -- :: Scene s a -> Scene s a -- * Object API Object, ObjectData, oNew, newObject, oModify, oModifyS, oRead, oTween, oTweenS, oTweenV, oTweenVS, Renderable (..), -- ** Object Properties oTranslate, oTranslateX, oTranslateY, oSVG, oContext, oMargin, oMarginTop, oMarginRight, oMarginBottom, oMarginLeft, oBB, oBBMinX, oBBMinY, oBBWidth, oBBHeight, oOpacity, oShown, oZIndex, oEasing, oScale, oScaleOrigin, oTopY, oBottomY, oLeftX, oRightX, oCenterXY, oCenterX, oCenterY, oValue, -- ** Graphics object methods oShow, oHide, oShowWith, oHideWith, oFadeIn, oFadeOut, oGrow, oShrink, oTransform, Origin, oScaleIn, oScaleIn', oScaleOut, oScaleOut', oDraw, oSim, oStagger, oStaggerRev, oStagger', oStaggerRev', -- , oBalloon -- ** Pre-defined objects Circle (..), circleRadius, Rectangle (..), rectWidth, rectHeight, Morph (..), morphDelta, morphSrc, morphDst, Camera (..), cameraAttach, cameraFocus, cameraSetZoom, cameraZoom, cameraSetPan, cameraPan, -- * ST internals liftST, transitionO, evalScene, ) where import Reanimate.Scene.Core import Reanimate.Scene.Object import Reanimate.Scene.Sprite import Reanimate.Scene.Var