From aa9f820723f696f1b8868d5f1e24884b15b77357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 29 Jan 2013 15:41:27 +0100 Subject: [PATCH] Add scale to ol.Rectangle --- src/ol/rectangle.js | 13 +++++++++++++ test/spec/ol/rectangle.test.js | 11 +++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/ol/rectangle.js b/src/ol/rectangle.js index a459d04603..c7d9cab121 100644 --- a/src/ol/rectangle.js +++ b/src/ol/rectangle.js @@ -124,3 +124,16 @@ ol.Rectangle.prototype.normalize = function(coordinate) { ol.Rectangle.prototype.toString = function() { return '(' + [this.minX, this.minY, this.maxX, this.maxY].join(', ') + ')'; }; + + +/** + * @param {number} value Value. + */ +ol.Rectangle.prototype.scale = function(value) { + var deltaX = (this.getWidth() / 2.0) * (value - 1); + var deltaY = (this.getHeight() / 2.0) * (value - 1); + this.minX -= deltaX; + this.minY -= deltaY; + this.maxX += deltaX; + this.maxY += deltaY; +}; diff --git a/test/spec/ol/rectangle.test.js b/test/spec/ol/rectangle.test.js index 55d8882e54..5f882621ca 100644 --- a/test/spec/ol/rectangle.test.js +++ b/test/spec/ol/rectangle.test.js @@ -98,6 +98,17 @@ describe('ol.Rectangle', function() { }); }); + describe('scale', function() { + it('scales the extent', function() { + var rectangle = new ol.Rectangle(1, 1, 3, 3); + rectangle.scale(2); + expect(rectangle.minX).toEqual(0); + expect(rectangle.minY).toEqual(0); + expect(rectangle.maxX).toEqual(4); + expect(rectangle.maxY).toEqual(4); + }); + }); + }); goog.require('ol.Coordinate');