From 20ee65f7509980af701df65bbf2239d563c5cf02 Mon Sep 17 00:00:00 2001 From: tschaub Date: Fri, 26 Oct 2012 08:15:10 -0700 Subject: [PATCH] Created Animation Cases (markdown) --- Animation-Cases.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Animation-Cases.md diff --git a/Animation-Cases.md b/Animation-Cases.md new file mode 100644 index 0000000..97ce634 --- /dev/null +++ b/Animation-Cases.md @@ -0,0 +1,27 @@ +## Interruptible Transitions in Map State + +These types of animations change the map state (e.g. center and resolution) and re-render all layers with each change in state. During these transition, user generated events (e.g. `mousedown`, `touchstart`, `mousewheel`) must cancel the animation. During these transition, other events (e.g. tile loading) that might trigger a rendering must not cancel the animation. + +**Examples** + + * Fly to: a method is called that results in the map smoothly panning and zooming to a new center and resolution. + + * Kinetic pan: a method is called at the end of a drag-pan that results in the map gradually coming to a stop. + +## Playback + +These types of animation display changes in data over time. Typically the user would be presented with some playback controls and would start and stop the animation manually. An animation playback of this sort does not interfere with the animated changes in map state described above and vice versa (kinetic panning works as expected while watching the replay of a hurricane path). + +## Display Effects + +Some aspects of map rendering may be animated for a simple display effect (without an accompanying gradual change in map state). These types of animations should be completely independent from the above animations. + +**Examples** + + * Tile fade: when tiles are drawn they may gradually fade in. + + * Animated zoom: when the user requests a change in resolution (e.g. 2x), the renderer may choose to animate the transition (though the map state changes immediately). + +## Things that are not Animations + + * "Real-time" data updates: say we have a vector layer that streams data changes via a WebSocket. The layer may request a re-rendering of the map with every data change. The renderers should handle this in an efficient way (i.e. the layer shouldn't have to know how to animate, it should just demand a re-rendering with every data change). \ No newline at end of file