reanimate-1.0.0.0: src/Reanimate/Scene.hs
-- |
-- 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