48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
goog.provide('ol.interaction.CenterConstraint');
|
|
goog.provide('ol.interaction.CenterConstraintType');
|
|
|
|
goog.require('ol.Coordinate');
|
|
|
|
|
|
/**
|
|
* @typedef {function((ol.Coordinate|undefined),
|
|
* (number|undefined),
|
|
* ol.Coordinate): (ol.Coordinate|undefined)}
|
|
*/
|
|
ol.interaction.CenterConstraintType;
|
|
|
|
|
|
/**
|
|
* @param {ol.Coordinate|undefined} center Center.
|
|
* @param {number|undefined} resolution Resolution.
|
|
* @param {ol.Coordinate} delta Delta.
|
|
* @return {ol.Coordinate|undefined} Center.
|
|
*/
|
|
ol.interaction.CenterConstraint.none = function(center, resolution, delta) {
|
|
if (goog.isDefAndNotNull(center) && goog.isDef(resolution)) {
|
|
var x = center.x + delta.x;
|
|
var y = center.y + delta.y;
|
|
return new ol.Coordinate(x, y);
|
|
} else {
|
|
return undefined;
|
|
}
|
|
};
|
|
|
|
|
|
/**
|
|
* @param {ol.Coordinate|undefined} center Center.
|
|
* @param {number|undefined} resolution Resolution.
|
|
* @param {ol.Coordinate} delta Delta.
|
|
* @return {ol.Coordinate|undefined} Center.
|
|
*/
|
|
ol.interaction.CenterConstraint.snapToPixel =
|
|
function(center, resolution, delta) {
|
|
if (goog.isDefAndNotNull(center) && goog.isDef(resolution)) {
|
|
var x = Math.floor((center.x + delta.x) / resolution + 0.5) * resolution;
|
|
var y = Math.floor((center.y + delta.y) / resolution + 0.5) * resolution;
|
|
return new ol.Coordinate(x, y);
|
|
} else {
|
|
return undefined;
|
|
}
|
|
};
|