Geom2 package working with new extent structure
This commit is contained in:
@@ -2,6 +2,7 @@ goog.provide('ol.geom2');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('ol.Extent');
|
goog.require('ol.Extent');
|
||||||
|
goog.require('ol.extent');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -10,21 +11,19 @@ goog.require('ol.Extent');
|
|||||||
* @return {ol.Extent} Extent.
|
* @return {ol.Extent} Extent.
|
||||||
*/
|
*/
|
||||||
ol.geom2.getExtent = function(buf, dim) {
|
ol.geom2.getExtent = function(buf, dim) {
|
||||||
var extent = new Array(2 * dim);
|
var extent = ol.extent.createEmpty(); // TODO: make this accept a dimension
|
||||||
var extentIndex = 0;
|
for (var i = 0; i < dim; ++i) {
|
||||||
var i;
|
extent[0][i] = Infinity;
|
||||||
for (i = 0; i < dim; ++i) {
|
extent[1][i] = -Infinity;
|
||||||
extent[extentIndex++] = Infinity;
|
|
||||||
extent[extentIndex++] = -Infinity;
|
|
||||||
}
|
}
|
||||||
var bufArr = buf.getArray();
|
var bufArr = buf.getArray();
|
||||||
buf.forEachRange(function(start, stop) {
|
buf.forEachRange(function(start, stop) {
|
||||||
var extentIndex, i, j;
|
var i, j, value;
|
||||||
for (i = start; i < stop; i += dim) {
|
for (i = start; i < stop; i += dim) {
|
||||||
extentIndex = 0;
|
|
||||||
for (j = 0; j < dim; ++j) {
|
for (j = 0; j < dim; ++j) {
|
||||||
extent[extentIndex++] = Math.min(extent[2 * j], bufArr[i + j]);
|
value = bufArr[i + j];
|
||||||
extent[extentIndex++] = Math.max(extent[2 * j + 1], bufArr[i + j]);
|
extent[0][j] = Math.min(extent[0][j], value);
|
||||||
|
extent[1][j] = Math.max(extent[1][j], value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -13,22 +13,22 @@ describe('ol.geom2', function() {
|
|||||||
|
|
||||||
it('returns the expected extent', function() {
|
it('returns the expected extent', function() {
|
||||||
var extent = ol.geom2.getExtent(buf, dim);
|
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() {
|
it('returns the expect extent in three dimensions', function() {
|
||||||
var extent = ol.geom2.getExtent(buf, 3);
|
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() {
|
it('returns the expect extent in four dimensions', function() {
|
||||||
var extent = ol.geom2.getExtent(buf, 4);
|
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() {
|
it('returns the expect extent in six dimensions', function() {
|
||||||
var extent = ol.geom2.getExtent(buf, 6);
|
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]]);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ describe('ol.geom2.LineStringCollection', function() {
|
|||||||
describe('getExtent', function() {
|
describe('getExtent', function() {
|
||||||
|
|
||||||
it('returns the expected extent', 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() {
|
describe('getExtent', function() {
|
||||||
|
|
||||||
it('returns the expected value', 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]]);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ describe('ol.geom2.PointCollection', function() {
|
|||||||
|
|
||||||
it('returns the expected value', function() {
|
it('returns the expected value', function() {
|
||||||
var extent = pc.getExtent();
|
var extent = pc.getExtent();
|
||||||
expect(extent).to.eql([0, 2, 1, 3]);
|
expect(extent).to.eql([[0, 1], [2, 3]]);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user