diff --git a/src/ol/geom2/geom2.js b/src/ol/geom2/geom2.js index a2ce5de71d..9c70888177 100644 --- a/src/ol/geom2/geom2.js +++ b/src/ol/geom2/geom2.js @@ -2,6 +2,7 @@ goog.provide('ol.geom2'); goog.require('goog.asserts'); goog.require('ol.Extent'); +goog.require('ol.extent'); /** @@ -10,21 +11,19 @@ goog.require('ol.Extent'); * @return {ol.Extent} Extent. */ ol.geom2.getExtent = function(buf, dim) { - var extent = new Array(2 * dim); - var extentIndex = 0; - var i; - for (i = 0; i < dim; ++i) { - extent[extentIndex++] = Infinity; - extent[extentIndex++] = -Infinity; + var extent = ol.extent.createEmpty(); // TODO: make this accept a dimension + for (var i = 0; i < dim; ++i) { + extent[0][i] = Infinity; + extent[1][i] = -Infinity; } var bufArr = buf.getArray(); buf.forEachRange(function(start, stop) { - var extentIndex, i, j; + var i, j, value; for (i = start; i < stop; i += dim) { - extentIndex = 0; for (j = 0; j < dim; ++j) { - extent[extentIndex++] = Math.min(extent[2 * j], bufArr[i + j]); - extent[extentIndex++] = Math.max(extent[2 * j + 1], bufArr[i + j]); + value = bufArr[i + j]; + extent[0][j] = Math.min(extent[0][j], value); + extent[1][j] = Math.max(extent[1][j], value); } } }); diff --git a/test/spec/ol/geom2/geom2.test.js b/test/spec/ol/geom2/geom2.test.js index d894bc65af..926fa2a83f 100644 --- a/test/spec/ol/geom2/geom2.test.js +++ b/test/spec/ol/geom2/geom2.test.js @@ -13,22 +13,22 @@ describe('ol.geom2', function() { it('returns the expected extent', function() { var extent = ol.geom2.getExtent(buf, dim); - expect(extent).to.eql([0, 10, 1, 11]); + expect(extent).to.eql([[0, 1], [10, 11]]); }); it('returns the expect extent in three dimensions', function() { var extent = ol.geom2.getExtent(buf, 3); - expect(extent).to.eql([0, 9, 1, 10, 2, 11]); + expect(extent).to.eql([[0, 1, 2], [9, 10, 11]]); }); it('returns the expect extent in four dimensions', function() { var extent = ol.geom2.getExtent(buf, 4); - expect(extent).to.eql([0, 8, 1, 9, 2, 10, 3, 11]); + expect(extent).to.eql([[0, 1, 2, 3], [8, 9, 10, 11]]); }); it('returns the expect extent in six dimensions', function() { var extent = ol.geom2.getExtent(buf, 6); - expect(extent).to.eql([0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11]); + expect(extent).to.eql([[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11]]); }); }); diff --git a/test/spec/ol/geom2/linecollection.test.js b/test/spec/ol/geom2/linecollection.test.js index ab1c6d9354..7175d42fbd 100644 --- a/test/spec/ol/geom2/linecollection.test.js +++ b/test/spec/ol/geom2/linecollection.test.js @@ -189,7 +189,7 @@ describe('ol.geom2.LineStringCollection', function() { describe('getExtent', function() { it('returns the expected extent', function() { - expect(lsc.getExtent()).to.eql([0, 2, 1, 3]); + expect(lsc.getExtent()).to.eql([[0, 1], [2, 3]]); }); }); @@ -268,7 +268,7 @@ describe('ol.geom2.LineStringCollection', function() { describe('getExtent', function() { it('returns the expected value', function() { - expect(lsc.getExtent()).to.eql([0, 8, 1, 9]); + expect(lsc.getExtent()).to.eql([[0, 1], [8, 9]]); }); }); diff --git a/test/spec/ol/geom2/pointcollection.test.js b/test/spec/ol/geom2/pointcollection.test.js index 52d7d33bd5..0d5f89c566 100644 --- a/test/spec/ol/geom2/pointcollection.test.js +++ b/test/spec/ol/geom2/pointcollection.test.js @@ -198,7 +198,7 @@ describe('ol.geom2.PointCollection', function() { it('returns the expected value', function() { var extent = pc.getExtent(); - expect(extent).to.eql([0, 2, 1, 3]); + expect(extent).to.eql([[0, 1], [2, 3]]); }); });