reanimate-0.5.0.0: src/Reanimate/Scene.hs
{-# LANGUAGE ApplicativeDo #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
-- |
-- 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
sceneAnimation, -- :: (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,
oSVG,
oContext,
oMargin,
oMarginTop,
oMarginRight,
oMarginBottom,
oMarginLeft,
oBB,
oBBMinX,
oBBMinY,
oBBWidth,
oBBHeight,
oOpacity,
oShown,
oZIndex,
oEasing,
oScale,
oScaleOrigin,
oTopY,
oBottomY,
oLeftX,
oRightX,
oCenterXY,
oValue,
-- ** Graphics object methods
oShow,
oHide,
oFadeIn,
oFadeOut,
oGrow,
oShrink,
oTransform,
oShowWith,
oHideWith,
Origin,
oScaleIn,
oScaleIn',
oScaleOut,
oScaleOut',
oSim,
oStagger,
oStaggerRev,
oStagger',
oStaggerRev',
oDraw,
-- , 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