diff --git a/src/ol/featureoverlay.js b/src/ol/featureoverlay.js index 162d024dac..12e6c7a4c4 100644 --- a/src/ol/featureoverlay.js +++ b/src/ol/featureoverlay.js @@ -191,7 +191,7 @@ ol.FeatureOverlay.prototype.handleMapPostCompose_ = function(event) { ii = styles.length; for (i = 0; i < ii; ++i) { ol.renderer.vector.renderFeature(replayGroup, feature, styles[i], - squaredTolerance, feature, this.handleImageChange_, this); + squaredTolerance, this.handleImageChange_, this); } }, this); }; diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index c263b01554..15bcef6896 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -428,11 +428,11 @@ ol.render.canvas.Immediate.prototype.drawAsync = function(zIndex, callback) { * the current fill and stroke styles. * * @param {ol.geom.Circle} circleGeometry Circle geometry. - * @param {Object} data Opaque data object, + * @param {ol.Feature} feature Feature, * @api */ ol.render.canvas.Immediate.prototype.drawCircleGeometry = - function(circleGeometry, data) { + function(circleGeometry, feature) { if (!ol.extent.intersects(this.extent_, circleGeometry.getExtent())) { return; } @@ -504,10 +504,10 @@ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { * * @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry * collection. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry = - function(geometryCollectionGeometry, data) { + function(geometryCollectionGeometry, feature) { var geometries = geometryCollectionGeometry.getGeometriesArray(); var i, ii; for (i = 0, ii = geometries.length; i < ii; ++i) { @@ -515,7 +515,7 @@ ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry = var geometryRenderer = ol.render.canvas.Immediate.GEOMETRY_RENDERERS_[geometry.getType()]; goog.asserts.assert(goog.isDef(geometryRenderer)); - geometryRenderer.call(this, geometry, data); + geometryRenderer.call(this, geometry, feature); } }; @@ -525,11 +525,11 @@ ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry = * the current style. * * @param {ol.geom.Point} pointGeometry Point geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @api */ ol.render.canvas.Immediate.prototype.drawPointGeometry = - function(pointGeometry, data) { + function(pointGeometry, feature) { var flatCoordinates = pointGeometry.getFlatCoordinates(); var stride = pointGeometry.getStride(); if (!goog.isNull(this.image_)) { @@ -546,11 +546,11 @@ ol.render.canvas.Immediate.prototype.drawPointGeometry = * uses the current style. * * @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @api */ ol.render.canvas.Immediate.prototype.drawMultiPointGeometry = - function(multiPointGeometry, data) { + function(multiPointGeometry, feature) { var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var stride = multiPointGeometry.getStride(); if (!goog.isNull(this.image_)) { @@ -567,11 +567,11 @@ ol.render.canvas.Immediate.prototype.drawMultiPointGeometry = * the current style. * * @param {ol.geom.LineString} lineStringGeometry Line string geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @api */ ol.render.canvas.Immediate.prototype.drawLineStringGeometry = - function(lineStringGeometry, data) { + function(lineStringGeometry, feature) { if (!ol.extent.intersects(this.extent_, lineStringGeometry.getExtent())) { return; } @@ -597,11 +597,11 @@ ol.render.canvas.Immediate.prototype.drawLineStringGeometry = * * @param {ol.geom.MultiLineString} multiLineStringGeometry * MultiLineString geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @api */ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = - function(multiLineStringGeometry, data) { + function(multiLineStringGeometry, feature) { var geometryExtent = multiLineStringGeometry.getExtent(); if (!ol.extent.intersects(this.extent_, geometryExtent)) { return; @@ -633,11 +633,11 @@ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = * the current style. * * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @api */ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = - function(polygonGeometry, data) { + function(polygonGeometry, feature) { if (!ol.extent.intersects(this.extent_, polygonGeometry.getExtent())) { return; } @@ -670,11 +670,11 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = * Render MultiPolygon geometry into the canvas. Rendering is immediate and * uses the current style. * @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @api */ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = - function(multiPolygonGeometry, data) { + function(multiPolygonGeometry, feature) { if (!ol.extent.intersects(this.extent_, multiPolygonGeometry.getExtent())) { return; } diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index cc1c8ac75b..b33ee08d6c 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -195,14 +195,14 @@ ol.render.canvas.Replay.prototype.appendFlatCoordinates = /** * @protected * @param {ol.geom.Geometry} geometry Geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ -ol.render.canvas.Replay.prototype.beginGeometry = function(geometry, data) { +ol.render.canvas.Replay.prototype.beginGeometry = function(geometry, feature) { this.beginGeometryInstruction1_ = - [ol.render.canvas.Instruction.BEGIN_GEOMETRY, geometry, data, 0]; + [ol.render.canvas.Instruction.BEGIN_GEOMETRY, feature, 0]; this.instructions.push(this.beginGeometryInstruction1_); this.beginGeometryInstruction2_ = - [ol.render.canvas.Instruction.BEGIN_GEOMETRY, geometry, data, 0]; + [ol.render.canvas.Instruction.BEGIN_GEOMETRY, feature, 0]; this.hitDetectionInstructions.push(this.beginGeometryInstruction2_); }; @@ -215,14 +215,13 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry, data) { * @param {number} viewRotation View rotation. * @param {Object} skippedFeaturesHash Ids of features to skip. * @param {Array.<*>} instructions Instructions array. - * @param {function(ol.geom.Geometry, Object): T|undefined} geometryCallback - * Geometry callback. + * @param {function(ol.Feature): T|undefined} featureCallback Feature callback. * @return {T|undefined} Callback result. * @template T */ ol.render.canvas.Replay.prototype.replay_ = function( context, pixelRatio, transform, viewRotation, skippedFeaturesHash, - instructions, geometryCallback) { + instructions, featureCallback) { /** @type {Array.} */ var pixelCoordinates; if (ol.vec.Mat4.equals2D(transform, this.renderedTransform_)) { @@ -242,16 +241,15 @@ ol.render.canvas.Replay.prototype.replay_ = function( while (i < ii) { var instruction = instructions[i]; var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); - var data, fill, geometry, stroke, text, x, y; + var feature, fill, stroke, text, x, y; switch (type) { case ol.render.canvas.Instruction.BEGIN_GEOMETRY: - geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); - data = /** @type {Object} */ (instruction[2]); - var dataUid = goog.getUid(data).toString(); - if (!goog.isDef(goog.object.get(skippedFeaturesHash, dataUid))) { + feature = /** @type {ol.Feature} */ (instruction[1]); + var featureUid = goog.getUid(feature).toString(); + if (!goog.isDef(goog.object.get(skippedFeaturesHash, featureUid))) { ++i; } else { - i = /** @type {number} */ (instruction[3]); + i = /** @type {number} */ (instruction[2]); } break; case ol.render.canvas.Instruction.BEGIN_PATH: @@ -381,10 +379,9 @@ ol.render.canvas.Replay.prototype.replay_ = function( ++i; break; case ol.render.canvas.Instruction.END_GEOMETRY: - if (goog.isDef(geometryCallback)) { - geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); - data = /** @type {Object} */ (instruction[2]); - var result = geometryCallback(geometry, data); + if (goog.isDef(featureCallback)) { + feature = /** @type {ol.Feature} */ (instruction[1]); + var result = featureCallback(feature); if (result) { return result; } @@ -475,17 +472,16 @@ ol.render.canvas.Replay.prototype.replay = function( * @param {goog.vec.Mat4.Number} transform Transform. * @param {number} viewRotation View rotation. * @param {Object} skippedFeaturesHash Ids of features to skip - * @param {function(ol.geom.Geometry, Object): T=} opt_geometryCallback - * Geometry callback. + * @param {function(ol.Feature): T=} opt_featureCallback Feature callback. * @return {T|undefined} Callback result. * @template T */ ol.render.canvas.Replay.prototype.replayHitDetection = function( context, transform, viewRotation, skippedFeaturesHash, - opt_geometryCallback) { + opt_featureCallback) { var instructions = this.hitDetectionInstructions; return this.replay_(context, 1, transform, viewRotation, - skippedFeaturesHash, instructions, opt_geometryCallback); + skippedFeaturesHash, instructions, opt_featureCallback); }; @@ -510,7 +506,7 @@ ol.render.canvas.Replay.prototype.reverseHitDetectionInstructions_ = goog.asserts.assert(begin == -1); begin = i; } else if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) { - instruction[3] = i; + instruction[2] = i; goog.asserts.assert(begin >= 0); ol.array.reverseSubArray(this.hitDetectionInstructions, begin, i); begin = -1; @@ -590,17 +586,17 @@ ol.render.canvas.Replay.prototype.drawText = goog.abstractMethod; /** * @param {ol.geom.Geometry} geometry Geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ -ol.render.canvas.Replay.prototype.endGeometry = function(geometry, data) { +ol.render.canvas.Replay.prototype.endGeometry = function(geometry, feature) { goog.asserts.assert(!goog.isNull(this.beginGeometryInstruction1_)); - this.beginGeometryInstruction1_[3] = this.instructions.length; + this.beginGeometryInstruction1_[2] = this.instructions.length; this.beginGeometryInstruction1_ = null; goog.asserts.assert(!goog.isNull(this.beginGeometryInstruction2_)); - this.beginGeometryInstruction2_[3] = this.hitDetectionInstructions.length; + this.beginGeometryInstruction2_[2] = this.hitDetectionInstructions.length; this.beginGeometryInstruction2_ = null; var endGeometryInstruction = - [ol.render.canvas.Instruction.END_GEOMETRY, geometry, data]; + [ol.render.canvas.Instruction.END_GEOMETRY, feature]; this.instructions.push(endGeometryInstruction); this.hitDetectionInstructions.push(endGeometryInstruction); }; @@ -765,7 +761,7 @@ ol.render.canvas.ImageReplay.prototype.drawCoordinates_ = * @inheritDoc */ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = - function(pointGeometry, data) { + function(pointGeometry, feature) { if (goog.isNull(this.image_)) { return; } @@ -780,7 +776,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = goog.asserts.assert(goog.isDef(this.scale_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, pointGeometry.getExtent()); - this.beginGeometry(pointGeometry, data); + this.beginGeometry(pointGeometry, feature); var flatCoordinates = pointGeometry.getFlatCoordinates(); var stride = pointGeometry.getStride(); var myBegin = this.coordinates.length; @@ -801,7 +797,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = this.originX_, this.originY_, this.rotateWithView_, this.rotation_, this.scale_, this.snapToPixel_, this.width_ ]); - this.endGeometry(pointGeometry, data); + this.endGeometry(pointGeometry, feature); }; @@ -809,7 +805,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = * @inheritDoc */ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = - function(multiPointGeometry, data) { + function(multiPointGeometry, feature) { if (goog.isNull(this.image_)) { return; } @@ -824,7 +820,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = goog.asserts.assert(goog.isDef(this.scale_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); - this.beginGeometry(multiPointGeometry, data); + this.beginGeometry(multiPointGeometry, feature); var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var stride = multiPointGeometry.getStride(); var myBegin = this.coordinates.length; @@ -845,7 +841,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = this.originX_, this.originY_, this.rotateWithView_, this.rotation_, this.scale_, this.snapToPixel_, this.width_ ]); - this.endGeometry(multiPointGeometry, data); + this.endGeometry(multiPointGeometry, feature); }; @@ -1032,7 +1028,7 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { * @inheritDoc */ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = - function(lineStringGeometry, data) { + function(lineStringGeometry, feature) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var strokeStyle = state.strokeStyle; @@ -1042,7 +1038,7 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = } ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); this.setStrokeStyle_(); - this.beginGeometry(lineStringGeometry, data); + this.beginGeometry(lineStringGeometry, feature); this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin, @@ -1053,7 +1049,7 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = this.drawFlatCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]); - this.endGeometry(lineStringGeometry, data); + this.endGeometry(lineStringGeometry, feature); }; @@ -1061,7 +1057,7 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = * @inheritDoc */ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = - function(multiLineStringGeometry, data) { + function(multiLineStringGeometry, feature) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var strokeStyle = state.strokeStyle; @@ -1071,7 +1067,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = } ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); this.setStrokeStyle_(); - this.beginGeometry(multiLineStringGeometry, data); + this.beginGeometry(multiLineStringGeometry, feature); this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin, @@ -1087,7 +1083,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = flatCoordinates, offset, ends[i], stride); } this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]); - this.endGeometry(multiLineStringGeometry, data); + this.endGeometry(multiLineStringGeometry, feature); }; @@ -1236,7 +1232,7 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = * @inheritDoc */ ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry = - function(circleGeometry, data) { + function(circleGeometry, feature) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var fillStyle = state.fillStyle; @@ -1249,7 +1245,7 @@ ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry = } ol.extent.extend(this.extent_, circleGeometry.getExtent()); this.setFillStrokeStyles_(); - this.beginGeometry(circleGeometry, data); + this.beginGeometry(circleGeometry, feature); // always fill the circle for hit detection this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_FILL_STYLE, @@ -1280,7 +1276,7 @@ ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry = this.instructions.push(strokeInstruction); this.hitDetectionInstructions.push(strokeInstruction); } - this.endGeometry(circleGeometry, data); + this.endGeometry(circleGeometry, feature); }; @@ -1288,7 +1284,7 @@ ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry = * @inheritDoc */ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = - function(polygonGeometry, data) { + function(polygonGeometry, feature) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var fillStyle = state.fillStyle; @@ -1301,7 +1297,7 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = } ol.extent.extend(this.extent_, polygonGeometry.getExtent()); this.setFillStrokeStyles_(); - this.beginGeometry(polygonGeometry, data); + this.beginGeometry(polygonGeometry, feature); // always fill the polygon for hit detection this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_FILL_STYLE, @@ -1316,7 +1312,7 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = var flatCoordinates = polygonGeometry.getOrientedFlatCoordinates(); var stride = polygonGeometry.getStride(); this.drawFlatCoordinatess_(flatCoordinates, 0, ends, stride); - this.endGeometry(polygonGeometry, data); + this.endGeometry(polygonGeometry, feature); }; @@ -1324,7 +1320,7 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = * @inheritDoc */ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = - function(multiPolygonGeometry, data) { + function(multiPolygonGeometry, feature) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var fillStyle = state.fillStyle; @@ -1337,7 +1333,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = } ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); this.setFillStrokeStyles_(); - this.beginGeometry(multiPolygonGeometry, data); + this.beginGeometry(multiPolygonGeometry, feature); // always fill the multi-polygon for hit detection this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_FILL_STYLE, @@ -1357,7 +1353,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = offset = this.drawFlatCoordinatess_( flatCoordinates, offset, endss[i], stride); } - this.endGeometry(multiPolygonGeometry, data); + this.endGeometry(multiPolygonGeometry, feature); }; @@ -1573,7 +1569,7 @@ goog.inherits(ol.render.canvas.TextReplay, ol.render.canvas.Replay); * @inheritDoc */ ol.render.canvas.TextReplay.prototype.drawText = - function(flatCoordinates, offset, end, stride, geometry, data) { + function(flatCoordinates, offset, end, stride, geometry, feature) { if (this.text_ === '' || goog.isNull(this.textState_) || (goog.isNull(this.textFillState_) && @@ -1589,7 +1585,7 @@ ol.render.canvas.TextReplay.prototype.drawText = this.setReplayStrokeState_(this.textStrokeState_); } this.setReplayTextState_(this.textState_); - this.beginGeometry(geometry, data); + this.beginGeometry(geometry, feature); var myBegin = this.coordinates.length; var myEnd = this.appendFlatCoordinates(flatCoordinates, offset, end, stride, false); @@ -1601,7 +1597,7 @@ ol.render.canvas.TextReplay.prototype.drawText = fill, stroke]; this.instructions.push(drawTextInstruction); this.hitDetectionInstructions.push(drawTextInstruction); - this.endGeometry(geometry, data); + this.endGeometry(geometry, feature); }; @@ -1875,7 +1871,7 @@ ol.render.canvas.ReplayGroup.prototype.finish = function() { * @param {number} rotation Rotation. * @param {ol.Coordinate} coordinate Coordinate. * @param {Object} skippedFeaturesHash Ids of features to skip - * @param {function(ol.geom.Geometry, Object): T} callback Geometry callback. + * @param {function(ol.Feature): T} callback Feature callback. * @return {T|undefined} Callback result. * @template T */ @@ -1894,14 +1890,13 @@ ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtPixel = function( return this.replayHitDetection_(context, extent, transform, rotation, skippedFeaturesHash, /** - * @param {ol.geom.Geometry} geometry Geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @return {?} Callback result. */ - function(geometry, data) { + function(feature) { var imageData = context.getImageData(0, 0, 1, 1).data; if (imageData[3] > 0) { - var result = callback(geometry, data); + var result = callback(feature); if (result) { return result; } @@ -1998,14 +1993,13 @@ ol.render.canvas.ReplayGroup.prototype.replay = function( * @param {goog.vec.Mat4.Number} transform Transform. * @param {number} viewRotation View rotation. * @param {Object} skippedFeaturesHash Ids of features to skip - * @param {function(ol.geom.Geometry, Object): T} geometryCallback Geometry - * callback. + * @param {function(ol.Feature): T} featureCallback Feature callback. * @return {T|undefined} Callback result. * @template T */ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function( context, extent, transform, viewRotation, skippedFeaturesHash, - geometryCallback) { + featureCallback) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number); goog.array.sort(zs, function(a, b) { return b - a; }); @@ -2018,7 +2012,7 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function( if (goog.isDef(replay) && ol.extent.intersects(extent, replay.getExtent())) { result = replay.replayHitDetection(context, transform, viewRotation, - skippedFeaturesHash, geometryCallback); + skippedFeaturesHash, featureCallback); if (result) { return result; } diff --git a/src/ol/render/ivectorcontext.js b/src/ol/render/ivectorcontext.js index e331bec0db..3b491515ae 100644 --- a/src/ol/render/ivectorcontext.js +++ b/src/ol/render/ivectorcontext.js @@ -23,10 +23,10 @@ ol.render.IVectorContext.prototype.drawAsync = function(zIndex, callback) { /** * @param {ol.geom.Circle} circleGeometry Circle geometry. - * @param {Object} data Opaque data object, + * @param {ol.Feature} feature Feature, */ ol.render.IVectorContext.prototype.drawCircleGeometry = - function(circleGeometry, data) { + function(circleGeometry, feature) { }; @@ -41,65 +41,65 @@ ol.render.IVectorContext.prototype.drawFeature = function(feature, style) { /** * @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry * collection. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ ol.render.IVectorContext.prototype.drawGeometryCollectionGeometry = - function(geometryCollectionGeometry, data) { + function(geometryCollectionGeometry, feature) { }; /** * @param {ol.geom.Point} pointGeometry Point geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ ol.render.IVectorContext.prototype.drawPointGeometry = - function(pointGeometry, data) { + function(pointGeometry, feature) { }; /** * @param {ol.geom.LineString} lineStringGeometry Line string geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ ol.render.IVectorContext.prototype.drawLineStringGeometry = - function(lineStringGeometry, data) { + function(lineStringGeometry, feature) { }; /** * @param {ol.geom.MultiLineString} multiLineStringGeometry * MultiLineString geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ ol.render.IVectorContext.prototype.drawMultiLineStringGeometry = - function(multiLineStringGeometry, data) { + function(multiLineStringGeometry, feature) { }; /** * @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ ol.render.IVectorContext.prototype.drawMultiPointGeometry = - function(multiPointGeometry, data) { + function(multiPointGeometry, feature) { }; /** * @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ ol.render.IVectorContext.prototype.drawMultiPolygonGeometry = - function(multiPolygonGeometry, data) { + function(multiPolygonGeometry, feature) { }; /** * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ ol.render.IVectorContext.prototype.drawPolygonGeometry = - function(polygonGeometry, data) { + function(polygonGeometry, feature) { }; @@ -109,10 +109,10 @@ ol.render.IVectorContext.prototype.drawPolygonGeometry = * @param {number} end End. * @param {number} stride Stride. * @param {ol.geom.Geometry} geometry Geometry. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. */ ol.render.IVectorContext.prototype.drawText = - function(flatCoordinates, offset, end, stride, geometry, data) { + function(flatCoordinates, offset, end, stride, geometry, feature) { }; diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index 39b259670a..c4481e958d 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -49,11 +49,11 @@ ol.renderer.vector.getTolerance = function(resolution, pixelRatio) { * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @private */ ol.renderer.vector.renderCircleGeometry_ = - function(replayGroup, geometry, style, data) { + function(replayGroup, geometry, style, feature) { goog.asserts.assertInstanceof(geometry, ol.geom.Circle); var fillStyle = style.getFill(); var strokeStyle = style.getStroke(); @@ -61,14 +61,14 @@ ol.renderer.vector.renderCircleGeometry_ = var polygonReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.POLYGON); polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle); - polygonReplay.drawCircleGeometry(geometry, data); + polygonReplay.drawCircleGeometry(geometry, feature); } var textStyle = style.getText(); if (!goog.isNull(textStyle)) { var textReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.TEXT); textReplay.setTextStyle(textStyle); - textReplay.drawText(geometry.getCenter(), 0, 2, 2, geometry, data); + textReplay.drawText(geometry.getCenter(), 0, 2, 2, geometry, feature); } }; @@ -78,20 +78,19 @@ ol.renderer.vector.renderCircleGeometry_ = * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. * @param {number} squaredTolerance Squared tolerance. - * @param {Object} data Opaque data object. * @param {function(this: T, goog.events.Event)} listener Listener function. * @param {T} thisArg Value to use as `this` when executing `listener`. * @return {boolean} `true` if style is loading. * @template T */ ol.renderer.vector.renderFeature = function( - replayGroup, feature, style, squaredTolerance, data, listener, thisArg) { + replayGroup, feature, style, squaredTolerance, listener, thisArg) { var loading = false; var imageStyle, imageState; imageStyle = style.getImage(); if (goog.isNull(imageStyle)) { ol.renderer.vector.renderFeature_( - replayGroup, feature, style, squaredTolerance, data); + replayGroup, feature, style, squaredTolerance); } else { imageState = imageStyle.getImageState(); if (imageState == ol.style.ImageState.LOADED || @@ -99,7 +98,7 @@ ol.renderer.vector.renderFeature = function( imageStyle.unlistenImageChange(listener, thisArg); if (imageState == ol.style.ImageState.LOADED) { ol.renderer.vector.renderFeature_( - replayGroup, feature, style, squaredTolerance, data); + replayGroup, feature, style, squaredTolerance); } } else { if (imageState == ol.style.ImageState.IDLE) { @@ -120,11 +119,10 @@ ol.renderer.vector.renderFeature = function( * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. * @param {number} squaredTolerance Squared tolerance. - * @param {Object} data Opaque data object. * @private */ ol.renderer.vector.renderFeature_ = function( - replayGroup, feature, style, squaredTolerance, data) { + replayGroup, feature, style, squaredTolerance) { var geometry = feature.getGeometry(); if (!goog.isDefAndNotNull(geometry)) { return; @@ -133,7 +131,7 @@ ol.renderer.vector.renderFeature_ = function( var geometryRenderer = ol.renderer.vector.GEOMETRY_RENDERERS_[simplifiedGeometry.getType()]; goog.asserts.assert(goog.isDef(geometryRenderer)); - geometryRenderer(replayGroup, simplifiedGeometry, style, data); + geometryRenderer(replayGroup, simplifiedGeometry, style, feature); }; @@ -141,11 +139,11 @@ ol.renderer.vector.renderFeature_ = function( * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @private */ ol.renderer.vector.renderGeometryCollectionGeometry_ = - function(replayGroup, geometry, style, data) { + function(replayGroup, geometry, style, feature) { goog.asserts.assertInstanceof(geometry, ol.geom.GeometryCollection); var geometries = geometry.getGeometriesArray(); var i, ii; @@ -153,7 +151,7 @@ ol.renderer.vector.renderGeometryCollectionGeometry_ = var geometryRenderer = ol.renderer.vector.GEOMETRY_RENDERERS_[geometries[i].getType()]; goog.asserts.assert(goog.isDef(geometryRenderer)); - geometryRenderer(replayGroup, geometries[i], style, data); + geometryRenderer(replayGroup, geometries[i], style, feature); } }; @@ -162,25 +160,25 @@ ol.renderer.vector.renderGeometryCollectionGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @private */ ol.renderer.vector.renderLineStringGeometry_ = - function(replayGroup, geometry, style, data) { + function(replayGroup, geometry, style, feature) { goog.asserts.assertInstanceof(geometry, ol.geom.LineString); var strokeStyle = style.getStroke(); if (!goog.isNull(strokeStyle)) { var lineStringReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.LINE_STRING); lineStringReplay.setFillStrokeStyle(null, strokeStyle); - lineStringReplay.drawLineStringGeometry(geometry, data); + lineStringReplay.drawLineStringGeometry(geometry, feature); } var textStyle = style.getText(); if (!goog.isNull(textStyle)) { var textReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.TEXT); textReplay.setTextStyle(textStyle); - textReplay.drawText(geometry.getFlatMidpoint(), 0, 2, 2, geometry, data); + textReplay.drawText(geometry.getFlatMidpoint(), 0, 2, 2, geometry, feature); } }; @@ -189,18 +187,18 @@ ol.renderer.vector.renderLineStringGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @private */ ol.renderer.vector.renderMultiLineStringGeometry_ = - function(replayGroup, geometry, style, data) { + function(replayGroup, geometry, style, feature) { goog.asserts.assertInstanceof(geometry, ol.geom.MultiLineString); var strokeStyle = style.getStroke(); if (!goog.isNull(strokeStyle)) { var lineStringReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.LINE_STRING); lineStringReplay.setFillStrokeStyle(null, strokeStyle); - lineStringReplay.drawMultiLineStringGeometry(geometry, data); + lineStringReplay.drawMultiLineStringGeometry(geometry, feature); } var textStyle = style.getText(); if (!goog.isNull(textStyle)) { @@ -209,7 +207,7 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = textReplay.setTextStyle(textStyle); var flatMidpointCoordinates = geometry.getFlatMidpoints(); textReplay.drawText(flatMidpointCoordinates, 0, - flatMidpointCoordinates.length, 2, geometry, data); + flatMidpointCoordinates.length, 2, geometry, feature); } }; @@ -218,11 +216,11 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @private */ ol.renderer.vector.renderMultiPolygonGeometry_ = - function(replayGroup, geometry, style, data) { + function(replayGroup, geometry, style, feature) { goog.asserts.assertInstanceof(geometry, ol.geom.MultiPolygon); var fillStyle = style.getFill(); var strokeStyle = style.getStroke(); @@ -230,7 +228,7 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = var polygonReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.POLYGON); polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle); - polygonReplay.drawMultiPolygonGeometry(geometry, data); + polygonReplay.drawMultiPolygonGeometry(geometry, feature); } var textStyle = style.getText(); if (!goog.isNull(textStyle)) { @@ -239,7 +237,7 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = textReplay.setTextStyle(textStyle); var flatInteriorPointCoordinates = geometry.getFlatInteriorPoints(); textReplay.drawText(flatInteriorPointCoordinates, 0, - flatInteriorPointCoordinates.length, 2, geometry, data); + flatInteriorPointCoordinates.length, 2, geometry, feature); } }; @@ -248,25 +246,25 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @private */ ol.renderer.vector.renderPointGeometry_ = - function(replayGroup, geometry, style, data) { + function(replayGroup, geometry, style, feature) { goog.asserts.assertInstanceof(geometry, ol.geom.Point); var imageStyle = style.getImage(); if (!goog.isNull(imageStyle)) { var imageReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.IMAGE); imageReplay.setImageStyle(imageStyle); - imageReplay.drawPointGeometry(geometry, data); + imageReplay.drawPointGeometry(geometry, feature); } var textStyle = style.getText(); if (!goog.isNull(textStyle)) { var textReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.TEXT); textReplay.setTextStyle(textStyle); - textReplay.drawText(geometry.getCoordinates(), 0, 2, 2, geometry, data); + textReplay.drawText(geometry.getCoordinates(), 0, 2, 2, geometry, feature); } }; @@ -275,18 +273,18 @@ ol.renderer.vector.renderPointGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @private */ ol.renderer.vector.renderMultiPointGeometry_ = - function(replayGroup, geometry, style, data) { + function(replayGroup, geometry, style, feature) { goog.asserts.assertInstanceof(geometry, ol.geom.MultiPoint); var imageStyle = style.getImage(); if (!goog.isNull(imageStyle)) { var imageReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.IMAGE); imageReplay.setImageStyle(imageStyle); - imageReplay.drawMultiPointGeometry(geometry, data); + imageReplay.drawMultiPointGeometry(geometry, feature); } var textStyle = style.getText(); if (!goog.isNull(textStyle)) { @@ -295,7 +293,7 @@ ol.renderer.vector.renderMultiPointGeometry_ = textReplay.setTextStyle(textStyle); var flatCoordinates = geometry.getFlatCoordinates(); textReplay.drawText(flatCoordinates, 0, flatCoordinates.length, - geometry.getStride(), geometry, data); + geometry.getStride(), geometry, feature); } }; @@ -304,11 +302,11 @@ ol.renderer.vector.renderMultiPointGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. - * @param {Object} data Opaque data object. + * @param {ol.Feature} feature Feature. * @private */ ol.renderer.vector.renderPolygonGeometry_ = - function(replayGroup, geometry, style, data) { + function(replayGroup, geometry, style, feature) { goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); var fillStyle = style.getFill(); var strokeStyle = style.getStroke(); @@ -316,7 +314,7 @@ ol.renderer.vector.renderPolygonGeometry_ = var polygonReplay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.POLYGON); polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle); - polygonReplay.drawPolygonGeometry(geometry, data); + polygonReplay.drawPolygonGeometry(geometry, feature); } var textStyle = style.getText(); if (!goog.isNull(textStyle)) { @@ -324,7 +322,7 @@ ol.renderer.vector.renderPolygonGeometry_ = style.getZIndex(), ol.render.ReplayType.TEXT); textReplay.setTextStyle(textStyle); textReplay.drawText( - geometry.getFlatInteriorPoint(), 0, 2, 2, geometry, data); + geometry.getFlatInteriorPoint(), 0, 2, 2, geometry, feature); } }; diff --git a/src/ol/render/webgl/webglreplay.js b/src/ol/render/webgl/webglreplay.js index a2263934ca..29c054dab3 100644 --- a/src/ol/render/webgl/webglreplay.js +++ b/src/ol/render/webgl/webglreplay.js @@ -382,7 +382,7 @@ ol.render.webgl.ImageReplay.prototype.drawMultiLineStringGeometry = * @inheritDoc */ ol.render.webgl.ImageReplay.prototype.drawMultiPointGeometry = - function(multiPointGeometry, data) { + function(multiPointGeometry, feature) { ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var stride = multiPointGeometry.getStride(); @@ -402,7 +402,7 @@ ol.render.webgl.ImageReplay.prototype.drawMultiPolygonGeometry = * @inheritDoc */ ol.render.webgl.ImageReplay.prototype.drawPointGeometry = - function(pointGeometry, data) { + function(pointGeometry, feature) { ol.extent.extend(this.extent_, pointGeometry.getExtent()); var flatCoordinates = pointGeometry.getFlatCoordinates(); var stride = pointGeometry.getStride(); diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index e1a0ad69f2..ca92336afa 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -130,12 +130,10 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = return this.replayGroup_.forEachGeometryAtPixel(extent, resolution, rotation, coordinate, frameState.skippedFeatureUids, /** - * @param {ol.geom.Geometry} geometry Geometry. - * @param {Object} data Data. + * @param {ol.Feature} feature Feature. * @return {?} Callback result. */ - function(geometry, data) { - var feature = /** @type {ol.Feature} */ (data); + function(feature) { goog.asserts.assert(goog.isDef(feature)); var key = goog.getUid(feature).toString(); if (!(key in features)) { @@ -278,7 +276,7 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = loading = ol.renderer.vector.renderFeature( replayGroup, feature, styles[i], ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio), - feature, this.handleImageChange_, this) || loading; + this.handleImageChange_, this) || loading; } return loading; }; diff --git a/src/ol/renderer/dom/domvectorlayerrenderer.js b/src/ol/renderer/dom/domvectorlayerrenderer.js index aec1bcf621..4fe8a91192 100644 --- a/src/ol/renderer/dom/domvectorlayerrenderer.js +++ b/src/ol/renderer/dom/domvectorlayerrenderer.js @@ -171,12 +171,10 @@ ol.renderer.dom.VectorLayer.prototype.forEachFeatureAtPixel = return this.replayGroup_.forEachGeometryAtPixel(extent, resolution, rotation, coordinate, frameState.skippedFeatureUids, /** - * @param {ol.geom.Geometry} geometry Geometry. - * @param {Object} data Data. + * @param {ol.Feature} feature Feature. * @return {?} Callback result. */ - function(geometry, data) { - var feature = /** @type {ol.Feature} */ (data); + function(feature) { goog.asserts.assert(goog.isDef(feature)); var key = goog.getUid(feature).toString(); if (!(key in features)) { @@ -319,7 +317,7 @@ ol.renderer.dom.VectorLayer.prototype.renderFeature = loading = ol.renderer.vector.renderFeature( replayGroup, feature, styles[i], ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio), - feature, this.handleImageChange_, this) || loading; + this.handleImageChange_, this) || loading; } return loading; }; diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index 3079159755..5619dc42f9 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -135,12 +135,10 @@ ol.renderer.Map.prototype.forEachFeatureAtPixel = result = this.replayGroup.forEachGeometryAtPixel(extent, viewResolution, viewRotation, coordinate, {}, /** - * @param {ol.geom.Geometry} geometry Geometry. - * @param {Object} data Data. + * @param {ol.Feature} feature Feature. * @return {?} Callback result. */ - function(geometry, data) { - var feature = /** @type {ol.Feature} */ (data); + function(feature) { goog.asserts.assert(goog.isDef(feature)); var key = goog.getUid(feature).toString(); if (!(key in features)) { diff --git a/src/ol/renderer/webgl/webglvectorlayerrenderer.js b/src/ol/renderer/webgl/webglvectorlayerrenderer.js index b52f6ac512..0520c60a12 100644 --- a/src/ol/renderer/webgl/webglvectorlayerrenderer.js +++ b/src/ol/renderer/webgl/webglvectorlayerrenderer.js @@ -234,7 +234,7 @@ ol.renderer.webgl.VectorLayer.prototype.renderFeature = loading = ol.renderer.vector.renderFeature( replayGroup, feature, styles[i], ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio), - feature, this.handleImageChange_, this) || loading; + this.handleImageChange_, this) || loading; } return loading; }; diff --git a/src/ol/source/imagevectorsource.js b/src/ol/source/imagevectorsource.js index b84f51258e..808869288b 100644 --- a/src/ol/source/imagevectorsource.js +++ b/src/ol/source/imagevectorsource.js @@ -163,12 +163,10 @@ ol.source.ImageVector.prototype.forEachFeatureAtPixel = function( return this.replayGroup_.forEachGeometryAtPixel( extent, resolution, 0, coordinate, skippedFeatureUids, /** - * @param {ol.geom.Geometry} geometry Geometry. - * @param {Object} data Data. + * @param {ol.Feature} feature Feature. * @return {?} Callback result. */ - function(geometry, data) { - var feature = /** @type {ol.Feature} */ (data); + function(feature) { goog.asserts.assert(goog.isDef(feature)); var key = goog.getUid(feature).toString(); if (!(key in features)) { @@ -274,7 +272,7 @@ ol.source.ImageVector.prototype.renderFeature_ = loading = ol.renderer.vector.renderFeature( replayGroup, feature, styles[i], ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio), - feature, this.handleImageChange_, this) || loading; + this.handleImageChange_, this) || loading; } return loading; }; diff --git a/test/spec/ol/render/vector.test.js b/test/spec/ol/render/vector.test.js index a8715a39d8..eef8d0f952 100644 --- a/test/spec/ol/render/vector.test.js +++ b/test/spec/ol/render/vector.test.js @@ -33,7 +33,7 @@ describe('ol.renderer.vector', function() { // call #1 ol.renderer.vector.renderFeature(replayGroup, feature, - style, 1, feature, listener, listenerThis); + style, 1, listener, listenerThis); expect(iconStyleLoadSpy.calledOnce).to.be.ok(); listeners = goog.events.getListeners( @@ -42,7 +42,7 @@ describe('ol.renderer.vector', function() { // call #2 ol.renderer.vector.renderFeature(replayGroup, feature, - style, 1, feature, listener, listenerThis); + style, 1, listener, listenerThis); expect(iconStyleLoadSpy.calledOnce).to.be.ok(); listeners = goog.events.getListeners(