From b93cb7c47af5792944cc3316481a9045c09dfc29 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Jul 2012 00:06:27 +0200 Subject: [PATCH] Add ol.Rectangle.normalize --- src/ol/rectangle.js | 11 +++++++++++ src/ol/rectangle_test.js | 27 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/ol/rectangle.js b/src/ol/rectangle.js index 5c51090971..c1b961d1b7 100644 --- a/src/ol/rectangle.js +++ b/src/ol/rectangle.js @@ -103,3 +103,14 @@ ol.Rectangle.prototype.getSize = function() { ol.Rectangle.prototype.getWidth = function() { return this.maxX - this.minX; }; + + +/** + * @param {goog.math.Coordinate} coordinate Coordinate. + * @return {goog.math.Coordinate} Coordinate. + */ +ol.Rectangle.prototype.normalize = function(coordinate) { + return new goog.math.Coordinate( + (coordinate.x - this.minX) / this.getWidth(), + (coordinate.y - this.minY) / this.getHeight()); +}; diff --git a/src/ol/rectangle_test.js b/src/ol/rectangle_test.js index 3a8c7d4475..56986c68f3 100644 --- a/src/ol/rectangle_test.js +++ b/src/ol/rectangle_test.js @@ -107,3 +107,30 @@ function testSize() { assertEquals(2, size.width); assertEquals(3, size.height); } + + +function testNormalize() { + var rectangle = new ol.Rectangle(0, 1, 2, 3); + var coordinate; + + coordinate = rectangle.normalize(new goog.math.Coordinate(1, 2)); + assertEquals(0.5, coordinate.x); + assertEquals(0.5, coordinate.y); + + coordinate = rectangle.normalize(new goog.math.Coordinate(0, 3)); + assertEquals(0, coordinate.x); + assertEquals(1, coordinate.y); + + coordinate = rectangle.normalize(new goog.math.Coordinate(2, 1)); + assertEquals(1, coordinate.x); + assertEquals(0, coordinate.y); + + coordinate = rectangle.normalize(new goog.math.Coordinate(0, 0)); + assertEquals(0, coordinate.x); + assertEquals(-0.5, coordinate.y); + + coordinate = rectangle.normalize(new goog.math.Coordinate(-1, 1)); + assertEquals(-0.5, coordinate.x); + assertEquals(0, coordinate.y); + +}