Fix some stupid bugs in ol.TileBounds

This commit is contained in:
Tom Payne
2012-07-22 12:18:56 +02:00
parent 8987dc8607
commit ea623b7be6
3 changed files with 40 additions and 14 deletions

View File

@@ -49,13 +49,23 @@ ol.TileBounds.prototype.clone = function() {
};
/**
* @param {ol.TileCoord} tileCoord Tile coordinate.
* @return {boolean} Contains tile coordinate.
*/
ol.TileBounds.prototype.contains = function(tileCoord) {
return this.minX <= tileCoord.x && tileCoord.x <= this.maxX &&
this.minY <= tileCoord.y && tileCoord.y <= this.maxY;
};
/**
* @param {ol.TileBounds} tileBounds Tile bounds.
* @return {boolean} Contains.
*/
ol.TileBounds.prototype.contains = function(tileBounds) {
ol.TileBounds.prototype.containsTileBounds = function(tileBounds) {
return this.minX <= tileBounds.minX && tileBounds.maxX <= this.maxX &&
this.minY <= tileBounds.minY && tileBounds.minY <= this.minY;
this.minY <= tileBounds.minY && tileBounds.minY <= this.maxY;
};

View File

@@ -14,17 +14,33 @@ function testClone() {
}
function testContainsPositive() {
var tileBounds = new ol.TileBounds(0, 0, 2, 2);
var tileCoord = new ol.TileCoord(3, 1, 1);
assertTrue(tileBounds.contains(tileCoord));
}
function testContainsNegative() {
var tileBounds = new ol.TileBounds(0, 0, 2, 2);
var tileCoord = new ol.TileCoord(3, 1, 3);
assertFalse(tileBounds.contains(tileCoord));
function testContains() {
var tileBounds = new ol.TileBounds(1, 1, 3, 3);
assertFalse(tileBounds.contains(new ol.TileCoord(0, 0, 0)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 0, 1)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 0, 2)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 0, 3)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 0, 4)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 1, 0)));
assertTrue(tileBounds.contains(new ol.TileCoord(0, 1, 1)));
assertTrue(tileBounds.contains(new ol.TileCoord(0, 1, 2)));
assertTrue(tileBounds.contains(new ol.TileCoord(0, 1, 3)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 1, 4)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 2, 0)));
assertTrue(tileBounds.contains(new ol.TileCoord(0, 2, 1)));
assertTrue(tileBounds.contains(new ol.TileCoord(0, 2, 2)));
assertTrue(tileBounds.contains(new ol.TileCoord(0, 2, 3)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 2, 4)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 3, 0)));
assertTrue(tileBounds.contains(new ol.TileCoord(0, 3, 1)));
assertTrue(tileBounds.contains(new ol.TileCoord(0, 3, 2)));
assertTrue(tileBounds.contains(new ol.TileCoord(0, 3, 3)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 3, 4)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 4, 0)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 4, 1)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 4, 2)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 4, 3)));
assertFalse(tileBounds.contains(new ol.TileCoord(0, 4, 4)));
}

View File

@@ -291,7 +291,7 @@ ol.webgl.TileLayerRenderer.prototype.render = function() {
tileBounds.minY,
tileBounds.minX + nTilesX - 1,
tileBounds.minY + nTilesY - 1);
goog.asserts.assert(framebufferTileBounds.contains(tileBounds));
goog.asserts.assert(framebufferTileBounds.containsTileBounds(tileBounds));
this.bindFramebuffer_(framebufferDimension);
gl.viewport(0, 0, framebufferDimension, framebufferDimension);