Replace ol.animation.createSpin with ol.animation.createRotateFrom
This commit is contained in:
+16
-16
@@ -140,12 +140,12 @@ keyboardInteraction.addCallback('L', function() {
|
|||||||
start: start,
|
start: start,
|
||||||
duration: duration
|
duration: duration
|
||||||
});
|
});
|
||||||
var spin = ol.animation.createSpin({
|
var rotateFrom = ol.animation.createRotateFrom({
|
||||||
turns: 2,
|
rotation: 4 * Math.PI,
|
||||||
start: start,
|
start: start,
|
||||||
duration: duration
|
duration: duration
|
||||||
});
|
});
|
||||||
var preRenderFunctions = [bounce, panFrom, spin];
|
var preRenderFunctions = [bounce, panFrom, rotateFrom];
|
||||||
domMap.addPreRenderFunctions(preRenderFunctions);
|
domMap.addPreRenderFunctions(preRenderFunctions);
|
||||||
webglMap.addPreRenderFunctions(preRenderFunctions);
|
webglMap.addPreRenderFunctions(preRenderFunctions);
|
||||||
canvasMap.addPreRenderFunctions(preRenderFunctions);
|
canvasMap.addPreRenderFunctions(preRenderFunctions);
|
||||||
@@ -175,12 +175,12 @@ keyboardInteraction.addCallback('M', function() {
|
|||||||
start: start,
|
start: start,
|
||||||
duration: duration
|
duration: duration
|
||||||
});
|
});
|
||||||
var spin = ol.animation.createSpin({
|
var rotateFrom = ol.animation.createRotateFrom({
|
||||||
turns: -2,
|
rotation: -4 * Math.PI,
|
||||||
start: start,
|
start: start,
|
||||||
duration: duration
|
duration: duration
|
||||||
});
|
});
|
||||||
var preRenderFunctions = [bounce, panFrom, spin];
|
var preRenderFunctions = [bounce, panFrom, rotateFrom];
|
||||||
domMap.addPreRenderFunctions(preRenderFunctions);
|
domMap.addPreRenderFunctions(preRenderFunctions);
|
||||||
webglMap.addPreRenderFunctions(preRenderFunctions);
|
webglMap.addPreRenderFunctions(preRenderFunctions);
|
||||||
canvasMap.addPreRenderFunctions(preRenderFunctions);
|
canvasMap.addPreRenderFunctions(preRenderFunctions);
|
||||||
@@ -206,21 +206,21 @@ keyboardInteraction.addCallback('vV', function() {
|
|||||||
layer.setVisible(!layer.getVisible());
|
layer.setVisible(!layer.getVisible());
|
||||||
});
|
});
|
||||||
keyboardInteraction.addCallback('x', function() {
|
keyboardInteraction.addCallback('x', function() {
|
||||||
var spin = ol.animation.createSpin({
|
var rotateFrom = ol.animation.createRotateFrom({
|
||||||
turns: 2,
|
rotation: 4 * Math.PI,
|
||||||
duration: 2000
|
duration: 2000
|
||||||
});
|
});
|
||||||
domMap.addPreRenderFunction(spin);
|
domMap.addPreRenderFunction(rotateFrom);
|
||||||
webglMap.addPreRenderFunction(spin);
|
webglMap.addPreRenderFunction(rotateFrom);
|
||||||
canvasMap.addPreRenderFunction(spin);
|
canvasMap.addPreRenderFunction(rotateFrom);
|
||||||
});
|
});
|
||||||
keyboardInteraction.addCallback('X', function() {
|
keyboardInteraction.addCallback('X', function() {
|
||||||
var spin = ol.animation.createSpin({
|
var rotateFrom = ol.animation.createRotateFrom({
|
||||||
turns: -2,
|
rotation: -4 * Math.PI,
|
||||||
duration: 2000
|
duration: 2000
|
||||||
});
|
});
|
||||||
domMap.addPreRenderFunction(spin);
|
domMap.addPreRenderFunction(rotateFrom);
|
||||||
webglMap.addPreRenderFunction(spin);
|
webglMap.addPreRenderFunction(rotateFrom);
|
||||||
canvasMap.addPreRenderFunction(spin);
|
canvasMap.addPreRenderFunction(rotateFrom);
|
||||||
});
|
});
|
||||||
domMap.getInteractions().push(keyboardInteraction);
|
domMap.getInteractions().push(keyboardInteraction);
|
||||||
|
|||||||
@@ -38,11 +38,11 @@
|
|||||||
@exportObjectLiteralProperty ol.animation.PanFromOptions.duration number|undefined
|
@exportObjectLiteralProperty ol.animation.PanFromOptions.duration number|undefined
|
||||||
@exportObjectLiteralProperty ol.animation.PanFromOptions.easing function(number):number|undefined
|
@exportObjectLiteralProperty ol.animation.PanFromOptions.easing function(number):number|undefined
|
||||||
|
|
||||||
@exportObjectLiteral ol.animation.SpinOptions
|
@exportObjectLiteral ol.animation.RotateFromOptions
|
||||||
@exportObjectLiteralProperty ol.animation.SpinOptions.turns number
|
@exportObjectLiteralProperty ol.animation.RotateFromOptions.rotation number
|
||||||
@exportObjectLiteralProperty ol.animation.SpinOptions.start number|undefined
|
@exportObjectLiteralProperty ol.animation.RotateFromOptions.start number|undefined
|
||||||
@exportObjectLiteralProperty ol.animation.SpinOptions.duration number|undefined
|
@exportObjectLiteralProperty ol.animation.RotateFromOptions.duration number|undefined
|
||||||
@exportObjectLiteralProperty ol.animation.SpinOptions.easing function(number):number|undefined
|
@exportObjectLiteralProperty ol.animation.RotateFromOptions.easing function(number):number|undefined
|
||||||
|
|
||||||
@exportObjectLiteral ol.animation.ZoomFromOptions
|
@exportObjectLiteral ol.animation.ZoomFromOptions
|
||||||
@exportObjectLiteralProperty ol.animation.ZoomFromOptions.resolution number
|
@exportObjectLiteralProperty ol.animation.ZoomFromOptions.resolution number
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@exportSymbol ol.animation
|
@exportSymbol ol.animation
|
||||||
@exportProperty ol.animation.createBounce
|
@exportProperty ol.animation.createBounce
|
||||||
@exportProperty ol.animation.createPanFrom
|
@exportProperty ol.animation.createPanFrom
|
||||||
@exportProperty ol.animation.createSpin
|
@exportProperty ol.animation.createRotateFrom
|
||||||
|
|||||||
+7
-5
@@ -71,15 +71,15 @@ ol.animation.createPanFrom = function(options) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.animation.SpinOptions} options Options.
|
* @param {ol.animation.RotateFromOptions} options Options.
|
||||||
* @return {ol.PreRenderFunction} Pre-render function.
|
* @return {ol.PreRenderFunction} Pre-render function.
|
||||||
*/
|
*/
|
||||||
ol.animation.createSpin = function(options) {
|
ol.animation.createRotateFrom = function(options) {
|
||||||
|
var sourceRotation = options.rotation;
|
||||||
var start = goog.isDef(options.start) ? options.start : goog.now();
|
var start = goog.isDef(options.start) ? options.start : goog.now();
|
||||||
var duration = goog.isDef(options.duration) ? options.duration : 1000;
|
var duration = goog.isDef(options.duration) ? options.duration : 1000;
|
||||||
var easing = goog.isDef(options.easing) ?
|
var easing = goog.isDef(options.easing) ?
|
||||||
options.easing : goog.fx.easing.inAndOut;
|
options.easing : goog.fx.easing.inAndOut;
|
||||||
var deltaTheta = 2 * options.turns * Math.PI;
|
|
||||||
|
|
||||||
return function(map, frameState) {
|
return function(map, frameState) {
|
||||||
if (frameState.time < start) {
|
if (frameState.time < start) {
|
||||||
@@ -87,9 +87,11 @@ ol.animation.createSpin = function(options) {
|
|||||||
frameState.viewHints[ol.ViewHint.ANIMATING] += 1;
|
frameState.viewHints[ol.ViewHint.ANIMATING] += 1;
|
||||||
return true;
|
return true;
|
||||||
} else if (frameState.time < start + duration) {
|
} else if (frameState.time < start + duration) {
|
||||||
var delta = easing((frameState.time - start) / duration);
|
var delta = 1 - easing((frameState.time - start) / duration);
|
||||||
|
var deltaRotation =
|
||||||
|
sourceRotation - frameState.view2DState.rotation;
|
||||||
frameState.animate = true;
|
frameState.animate = true;
|
||||||
frameState.view2DState.rotation += delta * deltaTheta;
|
frameState.view2DState.rotation += delta * deltaRotation;
|
||||||
frameState.viewHints[ol.ViewHint.ANIMATING] += 1;
|
frameState.viewHints[ol.ViewHint.ANIMATING] += 1;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user