From 60bf396e250c045df2cb730dda3d7368cbc516b9 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Tue, 3 Sep 2013 17:40:34 -0600 Subject: [PATCH] Update geom package to use new extent structure --- src/ol/geom/abstractcollection.js | 20 +++++--------------- src/ol/geom/linestring.js | 2 +- src/ol/geom/point.js | 2 +- test/spec/ol/geom/geometrycollection.test.js | 8 ++++---- test/spec/ol/geom/linestring.test.js | 8 ++++---- test/spec/ol/geom/multilinestring.test.js | 8 ++++---- test/spec/ol/geom/multipoint.test.js | 8 ++++---- test/spec/ol/geom/multipolygon.test.js | 8 ++++---- test/spec/ol/geom/point.test.js | 8 ++++---- test/spec/ol/geom/polygon.test.js | 8 ++++---- 10 files changed, 35 insertions(+), 45 deletions(-) diff --git a/src/ol/geom/abstractcollection.js b/src/ol/geom/abstractcollection.js index 65bbef6dcd..abb4621dab 100644 --- a/src/ol/geom/abstractcollection.js +++ b/src/ol/geom/abstractcollection.js @@ -38,22 +38,12 @@ goog.inherits(ol.geom.AbstractCollection, ol.geom.Geometry); */ ol.geom.AbstractCollection.prototype.getBounds = function() { if (goog.isNull(this.bounds)) { - var minX, - minY = minX = Infinity, - maxX, - maxY = maxX = -Infinity, - components = this.components, - len = components.length, - bounds, i; - - for (i = 0; i < len; ++i) { - bounds = components[i].getBounds(); - minX = Math.min(bounds[0], minX); - maxX = Math.max(bounds[1], maxX); - minY = Math.min(bounds[2], minY); - maxY = Math.max(bounds[3], maxY); + var bounds = ol.extent.createEmpty(); + var components = this.components; + for (var i = 0, ii = components.length; i < ii; ++i) { + ol.extent.extend(bounds, components[i].getBounds()); } - this.bounds = [minX, maxX, minY, maxY]; + this.bounds = bounds; } return this.bounds; }; diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index a24b6fbf50..ffefc66124 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -126,7 +126,7 @@ ol.geom.LineString.prototype.getBounds = function() { maxY = y; } } - this.bounds_ = [minX, maxX, minY, maxY]; + this.bounds_ = [[minX, minY], [maxX, maxY]]; } return this.bounds_; }; diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index f598aec16a..f7837972e1 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -68,7 +68,7 @@ ol.geom.Point.prototype.getBounds = function() { if (goog.isNull(this.bounds_)) { var x = this.get(0), y = this.get(1); - this.bounds_ = [x, x, y, y]; + this.bounds_ = [[x, y], [x, y]]; } return this.bounds_; }; diff --git a/test/spec/ol/geom/geometrycollection.test.js b/test/spec/ol/geom/geometrycollection.test.js index 622cd48943..c486eaa493 100644 --- a/test/spec/ol/geom/geometrycollection.test.js +++ b/test/spec/ol/geom/geometrycollection.test.js @@ -79,10 +79,10 @@ describe('ol.geom.GeometryCollection', function() { var line = new ol.geom.LineString([[1, 20], [30, 40]]); var multi = new ol.geom.GeometryCollection([point, line]); var bounds = multi.getBounds(); - expect(bounds[0]).to.be(1); - expect(bounds[1]).to.be(30); - expect(bounds[2]).to.be(2); - expect(bounds[3]).to.be(40); + expect(bounds[0][0]).to.be(1); + expect(bounds[1][0]).to.be(30); + expect(bounds[0][1]).to.be(2); + expect(bounds[1][1]).to.be(40); }); }); diff --git a/test/spec/ol/geom/linestring.test.js b/test/spec/ol/geom/linestring.test.js index 3367073f6f..58c37a4457 100644 --- a/test/spec/ol/geom/linestring.test.js +++ b/test/spec/ol/geom/linestring.test.js @@ -39,10 +39,10 @@ describe('ol.geom.LineString', function() { it('returns the bounding extent', function() { var line = new ol.geom.LineString([[10, 20], [20, 30], [30, 40]]); var bounds = line.getBounds(); - expect(bounds[0]).to.be(10); - expect(bounds[1]).to.be(30); - expect(bounds[2]).to.be(20); - expect(bounds[3]).to.be(40); + expect(bounds[0][0]).to.be(10); + expect(bounds[1][0]).to.be(30); + expect(bounds[0][1]).to.be(20); + expect(bounds[1][1]).to.be(40); }); }); diff --git a/test/spec/ol/geom/multilinestring.test.js b/test/spec/ol/geom/multilinestring.test.js index e5fbe9ee62..4a0a305cef 100644 --- a/test/spec/ol/geom/multilinestring.test.js +++ b/test/spec/ol/geom/multilinestring.test.js @@ -61,10 +61,10 @@ describe('ol.geom.MultiLineString', function() { [[10, 20], [30, 40]], [[20, 30], [40, 50]]]); var bounds = multi.getBounds(); - expect(bounds[0]).to.be(10); - expect(bounds[1]).to.be(40); - expect(bounds[2]).to.be(20); - expect(bounds[3]).to.be(50); + expect(bounds[0][0]).to.be(10); + expect(bounds[1][0]).to.be(40); + expect(bounds[0][1]).to.be(20); + expect(bounds[1][1]).to.be(50); }); }); diff --git a/test/spec/ol/geom/multipoint.test.js b/test/spec/ol/geom/multipoint.test.js index dae7d1fb21..636ed9bf34 100644 --- a/test/spec/ol/geom/multipoint.test.js +++ b/test/spec/ol/geom/multipoint.test.js @@ -51,10 +51,10 @@ describe('ol.geom.MultiPoint', function() { it('returns the bounding extent', function() { var multi = new ol.geom.MultiPoint([[10, 20], [30, 40]]); var bounds = multi.getBounds(); - expect(bounds[0]).to.be(10); - expect(bounds[1]).to.be(30); - expect(bounds[2]).to.be(20); - expect(bounds[3]).to.be(40); + expect(bounds[0][0]).to.be(10); + expect(bounds[1][0]).to.be(30); + expect(bounds[0][1]).to.be(20); + expect(bounds[1][1]).to.be(40); }); }); diff --git a/test/spec/ol/geom/multipolygon.test.js b/test/spec/ol/geom/multipolygon.test.js index 5c3b76ccf5..bfad33a60b 100644 --- a/test/spec/ol/geom/multipolygon.test.js +++ b/test/spec/ol/geom/multipolygon.test.js @@ -64,10 +64,10 @@ describe('ol.geom.MultiPolygon', function() { [outer1, inner1a, inner1b], [outer2]]); var bounds = multi.getBounds(); - expect(bounds[0]).to.be(0); - expect(bounds[1]).to.be(20); - expect(bounds[2]).to.be(0); - expect(bounds[3]).to.be(50); + expect(bounds[0][0]).to.be(0); + expect(bounds[1][0]).to.be(20); + expect(bounds[0][1]).to.be(0); + expect(bounds[1][1]).to.be(50); }); }); diff --git a/test/spec/ol/geom/point.test.js b/test/spec/ol/geom/point.test.js index 4320c25499..6acf73a6ef 100644 --- a/test/spec/ol/geom/point.test.js +++ b/test/spec/ol/geom/point.test.js @@ -48,10 +48,10 @@ describe('ol.geom.Point', function() { it('returns the bounding extent', function() { var point = new ol.geom.Point([10, 20]); var bounds = point.getBounds(); - expect(bounds[0]).to.be(10); - expect(bounds[1]).to.be(10); - expect(bounds[2]).to.be(20); - expect(bounds[3]).to.be(20); + expect(bounds[0][0]).to.be(10); + expect(bounds[1][0]).to.be(10); + expect(bounds[0][1]).to.be(20); + expect(bounds[1][1]).to.be(20); }); }); diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index 80fbefebec..a07922eefd 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -80,10 +80,10 @@ describe('ol.geom.Polygon', function() { it('returns the bounding extent', function() { var poly = new ol.geom.Polygon([outer, inner1, inner2]); var bounds = poly.getBounds(); - expect(bounds[0]).to.be(0); - expect(bounds[1]).to.be(10); - expect(bounds[2]).to.be(0); - expect(bounds[3]).to.be(10); + expect(bounds[0][0]).to.be(0); + expect(bounds[1][0]).to.be(10); + expect(bounds[0][1]).to.be(0); + expect(bounds[1][1]).to.be(10); }); });