diff --git a/examples/animation.js b/examples/animation.js index 3257139fe0..f287201039 100644 --- a/examples/animation.js +++ b/examples/animation.js @@ -56,8 +56,8 @@ rotateRight.addEventListener('click', function() { var panToLondon = document.getElementById('pan-to-london'); panToLondon.addEventListener('click', function() { var pan = ol.animation.pan({ - source: map.getView().getView2D().getCenter(), - duration: 2000 + duration: 2000, + source: map.getView().getView2D().getCenter() }); map.addPreRenderFunction(pan); map.getView().getView2D().setCenter(london); @@ -66,9 +66,9 @@ panToLondon.addEventListener('click', function() { var elasticToMoscow = document.getElementById('elastic-to-moscow'); elasticToMoscow.addEventListener('click', function() { var pan = ol.animation.pan({ - source: map.getView().getView2D().getCenter(), duration: 2000, - easing: ol.easing.elastic + easing: ol.easing.elastic, + source: map.getView().getView2D().getCenter() }); map.addPreRenderFunction(pan); map.getView().getView2D().setCenter(moscow); @@ -77,9 +77,9 @@ elasticToMoscow.addEventListener('click', function() { var bounceToInstanbul = document.getElementById('bounce-to-instanbul'); bounceToInstanbul.addEventListener('click', function() { var pan = ol.animation.pan({ - source: map.getView().getView2D().getCenter(), duration: 2000, - easing: ol.easing.bounce + easing: ol.easing.bounce, + source: map.getView().getView2D().getCenter() }); map.addPreRenderFunction(pan); map.getView().getView2D().setCenter(instanbul); diff --git a/src/ol/animation.js b/src/ol/animation.js index 74a7120de2..7c0b4dffdf 100644 --- a/src/ol/animation.js +++ b/src/ol/animation.js @@ -2,7 +2,6 @@ goog.provide('ol.animation'); -goog.require('goog.fx.easing'); goog.require('ol.PreRenderFunction'); goog.require('ol.ViewHint'); goog.require('ol.easing'); @@ -48,7 +47,7 @@ ol.animation.pan = function(options) { var sourceY = source.y; var duration = goog.isDef(options.duration) ? options.duration : 1000; var easing = goog.isDef(options.easing) ? - options.easing : goog.fx.easing.inAndOut; + options.easing : ol.easing.inAndOut; return function(map, frameState) { if (frameState.time < start) { frameState.animate = true; @@ -79,7 +78,7 @@ ol.animation.rotate = function(options) { var start = goog.isDef(options.start) ? options.start : goog.now(); var duration = goog.isDef(options.duration) ? options.duration : 1000; var easing = goog.isDef(options.easing) ? - options.easing : goog.fx.easing.inAndOut; + options.easing : ol.easing.inAndOut; return function(map, frameState) { if (frameState.time < start) { @@ -110,7 +109,7 @@ ol.animation.zoom = function(options) { var start = goog.isDef(options.start) ? options.start : goog.now(); var duration = goog.isDef(options.duration) ? options.duration : 1000; var easing = goog.isDef(options.easing) ? - options.easing : ol.easing.linear; + options.easing : ol.easing.inAndOut; return function(map, frameState) { if (frameState.time < start) { frameState.animate = true; diff --git a/src/ol/easing.exports b/src/ol/easing.exports index 62418771ad..9ea3bdc094 100644 --- a/src/ol/easing.exports +++ b/src/ol/easing.exports @@ -1,5 +1,8 @@ @exportSymbol ol.easing +@exportProperty ol.easing.bounce +@exportProperty ol.easing.easeIn +@exportProperty ol.easing.easeOut +@exportProperty ol.easing.elastic +@exportProperty ol.easing.inAndOut @exportProperty ol.easing.linear @exportProperty ol.easing.upAndDown -@exportProperty ol.easing.elastic -@exportProperty ol.easing.bounce diff --git a/src/ol/easing.js b/src/ol/easing.js index 944279cfcc..9e829f3a93 100644 --- a/src/ol/easing.js +++ b/src/ol/easing.js @@ -1,36 +1,6 @@ goog.provide('ol.easing'); - -/** - * @param {number} t Input between 0 and 1. - * @return {number} Output between 0 and 1. - */ -ol.easing.linear = function(t) { - return t; -}; - - -/** - * @param {number} t Input between 0 and 1. - * @return {number} Output between 0 and 1. - */ -ol.easing.upAndDown = function(t) { - if (t < 0.5) { - return goog.fx.easing.inAndOut(2 * t); - } else { - return 1 - goog.fx.easing.inAndOut(2 * (t - 0.5)); - } -}; - - -/** - * from https://raw.github.com/DmitryBaranovskiy/raphael/master/raphael.js - * @param {number} t Input between 0 and 1. - * @return {number} Output between 0 and 1. - */ -ol.easing.elastic = function(t) { - return Math.pow(2, -10 * t) * Math.sin((t - 0.075) * (2 * Math.PI) / 0.3) + 1; -}; +goog.require('goog.fx.easing'); /** @@ -58,3 +28,56 @@ ol.easing.bounce = function(t) { } return l; }; + + +/** + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + */ +ol.easing.easeIn = goog.fx.easing.easeIn; + + +/** + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + */ +ol.easing.easeOut = goog.fx.easing.easeOut; + + +/** + * from https://raw.github.com/DmitryBaranovskiy/raphael/master/raphael.js + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + */ +ol.easing.elastic = function(t) { + return Math.pow(2, -10 * t) * Math.sin((t - 0.075) * (2 * Math.PI) / 0.3) + 1; +}; + + +/** + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + */ +ol.easing.inAndOut = goog.fx.easing.inAndOut; + + +/** + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + */ +ol.easing.linear = function(t) { + return t; +}; + + +/** + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + */ +ol.easing.upAndDown = function(t) { + if (t < 0.5) { + return ol.easing.inAndOut(2 * t); + } else { + return 1 - ol.easing.inAndOut(2 * (t - 0.5)); + } +}; diff --git a/src/ol/view2d.js b/src/ol/view2d.js index 0f8bd61df6..d33ac86875 100644 --- a/src/ol/view2d.js +++ b/src/ol/view2d.js @@ -4,7 +4,6 @@ goog.provide('ol.View2D'); goog.provide('ol.View2DProperty'); -goog.require('goog.fx.easing'); goog.require('ol.Constraints'); goog.require('ol.Coordinate'); goog.require('ol.Extent'); @@ -308,13 +307,13 @@ ol.View2D.prototype.rotateWithoutConstraints = map.addPreRenderFunction(ol.animation.rotate({ rotation: currentRotation, duration: opt_duration, - easing: goog.fx.easing.easeOut + easing: ol.easing.easeOut })); if (goog.isDef(opt_anchor)) { map.addPreRenderFunction(ol.animation.pan({ source: currentCenter, duration: opt_duration, - easing: goog.fx.easing.easeOut + easing: ol.easing.easeOut })); } } @@ -382,13 +381,13 @@ ol.View2D.prototype.zoomWithoutConstraints = map.addPreRenderFunction(ol.animation.zoom({ resolution: currentResolution, duration: opt_duration, - easing: goog.fx.easing.easeOut + easing: ol.easing.easeOut })); if (goog.isDef(opt_anchor)) { map.addPreRenderFunction(ol.animation.pan({ source: currentCenter, duration: opt_duration, - easing: goog.fx.easing.easeOut + easing: ol.easing.easeOut })); } }