Don't derive ol.TileRange from ol.Rectangle

This commit is contained in:
Tom Payne
2013-04-16 10:09:37 +02:00
parent 669d47e8d2
commit 1ad7765f2f
5 changed files with 94 additions and 49 deletions
+7 -7
View File
@@ -21,8 +21,8 @@ describe('ol.tilegrid.XYZ', function() {
function(z, tileRange) {
zs.push(z);
tileRanges.push(new ol.TileRange(
tileRange.minX, tileRange.minY,
tileRange.maxX, tileRange.maxY));
tileRange.minX, tileRange.maxX,
tileRange.minY, tileRange.maxY));
return false;
});
@@ -31,32 +31,32 @@ describe('ol.tilegrid.XYZ', function() {
expect(zs[0]).to.eql(4);
expect(tileRanges[0].minX).to.eql(5);
expect(tileRanges[0].minY).to.eql(10);
expect(tileRanges[0].maxX).to.eql(5);
expect(tileRanges[0].minY).to.eql(10);
expect(tileRanges[0].maxY).to.eql(10);
expect(zs[1]).to.eql(3);
expect(tileRanges[1].minX).to.eql(2);
expect(tileRanges[1].minY).to.eql(5);
expect(tileRanges[1].maxX).to.eql(2);
expect(tileRanges[1].minY).to.eql(5);
expect(tileRanges[1].maxY).to.eql(5);
expect(zs[2]).to.eql(2);
expect(tileRanges[2].minX).to.eql(1);
expect(tileRanges[2].minY).to.eql(2);
expect(tileRanges[2].maxX).to.eql(1);
expect(tileRanges[2].minY).to.eql(2);
expect(tileRanges[2].maxY).to.eql(2);
expect(zs[3]).to.eql(1);
expect(tileRanges[3].minX).to.eql(0);
expect(tileRanges[3].minY).to.eql(1);
expect(tileRanges[3].maxX).to.eql(0);
expect(tileRanges[3].minY).to.eql(1);
expect(tileRanges[3].maxY).to.eql(1);
expect(zs[4]).to.eql(0);
expect(tileRanges[4].minX).to.eql(0);
expect(tileRanges[4].minY).to.eql(0);
expect(tileRanges[4].maxX).to.eql(0);
expect(tileRanges[4].minY).to.eql(0);
expect(tileRanges[4].maxY).to.eql(0);
});
+22 -22
View File
@@ -4,12 +4,12 @@ describe('ol.TileRange', function() {
describe('constructor', function() {
it('creates a range', function() {
var range = new ol.TileRange(1, 2, 3, 4);
var range = new ol.TileRange(1, 3, 2, 4);
expect(range).to.be.a(ol.TileRange);
});
it('can represent a range of one tile', function() {
var range = new ol.TileRange(2, 3, 2, 3);
var range = new ol.TileRange(2, 2, 3, 3);
expect(range).to.be.a(ol.TileRange);
expect(range.getHeight()).to.be(1);
expect(range.getWidth()).to.be(1);
@@ -18,7 +18,7 @@ describe('ol.TileRange', function() {
describe('contains', function() {
it('returns the expected value', function() {
var tileRange = new ol.TileRange(1, 1, 3, 3);
var tileRange = new ol.TileRange(1, 3, 1, 3);
expect(tileRange.contains(new ol.TileCoord(0, 0, 0))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 0, 1))).to.not.be();
expect(tileRange.contains(new ol.TileCoord(0, 0, 2))).to.not.be();
@@ -53,8 +53,8 @@ describe('ol.TileRange', function() {
new ol.TileCoord(3, 1, 3),
new ol.TileCoord(3, 2, 0));
expect(tileRange.minX).to.eql(1);
expect(tileRange.minY).to.eql(0);
expect(tileRange.maxX).to.eql(2);
expect(tileRange.minY).to.eql(0);
expect(tileRange.maxY).to.eql(3);
});
@@ -69,12 +69,12 @@ describe('ol.TileRange', function() {
describe('equals', function() {
it('determines equivalence of two ranges', function() {
var one = new ol.TileRange(0, 1, 2, 4);
var same = new ol.TileRange(0, 1, 2, 4);
var diff1 = new ol.TileRange(0, 1, 2, 5);
var diff2 = new ol.TileRange(0, 1, 3, 4);
var one = new ol.TileRange(0, 2, 1, 4);
var same = new ol.TileRange(0, 2, 1, 4);
var diff1 = new ol.TileRange(0, 2, 1, 5);
var diff2 = new ol.TileRange(0, 3, 1, 4);
var diff3 = new ol.TileRange(0, 2, 2, 4);
var diff4 = new ol.TileRange(1, 1, 2, 4);
var diff4 = new ol.TileRange(1, 2, 1, 4);
expect(one.equals(same)).to.be(true);
expect(one.equals(diff1)).to.be(false);
expect(one.equals(diff2)).to.be(false);
@@ -85,13 +85,13 @@ describe('ol.TileRange', function() {
describe('extent', function() {
it('modifies range so it includes another', function() {
var one = new ol.TileRange(0, 1, 2, 4);
var other = new ol.TileRange(-1, 10, -3, 12);
var one = new ol.TileRange(0, 2, 1, 4);
var other = new ol.TileRange(-1, -3, 10, 12);
one.extend(other);
expect(one.minX).to.be(-1);
expect(one.minY).to.be(1);
expect(one.maxX).to.be(2);
expect(one.minY).to.be(1);
expect(one.maxY).to.be(12);
});
@@ -99,7 +99,7 @@ describe('ol.TileRange', function() {
describe('getSize', function() {
it('returns the expected size', function() {
var tileRange = new ol.TileRange(0, 1, 2, 4);
var tileRange = new ol.TileRange(0, 2, 1, 4);
var size = tileRange.getSize();
expect(size.width).to.eql(3);
expect(size.height).to.eql(4);
@@ -108,20 +108,20 @@ describe('ol.TileRange', function() {
describe('intersects', function() {
it('determines if two ranges overlap', function() {
var one = new ol.TileRange(0, 1, 2, 4);
var overlapsRight = new ol.TileRange(2, 1, 4, 4);
var overlapsLeft = new ol.TileRange(-3, 1, 0, 4);
var overlapsTop = new ol.TileRange(0, 4, 2, 5);
var overlapsBottom = new ol.TileRange(0, -3, 2, 1);
var one = new ol.TileRange(0, 2, 1, 4);
var overlapsRight = new ol.TileRange(2, 4, 1, 4);
var overlapsLeft = new ol.TileRange(-3, 0, 1, 4);
var overlapsTop = new ol.TileRange(0, 2, 4, 5);
var overlapsBottom = new ol.TileRange(0, 2, -3, 1);
expect(one.intersects(overlapsLeft)).to.be(true);
expect(one.intersects(overlapsRight)).to.be(true);
expect(one.intersects(overlapsTop)).to.be(true);
expect(one.intersects(overlapsBottom)).to.be(true);
var right = new ol.TileRange(3, 1, 5, 4);
var left = new ol.TileRange(-3, 1, -1, 4);
var above = new ol.TileRange(0, 5, 2, 6);
var below = new ol.TileRange(0, -3, 2, 0);
var right = new ol.TileRange(3, 5, 1, 4);
var left = new ol.TileRange(-3, -1, 1, 4);
var above = new ol.TileRange(0, 2, 5, 6);
var below = new ol.TileRange(0, 2, -3, 0);
expect(one.intersects(right)).to.be(false);
expect(one.intersects(left)).to.be(false);
expect(one.intersects(above)).to.be(false);