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.TextReplay');
goog.require('ol.transform');
goog.require('ol');
goog.require('ol.array');
goog.require('ol.color');
@@ -20,8 +19,11 @@ goog.require('ol.geom.flat.simplify');
goog.require('ol.geom.flat.transform');
goog.require('ol.has');
goog.require('ol.obj');
goog.require('ol.render.ReplayGroup');
goog.require('ol.render.VectorContext');
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
* @implements {ol.render.IReplayGroup}
* @extends {ol.render.ReplayGroup}
* @param {number} tolerance Tolerance.
* @param {ol.Extent} maxExtent Max extent.
* @param {number} resolution Resolution.
* @param {number=} opt_renderBuffer Optional rendering buffer.
* @struct
*/
ol.render.canvas.ReplayGroup = function(
tolerance, maxExtent, resolution, opt_renderBuffer) {
ol.render.canvas.ReplayGroup = function(tolerance, maxExtent, resolution, opt_renderBuffer) {
ol.render.ReplayGroup.call(this);
/**
* @private
@@ -1859,6 +1861,7 @@ ol.render.canvas.ReplayGroup = function(
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
* to skip.
* @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,
transform, viewRotation, skippedFeaturesHash, opt_replayTypes) {
@@ -1996,7 +1999,7 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(context, pixelRatio,
context.closePath();
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;
for (i = 0, ii = zs.length; i < ii; ++i) {
replays = this.replaysByZIndex_[zs[i].toString()];
@@ -2039,8 +2042,8 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function(
var i, ii, j, replays, replay, result;
for (i = 0, ii = zs.length; i < ii; ++i) {
replays = this.replaysByZIndex_[zs[i].toString()];
for (j = ol.render.REPLAY_ORDER.length - 1; j >= 0; --j) {
replay = replays[ol.render.REPLAY_ORDER[j]];
for (j = ol.render.replay.ORDER.length - 1; j >= 0; --j) {
replay = replays[ol.render.replay.ORDER[j]];
if (replay !== undefined) {
result = replay.replayHitDetection(context, transform, viewRotation,
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.ReplayGroup');
goog.require('ol.transform');
goog.require('ol.extent');
goog.require('ol.obj');
goog.require('ol.render.ReplayGroup');
goog.require('ol.render.VectorContext');
goog.require('ol.render.replay');
goog.require('ol.render.webgl.imagereplay.defaultshader');
goog.require('ol.transform');
goog.require('ol.vec.Mat4');
goog.require('ol.webgl');
goog.require('ol.webgl.Buffer');
@@ -906,14 +908,14 @@ ol.render.webgl.ImageReplay.prototype.setImageStyle = function(imageStyle) {
/**
* @constructor
* @implements {ol.render.IReplayGroup}
* @extends {ol.render.ReplayGroup}
* @param {number} tolerance Tolerance.
* @param {ol.Extent} maxExtent Max extent.
* @param {number=} opt_renderBuffer Render buffer.
* @struct
*/
ol.render.webgl.ReplayGroup = function(
tolerance, maxExtent, opt_renderBuffer) {
ol.render.webgl.ReplayGroup = function(tolerance, maxExtent, opt_renderBuffer) {
ol.render.ReplayGroup.call(this);
/**
* @type {ol.Extent}
@@ -941,6 +943,7 @@ ol.render.webgl.ReplayGroup = function(
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,
opacity, skippedFeaturesHash) {
var i, ii, replay;
for (i = 0, ii = ol.render.REPLAY_ORDER.length; i < ii; ++i) {
replay = this.replays_[ol.render.REPLAY_ORDER[i]];
for (i = 0, ii = ol.render.replay.ORDER.length; i < ii; ++i) {
replay = this.replays_[ol.render.replay.ORDER[i]];
if (replay !== undefined) {
replay.replay(context,
center, resolution, rotation, size, pixelRatio,
@@ -1047,8 +1050,8 @@ ol.render.webgl.ReplayGroup.prototype.replayHitDetection_ = function(context,
center, resolution, rotation, size, pixelRatio, opacity,
skippedFeaturesHash, featureCallback, oneByOne, opt_hitExtent) {
var i, replay, result;
for (i = ol.render.REPLAY_ORDER.length - 1; i >= 0; --i) {
replay = this.replays_[ol.render.REPLAY_ORDER[i]];
for (i = ol.render.replay.ORDER.length - 1; i >= 0; --i) {
replay = this.replays_[ol.render.replay.ORDER[i]];
if (replay !== undefined) {
result = replay.replay(context,
center, resolution, rotation, size, pixelRatio, opacity,

View File

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