Port ol.renderer.canvas to new extents

This commit is contained in:
Tom Payne
2013-04-16 16:25:27 +02:00
parent aff9f5dbf9
commit 465e24cf4e
3 changed files with 18 additions and 17 deletions

View File

@@ -113,8 +113,8 @@ ol.renderer.canvas.ImageLayer.prototype.renderFrame =
1); 1);
goog.vec.Mat4.translate( goog.vec.Mat4.translate(
transform, transform,
(imageExtent.minX - viewCenter[0]) / imageResolution, (imageExtent[0] - viewCenter[0]) / imageResolution,
(viewCenter[1] - imageExtent.maxY) / imageResolution, (viewCenter[1] - imageExtent[3]) / imageResolution,
0); 0);
this.updateAttributions(frameState.attributions, image.getAttributions()); this.updateAttributions(frameState.attributions, image.getAttributions());

View File

@@ -9,12 +9,12 @@ goog.require('goog.dom');
goog.require('goog.dom.TagName'); goog.require('goog.dom.TagName');
goog.require('goog.object'); goog.require('goog.object');
goog.require('goog.vec.Mat4'); goog.require('goog.vec.Mat4');
goog.require('ol.Extent');
goog.require('ol.Size'); goog.require('ol.Size');
goog.require('ol.Tile'); goog.require('ol.Tile');
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
goog.require('ol.TileRange'); goog.require('ol.TileRange');
goog.require('ol.TileState'); goog.require('ol.TileState');
goog.require('ol.extent');
goog.require('ol.layer.TileLayer'); goog.require('ol.layer.TileLayer');
goog.require('ol.renderer.Map'); goog.require('ol.renderer.Map');
goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.canvas.Layer');
@@ -187,7 +187,7 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
var extent; var extent;
if (tileResolution == view2DState.resolution) { if (tileResolution == view2DState.resolution) {
center = this.snapCenterToPixel(center, tileResolution, frameState.size); center = this.snapCenterToPixel(center, tileResolution, frameState.size);
extent = ol.Extent.getForView2DAndSize( extent = ol.extent.getForView2DAndSize(
center, tileResolution, view2DState.rotation, frameState.size); center, tileResolution, view2DState.rotation, frameState.size);
} else { } else {
extent = frameState.extent; extent = frameState.extent;
@@ -244,8 +244,8 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
Math.floor((canvasTileRangeHeight - tileRange.getHeight()) / 2); Math.floor((canvasTileRangeHeight - tileRange.getHeight()) / 2);
this.renderedCanvasZ_ = z; this.renderedCanvasZ_ = z;
this.renderedCanvasTileRange_ = new ol.TileRange( this.renderedCanvasTileRange_ = new ol.TileRange(
minX, minY, minX, minX + canvasTileRangeWidth - 1,
minX + canvasTileRangeWidth - 1, minY + canvasTileRangeHeight - 1); minY, minY + canvasTileRangeHeight - 1);
this.renderedTiles_ = this.renderedTiles_ =
new Array(canvasTileRangeWidth * canvasTileRangeHeight); new Array(canvasTileRangeWidth * canvasTileRangeHeight);
canvasTileRange = this.renderedCanvasTileRange_; canvasTileRange = this.renderedCanvasTileRange_;
@@ -271,7 +271,7 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
tilesToDrawByZ, getTileIfLoaded); tilesToDrawByZ, getTileIfLoaded);
var allTilesLoaded = true; var allTilesLoaded = true;
var tmpExtent = new ol.Extent(0, 0, 0, 0); var tmpExtent = ol.extent.createEmptyExtent();
var tmpTileRange = new ol.TileRange(0, 0, 0, 0); var tmpTileRange = new ol.TileRange(0, 0, 0, 0);
var childTileRange, fullyLoaded, tile, tileState, x, y; var childTileRange, fullyLoaded, tile, tileState, x, y;
for (x = tileRange.minX; x <= tileRange.maxX; ++x) { for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
@@ -315,8 +315,9 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
var zs = goog.array.map(goog.object.getKeys(tilesToDrawByZ), Number); var zs = goog.array.map(goog.object.getKeys(tilesToDrawByZ), Number);
goog.array.sort(zs); goog.array.sort(zs);
var opaque = tileSource.getOpaque(); var opaque = tileSource.getOpaque();
var origin = tileGrid.getTileCoordExtent(new ol.TileCoord( var origin = ol.extent.getTopLeft(tileGrid.getTileCoordExtent(
z, canvasTileRange.minX, canvasTileRange.maxY), tmpExtent).getTopLeft(); new ol.TileCoord(z, canvasTileRange.minX, canvasTileRange.maxY),
tmpExtent));
var currentZ, index, scale, tileCoordKey, tileExtent, tilesToDraw; var currentZ, index, scale, tileCoordKey, tileExtent, tilesToDraw;
var ix, iy, interimTileExtent, interimTileRange, maxX, maxY; var ix, iy, interimTileExtent, interimTileRange, maxX, maxY;
var height, width; var height, width;
@@ -348,8 +349,8 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
for (tileCoordKey in tilesToDraw) { for (tileCoordKey in tilesToDraw) {
tile = tilesToDraw[tileCoordKey]; tile = tilesToDraw[tileCoordKey];
tileExtent = tileGrid.getTileCoordExtent(tile.tileCoord, tmpExtent); tileExtent = tileGrid.getTileCoordExtent(tile.tileCoord, tmpExtent);
x = (tileExtent.minX - origin[0]) / tileResolution; x = (tileExtent[0] - origin[0]) / tileResolution;
y = (origin[1] - tileExtent.maxY) / tileResolution; y = (origin[1] - tileExtent[3]) / tileResolution;
width = scale * tileSize.width; width = scale * tileSize.width;
height = scale * tileSize.height; height = scale * tileSize.height;
tileState = tile.getState(); tileState = tile.getState();

View File

@@ -6,11 +6,11 @@ goog.require('goog.events');
goog.require('goog.events.EventType'); goog.require('goog.events.EventType');
goog.require('goog.object'); goog.require('goog.object');
goog.require('goog.vec.Mat4'); goog.require('goog.vec.Mat4');
goog.require('ol.Extent');
goog.require('ol.Size'); goog.require('ol.Size');
goog.require('ol.TileCache'); goog.require('ol.TileCache');
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
goog.require('ol.ViewHint'); goog.require('ol.ViewHint');
goog.require('ol.extent');
goog.require('ol.filter.Extent'); goog.require('ol.filter.Extent');
goog.require('ol.filter.Geometry'); goog.require('ol.filter.Geometry');
goog.require('ol.filter.Logical'); goog.require('ol.filter.Logical');
@@ -229,7 +229,7 @@ ol.renderer.canvas.VectorLayer.prototype.renderFrame =
extent, tileResolution), extent, tileResolution),
tileRangeExtent = tileGrid.getTileRangeExtent(z, tileRange), tileRangeExtent = tileGrid.getTileRangeExtent(z, tileRange),
tileSize = tileGrid.getTileSize(z), tileSize = tileGrid.getTileSize(z),
sketchOrigin = tileRangeExtent.getTopLeft(), sketchOrigin = ol.extent.getTopLeft(tileRangeExtent),
transform = this.transform_; transform = this.transform_;
goog.vec.Mat4.makeIdentity(transform); goog.vec.Mat4.makeIdentity(transform);
@@ -324,10 +324,10 @@ ol.renderer.canvas.VectorLayer.prototype.renderFrame =
tilesToRender[key] = tileCoord; tilesToRender[key] = tileCoord;
} else if (!frameState.viewHints[ol.ViewHint.ANIMATING]) { } else if (!frameState.viewHints[ol.ViewHint.ANIMATING]) {
tileExtent = tileGrid.getTileCoordExtent(tileCoord); tileExtent = tileGrid.getTileCoordExtent(tileCoord);
tileExtent.minX -= tileGutter; tileExtent[0] -= tileGutter;
tileExtent.minY -= tileGutter; tileExtent[1] += tileGutter;
tileExtent.maxX += tileGutter; tileExtent[2] -= tileGutter;
tileExtent.maxY += tileGutter; tileExtent[3] += tileGutter;
extentFilter = new ol.filter.Extent(tileExtent); extentFilter = new ol.filter.Extent(tileExtent);
for (i = 0; i < numFilters; ++i) { for (i = 0; i < numFilters; ++i) {
geomFilter = filters[i]; geomFilter = filters[i];