From 3a1bbc4248faeb57536453fc3d5968cab92e1881 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Mon, 8 Aug 2016 00:32:29 -0600 Subject: [PATCH] Get rid of ol.render.IReplayGroup interface --- src/ol/render/canvas/replay.js | 19 +++++---- src/ol/render/ireplaygroup.js | 52 ----------------------- src/ol/render/replay.js | 15 +++++++ src/ol/render/replaygroup.js | 24 +++++++++++ src/ol/render/replaytype.js | 12 ++++++ src/ol/render/webgl/imagereplay/index.js | 19 +++++---- src/ol/render/webgl/immediate.js | 2 + src/ol/renderer/canvas/vectortilelayer.js | 8 ++-- src/ol/renderer/vector.js | 23 +++++----- src/ol/typedefs.js | 2 +- 10 files changed, 93 insertions(+), 83 deletions(-) delete mode 100644 src/ol/render/ireplaygroup.js create mode 100644 src/ol/render/replay.js create mode 100644 src/ol/render/replaygroup.js create mode 100644 src/ol/render/replaytype.js diff --git a/src/ol/render/canvas/replay.js b/src/ol/render/canvas/replay.js index 4855f2ed4c..1de3481ca2 100644 --- a/src/ol/render/canvas/replay.js +++ b/src/ol/render/canvas/replay.js @@ -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.} skippedFeaturesHash Ids of features * to skip. * @param {Array.=} 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); diff --git a/src/ol/render/ireplaygroup.js b/src/ol/render/ireplaygroup.js deleted file mode 100644 index c9a0b703cb..0000000000 --- a/src/ol/render/ireplaygroup.js +++ /dev/null @@ -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.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() { -}; diff --git a/src/ol/render/replay.js b/src/ol/render/replay.js new file mode 100644 index 0000000000..3803f79f0c --- /dev/null +++ b/src/ol/render/replay.js @@ -0,0 +1,15 @@ +goog.provide('ol.render.replay'); + +goog.require('ol.render.ReplayType'); + + +/** + * @const + * @type {Array.} + */ +ol.render.replay.ORDER = [ + ol.render.ReplayType.POLYGON, + ol.render.ReplayType.LINE_STRING, + ol.render.ReplayType.IMAGE, + ol.render.ReplayType.TEXT +]; diff --git a/src/ol/render/replaygroup.js b/src/ol/render/replaygroup.js new file mode 100644 index 0000000000..6f7b286021 --- /dev/null +++ b/src/ol/render/replaygroup.js @@ -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() {}; diff --git a/src/ol/render/replaytype.js b/src/ol/render/replaytype.js new file mode 100644 index 0000000000..28d37e2ae1 --- /dev/null +++ b/src/ol/render/replaytype.js @@ -0,0 +1,12 @@ +goog.provide('ol.render.ReplayType'); + + +/** + * @enum {string} + */ +ol.render.ReplayType = { + IMAGE: 'Image', + LINE_STRING: 'LineString', + POLYGON: 'Polygon', + TEXT: 'Text' +}; diff --git a/src/ol/render/webgl/imagereplay/index.js b/src/ol/render/webgl/imagereplay/index.js index f801ed54e7..56ebfb7f42 100644 --- a/src/ol/render/webgl/imagereplay/index.js +++ b/src/ol/render/webgl/imagereplay/index.js @@ -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, diff --git a/src/ol/render/webgl/immediate.js b/src/ol/render/webgl/immediate.js index e38439525c..726e52698b 100644 --- a/src/ol/render/webgl/immediate.js +++ b/src/ol/render/webgl/immediate.js @@ -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'); diff --git a/src/ol/renderer/canvas/vectortilelayer.js b/src/ol/renderer/canvas/vectortilelayer.js index 339cdc50ad..9683b105b0 100644 --- a/src/ol/renderer/canvas/vectortilelayer.js +++ b/src/ol/renderer/canvas/vectortilelayer.js @@ -1,16 +1,18 @@ goog.provide('ol.renderer.canvas.VectorTileLayer'); -goog.require('ol.transform'); goog.require('ol.array'); goog.require('ol.extent'); goog.require('ol.proj'); goog.require('ol.proj.Units'); goog.require('ol.render.EventType'); +goog.require('ol.render.ReplayType'); goog.require('ol.render.canvas'); goog.require('ol.render.canvas.ReplayGroup'); +goog.require('ol.render.replay'); goog.require('ol.renderer.canvas.TileLayer'); goog.require('ol.renderer.vector'); goog.require('ol.size'); +goog.require('ol.transform'); /** @@ -18,7 +20,7 @@ goog.require('ol.size'); * @type {!Object.>} */ 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] }; @@ -29,7 +31,7 @@ ol.renderer.canvas.IMAGE_REPLAYS = { */ ol.renderer.canvas.VECTOR_REPLAYS = { 'hybrid': [ol.render.ReplayType.IMAGE, ol.render.ReplayType.TEXT], - 'vector': ol.render.REPLAY_ORDER + 'vector': ol.render.replay.ORDER }; diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js index 25a7b3bb21..8c98748c89 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/renderer/vector.js @@ -1,5 +1,6 @@ goog.provide('ol.renderer.vector'); +goog.require('ol.render.ReplayType'); 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.style.Style} style Style. * @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.style.Style} style Style. * @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.style.Style} style Style. * @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.style.Style} style Style. * @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.style.Style} style Style. * @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.style.Style} style Style. * @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.style.Style} style Style. * @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.style.Style} style Style. * @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.style.Style} style Style. * @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.style.Style} style Style. * @param {ol.Feature|ol.render.Feature} feature Feature. @@ -305,7 +306,7 @@ ol.renderer.vector.renderPolygonGeometry_ = function(replayGroup, geometry, styl * @const * @private * @type {Object.} */ ol.renderer.vector.GEOMETRY_RENDERERS_ = { diff --git a/src/ol/typedefs.js b/src/ol/typedefs.js index 40742dbe3d..b9a529af0d 100644 --- a/src/ol/typedefs.js +++ b/src/ol/typedefs.js @@ -607,7 +607,7 @@ ol.TilePriorityFunction; * renderedRenderOrder: (null|function(ol.Feature, ol.Feature):number), * renderedTileRevision: number, * renderedRevision: number, - * replayGroup: ol.render.IReplayGroup, + * replayGroup: ol.render.ReplayGroup, * skippedFeatures: Array.}} */ ol.TileReplayState;