Get rid of ol.render.IReplayGroup interface

This commit is contained in:
Tim Schaub
2016-08-08 00:32:29 -06:00
parent ddbe0516d2
commit 3a1bbc4248
10 changed files with 93 additions and 83 deletions

View File

@@ -8,7 +8,6 @@ goog.provide('ol.render.canvas.PolygonReplay');
goog.provide('ol.render.canvas.ReplayGroup'); goog.provide('ol.render.canvas.ReplayGroup');
goog.provide('ol.render.canvas.TextReplay'); goog.provide('ol.render.canvas.TextReplay');
goog.require('ol.transform');
goog.require('ol'); goog.require('ol');
goog.require('ol.array'); goog.require('ol.array');
goog.require('ol.color'); goog.require('ol.color');
@@ -20,8 +19,11 @@ goog.require('ol.geom.flat.simplify');
goog.require('ol.geom.flat.transform'); goog.require('ol.geom.flat.transform');
goog.require('ol.has'); goog.require('ol.has');
goog.require('ol.obj'); goog.require('ol.obj');
goog.require('ol.render.ReplayGroup');
goog.require('ol.render.VectorContext'); goog.require('ol.render.VectorContext');
goog.require('ol.render.canvas'); goog.require('ol.render.canvas');
goog.require('ol.render.replay');
goog.require('ol.transform');
/** /**
@@ -1805,15 +1807,15 @@ ol.render.canvas.TextReplay.prototype.setTextStyle = function(textStyle) {
/** /**
* @constructor * @constructor
* @implements {ol.render.IReplayGroup} * @extends {ol.render.ReplayGroup}
* @param {number} tolerance Tolerance. * @param {number} tolerance Tolerance.
* @param {ol.Extent} maxExtent Max extent. * @param {ol.Extent} maxExtent Max extent.
* @param {number} resolution Resolution. * @param {number} resolution Resolution.
* @param {number=} opt_renderBuffer Optional rendering buffer. * @param {number=} opt_renderBuffer Optional rendering buffer.
* @struct * @struct
*/ */
ol.render.canvas.ReplayGroup = function( ol.render.canvas.ReplayGroup = function(tolerance, maxExtent, resolution, opt_renderBuffer) {
tolerance, maxExtent, resolution, opt_renderBuffer) { ol.render.ReplayGroup.call(this);
/** /**
* @private * @private
@@ -1859,6 +1861,7 @@ ol.render.canvas.ReplayGroup = function(
this.hitDetectionTransform_ = ol.transform.create(); this.hitDetectionTransform_ = ol.transform.create();
}; };
ol.inherits(ol.render.canvas.ReplayGroup, ol.render.ReplayGroup);
/** /**
@@ -1968,7 +1971,7 @@ ol.render.canvas.ReplayGroup.prototype.isEmpty = function() {
* @param {Object.<string, boolean>} skippedFeaturesHash Ids of features * @param {Object.<string, boolean>} skippedFeaturesHash Ids of features
* to skip. * to skip.
* @param {Array.<ol.render.ReplayType>=} opt_replayTypes Ordered replay types * @param {Array.<ol.render.ReplayType>=} opt_replayTypes Ordered replay types
* to replay. Default is {@link ol.render.REPLAY_ORDER} * to replay. Default is {@link ol.render.replay.ORDER}
*/ */
ol.render.canvas.ReplayGroup.prototype.replay = function(context, pixelRatio, ol.render.canvas.ReplayGroup.prototype.replay = function(context, pixelRatio,
transform, viewRotation, skippedFeaturesHash, opt_replayTypes) { transform, viewRotation, skippedFeaturesHash, opt_replayTypes) {
@@ -1996,7 +1999,7 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(context, pixelRatio,
context.closePath(); context.closePath();
context.clip(); context.clip();
var replayTypes = opt_replayTypes ? opt_replayTypes : ol.render.REPLAY_ORDER; var replayTypes = opt_replayTypes ? opt_replayTypes : ol.render.replay.ORDER;
var i, ii, j, jj, replays, replay; var i, ii, j, jj, replays, replay;
for (i = 0, ii = zs.length; i < ii; ++i) { for (i = 0, ii = zs.length; i < ii; ++i) {
replays = this.replaysByZIndex_[zs[i].toString()]; replays = this.replaysByZIndex_[zs[i].toString()];
@@ -2039,8 +2042,8 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function(
var i, ii, j, replays, replay, result; var i, ii, j, replays, replay, result;
for (i = 0, ii = zs.length; i < ii; ++i) { for (i = 0, ii = zs.length; i < ii; ++i) {
replays = this.replaysByZIndex_[zs[i].toString()]; replays = this.replaysByZIndex_[zs[i].toString()];
for (j = ol.render.REPLAY_ORDER.length - 1; j >= 0; --j) { for (j = ol.render.replay.ORDER.length - 1; j >= 0; --j) {
replay = replays[ol.render.REPLAY_ORDER[j]]; replay = replays[ol.render.replay.ORDER[j]];
if (replay !== undefined) { if (replay !== undefined) {
result = replay.replayHitDetection(context, transform, viewRotation, result = replay.replayHitDetection(context, transform, viewRotation,
skippedFeaturesHash, featureCallback, opt_hitExtent); skippedFeaturesHash, featureCallback, opt_hitExtent);

View File

@@ -1,52 +0,0 @@
goog.provide('ol.render.IReplayGroup');
/**
* @enum {string}
*/
ol.render.ReplayType = {
IMAGE: 'Image',
LINE_STRING: 'LineString',
POLYGON: 'Polygon',
TEXT: 'Text'
};
/**
* @const
* @type {Array.<ol.render.ReplayType>}
*/
ol.render.REPLAY_ORDER = [
ol.render.ReplayType.POLYGON,
ol.render.ReplayType.LINE_STRING,
ol.render.ReplayType.IMAGE,
ol.render.ReplayType.TEXT
];
/**
* @interface
*/
ol.render.IReplayGroup = function() {
};
/* eslint-disable valid-jsdoc */
// TODO: enable valid-jsdoc for @interface methods when this issue is resolved
// https://github.com/eslint/eslint/issues/4887
/**
* @param {number|undefined} zIndex Z index.
* @param {ol.render.ReplayType} replayType Replay type.
* @return {ol.render.VectorContext} Replay.
*/
ol.render.IReplayGroup.prototype.getReplay = function(zIndex, replayType) {
};
/**
* @return {boolean} Is empty.
*/
ol.render.IReplayGroup.prototype.isEmpty = function() {
};

15
src/ol/render/replay.js Normal file
View File

@@ -0,0 +1,15 @@
goog.provide('ol.render.replay');
goog.require('ol.render.ReplayType');
/**
* @const
* @type {Array.<ol.render.ReplayType>}
*/
ol.render.replay.ORDER = [
ol.render.ReplayType.POLYGON,
ol.render.ReplayType.LINE_STRING,
ol.render.ReplayType.IMAGE,
ol.render.ReplayType.TEXT
];

View File

@@ -0,0 +1,24 @@
goog.provide('ol.render.ReplayGroup');
/**
* Base class for replay groups.
* @constructor
*/
ol.render.ReplayGroup = function() {};
/**
* @abstract
* @param {number|undefined} zIndex Z index.
* @param {ol.render.ReplayType} replayType Replay type.
* @return {ol.render.VectorContext} Replay.
*/
ol.render.ReplayGroup.prototype.getReplay = function(zIndex, replayType) {};
/**
* @abstract
* @return {boolean} Is empty.
*/
ol.render.ReplayGroup.prototype.isEmpty = function() {};

View File

@@ -0,0 +1,12 @@
goog.provide('ol.render.ReplayType');
/**
* @enum {string}
*/
ol.render.ReplayType = {
IMAGE: 'Image',
LINE_STRING: 'LineString',
POLYGON: 'Polygon',
TEXT: 'Text'
};

View File

@@ -1,11 +1,13 @@
goog.provide('ol.render.webgl.ImageReplay'); goog.provide('ol.render.webgl.ImageReplay');
goog.provide('ol.render.webgl.ReplayGroup'); goog.provide('ol.render.webgl.ReplayGroup');
goog.require('ol.transform');
goog.require('ol.extent'); goog.require('ol.extent');
goog.require('ol.obj'); goog.require('ol.obj');
goog.require('ol.render.ReplayGroup');
goog.require('ol.render.VectorContext'); goog.require('ol.render.VectorContext');
goog.require('ol.render.replay');
goog.require('ol.render.webgl.imagereplay.defaultshader'); goog.require('ol.render.webgl.imagereplay.defaultshader');
goog.require('ol.transform');
goog.require('ol.vec.Mat4'); goog.require('ol.vec.Mat4');
goog.require('ol.webgl'); goog.require('ol.webgl');
goog.require('ol.webgl.Buffer'); goog.require('ol.webgl.Buffer');
@@ -906,14 +908,14 @@ ol.render.webgl.ImageReplay.prototype.setImageStyle = function(imageStyle) {
/** /**
* @constructor * @constructor
* @implements {ol.render.IReplayGroup} * @extends {ol.render.ReplayGroup}
* @param {number} tolerance Tolerance. * @param {number} tolerance Tolerance.
* @param {ol.Extent} maxExtent Max extent. * @param {ol.Extent} maxExtent Max extent.
* @param {number=} opt_renderBuffer Render buffer. * @param {number=} opt_renderBuffer Render buffer.
* @struct * @struct
*/ */
ol.render.webgl.ReplayGroup = function( ol.render.webgl.ReplayGroup = function(tolerance, maxExtent, opt_renderBuffer) {
tolerance, maxExtent, opt_renderBuffer) { ol.render.ReplayGroup.call(this);
/** /**
* @type {ol.Extent} * @type {ol.Extent}
@@ -941,6 +943,7 @@ ol.render.webgl.ReplayGroup = function(
this.replays_ = {}; this.replays_ = {};
}; };
ol.inherits(ol.render.webgl.ReplayGroup, ol.render.ReplayGroup);
/** /**
@@ -1013,8 +1016,8 @@ ol.render.webgl.ReplayGroup.prototype.replay = function(context,
center, resolution, rotation, size, pixelRatio, center, resolution, rotation, size, pixelRatio,
opacity, skippedFeaturesHash) { opacity, skippedFeaturesHash) {
var i, ii, replay; var i, ii, replay;
for (i = 0, ii = ol.render.REPLAY_ORDER.length; i < ii; ++i) { for (i = 0, ii = ol.render.replay.ORDER.length; i < ii; ++i) {
replay = this.replays_[ol.render.REPLAY_ORDER[i]]; replay = this.replays_[ol.render.replay.ORDER[i]];
if (replay !== undefined) { if (replay !== undefined) {
replay.replay(context, replay.replay(context,
center, resolution, rotation, size, pixelRatio, center, resolution, rotation, size, pixelRatio,
@@ -1047,8 +1050,8 @@ ol.render.webgl.ReplayGroup.prototype.replayHitDetection_ = function(context,
center, resolution, rotation, size, pixelRatio, opacity, center, resolution, rotation, size, pixelRatio, opacity,
skippedFeaturesHash, featureCallback, oneByOne, opt_hitExtent) { skippedFeaturesHash, featureCallback, oneByOne, opt_hitExtent) {
var i, replay, result; var i, replay, result;
for (i = ol.render.REPLAY_ORDER.length - 1; i >= 0; --i) { for (i = ol.render.replay.ORDER.length - 1; i >= 0; --i) {
replay = this.replays_[ol.render.REPLAY_ORDER[i]]; replay = this.replays_[ol.render.replay.ORDER[i]];
if (replay !== undefined) { if (replay !== undefined) {
result = replay.replay(context, result = replay.replay(context,
center, resolution, rotation, size, pixelRatio, opacity, center, resolution, rotation, size, pixelRatio, opacity,

View File

@@ -1,6 +1,8 @@
goog.provide('ol.render.webgl.Immediate'); goog.provide('ol.render.webgl.Immediate');
goog.require('ol.extent'); goog.require('ol.extent');
goog.require('ol.geom.GeometryType'); goog.require('ol.geom.GeometryType');
goog.require('ol.render.ReplayType');
goog.require('ol.render.VectorContext'); goog.require('ol.render.VectorContext');
goog.require('ol.render.webgl.ReplayGroup'); goog.require('ol.render.webgl.ReplayGroup');

View File

@@ -1,16 +1,18 @@
goog.provide('ol.renderer.canvas.VectorTileLayer'); goog.provide('ol.renderer.canvas.VectorTileLayer');
goog.require('ol.transform');
goog.require('ol.array'); goog.require('ol.array');
goog.require('ol.extent'); goog.require('ol.extent');
goog.require('ol.proj'); goog.require('ol.proj');
goog.require('ol.proj.Units'); goog.require('ol.proj.Units');
goog.require('ol.render.EventType'); goog.require('ol.render.EventType');
goog.require('ol.render.ReplayType');
goog.require('ol.render.canvas'); goog.require('ol.render.canvas');
goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.render.canvas.ReplayGroup');
goog.require('ol.render.replay');
goog.require('ol.renderer.canvas.TileLayer'); goog.require('ol.renderer.canvas.TileLayer');
goog.require('ol.renderer.vector'); goog.require('ol.renderer.vector');
goog.require('ol.size'); goog.require('ol.size');
goog.require('ol.transform');
/** /**
@@ -18,7 +20,7 @@ goog.require('ol.size');
* @type {!Object.<string, Array.<ol.render.ReplayType>>} * @type {!Object.<string, Array.<ol.render.ReplayType>>}
*/ */
ol.renderer.canvas.IMAGE_REPLAYS = { ol.renderer.canvas.IMAGE_REPLAYS = {
'image': ol.render.REPLAY_ORDER, 'image': ol.render.replay.ORDER,
'hybrid': [ol.render.ReplayType.POLYGON, ol.render.ReplayType.LINE_STRING] 'hybrid': [ol.render.ReplayType.POLYGON, ol.render.ReplayType.LINE_STRING]
}; };
@@ -29,7 +31,7 @@ ol.renderer.canvas.IMAGE_REPLAYS = {
*/ */
ol.renderer.canvas.VECTOR_REPLAYS = { ol.renderer.canvas.VECTOR_REPLAYS = {
'hybrid': [ol.render.ReplayType.IMAGE, ol.render.ReplayType.TEXT], 'hybrid': [ol.render.ReplayType.IMAGE, ol.render.ReplayType.TEXT],
'vector': ol.render.REPLAY_ORDER 'vector': ol.render.replay.ORDER
}; };

View File

@@ -1,5 +1,6 @@
goog.provide('ol.renderer.vector'); goog.provide('ol.renderer.vector');
goog.require('ol.render.ReplayType');
goog.require('ol.style.ImageState'); goog.require('ol.style.ImageState');
@@ -35,7 +36,7 @@ ol.renderer.vector.getTolerance = function(resolution, pixelRatio) {
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.geom.Circle} geometry Geometry. * @param {ol.geom.Circle} geometry Geometry.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.
@@ -61,7 +62,7 @@ ol.renderer.vector.renderCircleGeometry_ = function(replayGroup, geometry, style
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.Feature|ol.render.Feature} feature Feature. * @param {ol.Feature|ol.render.Feature} feature Feature.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {number} squaredTolerance Squared tolerance. * @param {number} squaredTolerance Squared tolerance.
@@ -98,7 +99,7 @@ ol.renderer.vector.renderFeature = function(
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.Feature|ol.render.Feature} feature Feature. * @param {ol.Feature|ol.render.Feature} feature Feature.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {number} squaredTolerance Squared tolerance. * @param {number} squaredTolerance Squared tolerance.
@@ -118,7 +119,7 @@ ol.renderer.vector.renderFeature_ = function(
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.geom.GeometryCollection} geometry Geometry. * @param {ol.geom.GeometryCollection} geometry Geometry.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.
@@ -136,7 +137,7 @@ ol.renderer.vector.renderGeometryCollectionGeometry_ = function(replayGroup, geo
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.geom.LineString|ol.render.Feature} geometry Geometry. * @param {ol.geom.LineString|ol.render.Feature} geometry Geometry.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {ol.Feature|ol.render.Feature} feature Feature. * @param {ol.Feature|ol.render.Feature} feature Feature.
@@ -161,7 +162,7 @@ ol.renderer.vector.renderLineStringGeometry_ = function(replayGroup, geometry, s
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.geom.MultiLineString|ol.render.Feature} geometry Geometry. * @param {ol.geom.MultiLineString|ol.render.Feature} geometry Geometry.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {ol.Feature|ol.render.Feature} feature Feature. * @param {ol.Feature|ol.render.Feature} feature Feature.
@@ -188,7 +189,7 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = function(replayGroup, geomet
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.geom.MultiPolygon} geometry Geometry. * @param {ol.geom.MultiPolygon} geometry Geometry.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.
@@ -216,7 +217,7 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = function(replayGroup, geometry,
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.geom.Point|ol.render.Feature} geometry Geometry. * @param {ol.geom.Point|ol.render.Feature} geometry Geometry.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {ol.Feature|ol.render.Feature} feature Feature. * @param {ol.Feature|ol.render.Feature} feature Feature.
@@ -245,7 +246,7 @@ ol.renderer.vector.renderPointGeometry_ = function(replayGroup, geometry, style,
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.geom.MultiPoint|ol.render.Feature} geometry Geometry. * @param {ol.geom.MultiPoint|ol.render.Feature} geometry Geometry.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {ol.Feature|ol.render.Feature} feature Feature. * @param {ol.Feature|ol.render.Feature} feature Feature.
@@ -275,7 +276,7 @@ ol.renderer.vector.renderMultiPointGeometry_ = function(replayGroup, geometry, s
/** /**
* @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.render.ReplayGroup} replayGroup Replay group.
* @param {ol.geom.Polygon|ol.render.Feature} geometry Geometry. * @param {ol.geom.Polygon|ol.render.Feature} geometry Geometry.
* @param {ol.style.Style} style Style. * @param {ol.style.Style} style Style.
* @param {ol.Feature|ol.render.Feature} feature Feature. * @param {ol.Feature|ol.render.Feature} feature Feature.
@@ -305,7 +306,7 @@ ol.renderer.vector.renderPolygonGeometry_ = function(replayGroup, geometry, styl
* @const * @const
* @private * @private
* @type {Object.<ol.geom.GeometryType, * @type {Object.<ol.geom.GeometryType,
* function(ol.render.IReplayGroup, ol.geom.Geometry, * function(ol.render.ReplayGroup, ol.geom.Geometry,
* ol.style.Style, Object)>} * ol.style.Style, Object)>}
*/ */
ol.renderer.vector.GEOMETRY_RENDERERS_ = { ol.renderer.vector.GEOMETRY_RENDERERS_ = {

View File

@@ -607,7 +607,7 @@ ol.TilePriorityFunction;
* renderedRenderOrder: (null|function(ol.Feature, ol.Feature):number), * renderedRenderOrder: (null|function(ol.Feature, ol.Feature):number),
* renderedTileRevision: number, * renderedTileRevision: number,
* renderedRevision: number, * renderedRevision: number,
* replayGroup: ol.render.IReplayGroup, * replayGroup: ol.render.ReplayGroup,
* skippedFeatures: Array.<string>}} * skippedFeatures: Array.<string>}}
*/ */
ol.TileReplayState; ol.TileReplayState;