Refactor to a more convenient internal API

This commit is contained in:
Andreas Hocevar
2016-06-22 23:41:00 +02:00
parent cf7ff841a7
commit 6b4ee42c90
34 changed files with 497 additions and 554 deletions

View File

@@ -2,7 +2,7 @@ goog.provide('ol.renderer.canvas.VectorTileLayer');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.matrix');
goog.require('ol.transform');
goog.require('ol.Feature');
goog.require('ol.VectorTile');
goog.require('ol.array');
@@ -56,9 +56,9 @@ ol.renderer.canvas.VectorTileLayer = function(layer) {
/**
* @private
* @type {ol.Matrix}
* @type {ol.Transform}
*/
this.tmpTransform_ = ol.matrix.create();
this.tmpTransform_ = ol.transform.create();
// Use lower resolution for pure vector rendering. Closest resolution otherwise.
this.zDirection =
@@ -147,11 +147,12 @@ ol.renderer.canvas.VectorTileLayer.prototype.renderTileReplays_ = function(
if (pixelSpace) {
origin = ol.extent.getTopLeft(tileExtent);
tileTransform = ol.matrix.makeTransform(this.tmpTransform_,
offsetX, offsetY,
pixelScale * tilePixelResolution,
pixelScale * tilePixelResolution,
rotation,
tileTransform = ol.transform.reset(this.tmpTransform_);
ol.transform.translate(tileTransform, offsetX, offsetY);
ol.transform.scale(tileTransform,
pixelScale * tilePixelResolution, pixelScale * tilePixelResolution);
ol.transform.rotate(tileTransform, rotation);
ol.transform.translate(tileTransform,
(origin[0] - center[0]) / tilePixelResolution,
(center[1] - origin[1]) / tilePixelResolution);
} else {
@@ -425,20 +426,16 @@ ol.renderer.canvas.VectorTileLayer.prototype.renderTileImage_ = function(
var tilePixelResolution = tileResolution / tilePixelRatio;
var tileExtent = tileGrid.getTileCoordExtent(
tile.getTileCoord(), this.tmpExtent);
var tileTransform;
var tileTransform = ol.transform.reset(this.tmpTransform_);
if (pixelSpace) {
tileTransform = ol.matrix.makeTransform(this.tmpTransform_,
0, 0,
pixelScale * tilePixelResolution, pixelScale * tilePixelResolution,
0,
ol.transform.scale(tileTransform,
pixelScale * tilePixelResolution, pixelScale * tilePixelResolution);
ol.transform.translate(tileTransform,
-tileSize[0] * tilePixelRatio / 2, -tileSize[1] * tilePixelRatio / 2);
} else {
var tileCenter = ol.extent.getCenter(tileExtent);
tileTransform = ol.matrix.makeTransform(this.tmpTransform_,
0, 0,
pixelScale, -pixelScale,
0,
-tileCenter[0], -tileCenter[1]);
ol.transform.scale(tileTransform, pixelScale, -pixelScale);
ol.transform.translate(tileTransform, -tileCenter[0], -tileCenter[1]);
}
replayState.replayGroup.replay(tileContext, pixelRatio,