Update geom package to use new extent structure

This commit is contained in:
Tim Schaub
2013-09-03 17:40:34 -06:00
parent dbccb8b231
commit 60bf396e25
10 changed files with 35 additions and 45 deletions

View File

@@ -38,22 +38,12 @@ goog.inherits(ol.geom.AbstractCollection, ol.geom.Geometry);
*/ */
ol.geom.AbstractCollection.prototype.getBounds = function() { ol.geom.AbstractCollection.prototype.getBounds = function() {
if (goog.isNull(this.bounds)) { if (goog.isNull(this.bounds)) {
var minX, var bounds = ol.extent.createEmpty();
minY = minX = Infinity, var components = this.components;
maxX, for (var i = 0, ii = components.length; i < ii; ++i) {
maxY = maxX = -Infinity, ol.extent.extend(bounds, components[i].getBounds());
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);
} }
this.bounds = [minX, maxX, minY, maxY]; this.bounds = bounds;
} }
return this.bounds; return this.bounds;
}; };

View File

@@ -126,7 +126,7 @@ ol.geom.LineString.prototype.getBounds = function() {
maxY = y; maxY = y;
} }
} }
this.bounds_ = [minX, maxX, minY, maxY]; this.bounds_ = [[minX, minY], [maxX, maxY]];
} }
return this.bounds_; return this.bounds_;
}; };

View File

@@ -68,7 +68,7 @@ ol.geom.Point.prototype.getBounds = function() {
if (goog.isNull(this.bounds_)) { if (goog.isNull(this.bounds_)) {
var x = this.get(0), var x = this.get(0),
y = this.get(1); y = this.get(1);
this.bounds_ = [x, x, y, y]; this.bounds_ = [[x, y], [x, y]];
} }
return this.bounds_; return this.bounds_;
}; };

View File

@@ -79,10 +79,10 @@ describe('ol.geom.GeometryCollection', function() {
var line = new ol.geom.LineString([[1, 20], [30, 40]]); var line = new ol.geom.LineString([[1, 20], [30, 40]]);
var multi = new ol.geom.GeometryCollection([point, line]); var multi = new ol.geom.GeometryCollection([point, line]);
var bounds = multi.getBounds(); var bounds = multi.getBounds();
expect(bounds[0]).to.be(1); expect(bounds[0][0]).to.be(1);
expect(bounds[1]).to.be(30); expect(bounds[1][0]).to.be(30);
expect(bounds[2]).to.be(2); expect(bounds[0][1]).to.be(2);
expect(bounds[3]).to.be(40); expect(bounds[1][1]).to.be(40);
}); });
}); });

View File

@@ -39,10 +39,10 @@ describe('ol.geom.LineString', function() {
it('returns the bounding extent', function() { it('returns the bounding extent', function() {
var line = new ol.geom.LineString([[10, 20], [20, 30], [30, 40]]); var line = new ol.geom.LineString([[10, 20], [20, 30], [30, 40]]);
var bounds = line.getBounds(); var bounds = line.getBounds();
expect(bounds[0]).to.be(10); expect(bounds[0][0]).to.be(10);
expect(bounds[1]).to.be(30); expect(bounds[1][0]).to.be(30);
expect(bounds[2]).to.be(20); expect(bounds[0][1]).to.be(20);
expect(bounds[3]).to.be(40); expect(bounds[1][1]).to.be(40);
}); });
}); });

View File

@@ -61,10 +61,10 @@ describe('ol.geom.MultiLineString', function() {
[[10, 20], [30, 40]], [[10, 20], [30, 40]],
[[20, 30], [40, 50]]]); [[20, 30], [40, 50]]]);
var bounds = multi.getBounds(); var bounds = multi.getBounds();
expect(bounds[0]).to.be(10); expect(bounds[0][0]).to.be(10);
expect(bounds[1]).to.be(40); expect(bounds[1][0]).to.be(40);
expect(bounds[2]).to.be(20); expect(bounds[0][1]).to.be(20);
expect(bounds[3]).to.be(50); expect(bounds[1][1]).to.be(50);
}); });
}); });

View File

@@ -51,10 +51,10 @@ describe('ol.geom.MultiPoint', function() {
it('returns the bounding extent', function() { it('returns the bounding extent', function() {
var multi = new ol.geom.MultiPoint([[10, 20], [30, 40]]); var multi = new ol.geom.MultiPoint([[10, 20], [30, 40]]);
var bounds = multi.getBounds(); var bounds = multi.getBounds();
expect(bounds[0]).to.be(10); expect(bounds[0][0]).to.be(10);
expect(bounds[1]).to.be(30); expect(bounds[1][0]).to.be(30);
expect(bounds[2]).to.be(20); expect(bounds[0][1]).to.be(20);
expect(bounds[3]).to.be(40); expect(bounds[1][1]).to.be(40);
}); });
}); });

View File

@@ -64,10 +64,10 @@ describe('ol.geom.MultiPolygon', function() {
[outer1, inner1a, inner1b], [outer1, inner1a, inner1b],
[outer2]]); [outer2]]);
var bounds = multi.getBounds(); var bounds = multi.getBounds();
expect(bounds[0]).to.be(0); expect(bounds[0][0]).to.be(0);
expect(bounds[1]).to.be(20); expect(bounds[1][0]).to.be(20);
expect(bounds[2]).to.be(0); expect(bounds[0][1]).to.be(0);
expect(bounds[3]).to.be(50); expect(bounds[1][1]).to.be(50);
}); });
}); });

View File

@@ -48,10 +48,10 @@ describe('ol.geom.Point', function() {
it('returns the bounding extent', function() { it('returns the bounding extent', function() {
var point = new ol.geom.Point([10, 20]); var point = new ol.geom.Point([10, 20]);
var bounds = point.getBounds(); var bounds = point.getBounds();
expect(bounds[0]).to.be(10); expect(bounds[0][0]).to.be(10);
expect(bounds[1]).to.be(10); expect(bounds[1][0]).to.be(10);
expect(bounds[2]).to.be(20); expect(bounds[0][1]).to.be(20);
expect(bounds[3]).to.be(20); expect(bounds[1][1]).to.be(20);
}); });
}); });

View File

@@ -80,10 +80,10 @@ describe('ol.geom.Polygon', function() {
it('returns the bounding extent', function() { it('returns the bounding extent', function() {
var poly = new ol.geom.Polygon([outer, inner1, inner2]); var poly = new ol.geom.Polygon([outer, inner1, inner2]);
var bounds = poly.getBounds(); var bounds = poly.getBounds();
expect(bounds[0]).to.be(0); expect(bounds[0][0]).to.be(0);
expect(bounds[1]).to.be(10); expect(bounds[1][0]).to.be(10);
expect(bounds[2]).to.be(0); expect(bounds[0][1]).to.be(0);
expect(bounds[3]).to.be(10); expect(bounds[1][1]).to.be(10);
}); });
}); });