Remove all inheritDoc tags from src/ol/renderer

This commit is contained in:
Frederic Junod
2020-04-03 08:51:49 +02:00
parent 9e862c1111
commit dda7342ea7
11 changed files with 115 additions and 45 deletions

View File

@@ -114,7 +114,6 @@ class ImageWrapper extends ImageBase {
* Load the image or retry if loading previously failed. * Load the image or retry if loading previously failed.
* Loading is taken care of by the tile queue, and calling this method is * Loading is taken care of by the tile queue, and calling this method is
* only needed for preloading or for reloading in case of an error. * only needed for preloading or for reloading in case of an error.
* @override
* @api * @api
*/ */
load() { load() {

View File

@@ -86,7 +86,6 @@ class MapBrowserEvent extends MapEvent {
/** /**
* Prevents the default browser action. * Prevents the default browser action.
* See https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault. * See https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault.
* @override
* @api * @api
*/ */
preventDefault() { preventDefault() {
@@ -97,7 +96,6 @@ class MapBrowserEvent extends MapEvent {
/** /**
* Prevents further propagation of the current event. * Prevents further propagation of the current event.
* See https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation. * See https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation.
* @override
* @api * @api
*/ */
stopPropagation() { stopPropagation() {

View File

@@ -79,7 +79,8 @@ class CompositeMapRenderer extends MapRenderer {
} }
/** /**
* @inheritDoc * Render.
* @param {?import("../PluggableMap.js").FrameState} frameState Frame state.
*/ */
renderFrame(frameState) { renderFrame(frameState) {
if (!frameState) { if (!frameState) {
@@ -133,7 +134,17 @@ class CompositeMapRenderer extends MapRenderer {
} }
/** /**
* @inheritDoc * @param {import("../pixel.js").Pixel} pixel Pixel.
* @param {import("../PluggableMap.js").FrameState} frameState FrameState.
* @param {number} hitTolerance Hit tolerance in pixels.
* @param {function(import("../layer/Layer.js").default, (Uint8ClampedArray|Uint8Array)): T} callback Layer
* callback.
* @param {function(import("../layer/Layer.js").default): boolean} layerFilter Layer filter
* function, only layers which are visible and for which this function
* returns `true` will be tested for features. By default, all visible
* layers will be tested.
* @return {T|undefined} Callback result.
* @template T
*/ */
forEachLayerAtPixel(pixel, frameState, hitTolerance, callback, layerFilter) { forEachLayerAtPixel(pixel, frameState, hitTolerance, callback, layerFilter) {
const viewState = frameState.viewState; const viewState = frameState.viewState;

View File

@@ -65,12 +65,14 @@ class LayerRenderer extends Observable {
* @param {Object<number, Object<string, import("../Tile.js").default>>} tiles Lookup of loaded tiles by zoom level. * @param {Object<number, Object<string, import("../Tile.js").default>>} tiles Lookup of loaded tiles by zoom level.
* @param {number} zoom Zoom level. * @param {number} zoom Zoom level.
* @param {import("../Tile.js").default} tile Tile. * @param {import("../Tile.js").default} tile Tile.
* @return {boolean|void} If `false`, the tile will not be considered loaded.
*/ */
loadedTileCallback(tiles, zoom, tile) { loadedTileCallback(tiles, zoom, tile) {
if (!tiles[zoom]) { if (!tiles[zoom]) {
tiles[zoom] = {}; tiles[zoom] = {};
} }
tiles[zoom][tile.tileCoord.toString()] = tile; tiles[zoom][tile.tileCoord.toString()] = tile;
return undefined;
} }
/** /**

View File

@@ -151,14 +151,14 @@ class MapRenderer extends Disposable {
* @param {import("../pixel.js").Pixel} pixel Pixel. * @param {import("../pixel.js").Pixel} pixel Pixel.
* @param {import("../PluggableMap.js").FrameState} frameState FrameState. * @param {import("../PluggableMap.js").FrameState} frameState FrameState.
* @param {number} hitTolerance Hit tolerance in pixels. * @param {number} hitTolerance Hit tolerance in pixels.
* @param {function(this: S, import("../layer/Layer.js").default, (Uint8ClampedArray|Uint8Array)): T} callback Layer * @param {function(import("../layer/Layer.js").default, (Uint8ClampedArray|Uint8Array)): T} callback Layer
* callback. * callback.
* @param {function(this: U, import("../layer/Layer.js").default): boolean} layerFilter Layer filter * @param {function(import("../layer/Layer.js").default): boolean} layerFilter Layer filter
* function, only layers which are visible and for which this function * function, only layers which are visible and for which this function
* returns `true` will be tested for features. By default, all visible * returns `true` will be tested for features. By default, all visible
* layers will be tested. * layers will be tested.
* @return {T|undefined} Callback result. * @return {T|undefined} Callback result.
* @template S,T,U * @template T
*/ */
forEachLayerAtPixel(pixel, frameState, hitTolerance, callback, layerFilter) { forEachLayerAtPixel(pixel, frameState, hitTolerance, callback, layerFilter) {
return abstract(); return abstract();

View File

@@ -31,14 +31,16 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.
*/ */
getImage() { getImage() {
return !this.image_ ? null : this.image_.getImage(); return !this.image_ ? null : this.image_.getImage();
} }
/** /**
* @inheritDoc * Determine whether render should be called.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @return {boolean} Layer is ready to be rendered.
*/ */
prepareFrame(frameState) { prepareFrame(frameState) {
const layerState = frameState.layerStatesArray[frameState.layerIndex]; const layerState = frameState.layerStatesArray[frameState.layerIndex];
@@ -77,7 +79,10 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * Render the layer.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @param {HTMLElement} target Target that may be used to render content to.
* @return {HTMLElement} The rendered element.
*/ */
renderFrame(frameState, target) { renderFrame(frameState, target) {
const image = this.image_; const image = this.image_;

View File

@@ -122,7 +122,10 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * @param {Object<number, Object<string, import("../../Tile.js").default>>} tiles Lookup of loaded tiles by zoom level.
* @param {number} zoom Zoom level.
* @param {import("../../Tile.js").default} tile Tile.
* @return {boolean|void} If `false`, the tile will not be considered loaded.
*/ */
loadedTileCallback(tiles, zoom, tile) { loadedTileCallback(tiles, zoom, tile) {
if (this.isDrawableTile(tile)) { if (this.isDrawableTile(tile)) {
@@ -132,19 +135,19 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * Determine whether render should be called.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @return {boolean} Layer is ready to be rendered.
*/ */
prepareFrame(frameState) { prepareFrame(frameState) {
return !!this.getLayer().getSource(); return !!this.getLayer().getSource();
} }
/** /**
* TODO: File a TypeScript issue about inheritDoc not being followed * Render the layer.
* all the way. Without this explicit return type, the VectorTileLayer * @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* renderFrame function does not pass. * @param {HTMLElement} target Target that may be used to render content to.
* * @return {HTMLElement} The rendered element.
* @inheritDoc
* @returns {HTMLElement} The rendered element.
*/ */
renderFrame(frameState, target) { renderFrame(frameState, target) {
const layerState = frameState.layerStatesArray[frameState.layerIndex]; const layerState = frameState.layerStatesArray[frameState.layerIndex];
@@ -416,7 +419,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * @return {HTMLCanvasElement} Image
*/ */
getImage() { getImage() {
const context = this.context; const context = this.context;

View File

@@ -60,7 +60,9 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
} }
/** /**
* @inheritDoc * Asynchronous layer level hit detection.
* @param {import("../../pixel.js").Pixel} pixel Pixel.
* @return {Promise<Array<import("../../Feature").default>>} Promise that resolves with an array of features.
*/ */
getFeatures(pixel) { getFeatures(pixel) {
if (this.vectorRenderer_) { if (this.vectorRenderer_) {
@@ -76,14 +78,16 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
} }
/** /**
* @inheritDoc * Perform action necessary to get the layer rendered after new fonts have loaded
*/ */
handleFontsChanged() { handleFontsChanged() {
this.vectorRenderer_.handleFontsChanged(); this.vectorRenderer_.handleFontsChanged();
} }
/** /**
* @inheritDoc * Determine whether render should be called.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @return {boolean} Layer is ready to be rendered.
*/ */
prepareFrame(frameState) { prepareFrame(frameState) {
const pixelRatio = frameState.pixelRatio; const pixelRatio = frameState.pixelRatio;
@@ -145,17 +149,21 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
} }
/** /**
* @override
*/ */
preRender() {} preRender() {}
/** /**
* @override
*/ */
postRender() {} postRender() {}
/** /**
* @inheritDoc * @param {import("../../coordinate.js").Coordinate} coordinate Coordinate.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @param {number} hitTolerance Hit tolerance in pixels.
* @param {function(import("../../Feature.js").FeatureLike, import("../../layer/Layer.js").default): T} callback Feature callback.
* @param {Array<import("../../Feature.js").FeatureLike>} declutteredFeatures Decluttered features.
* @return {T|void} Callback result.
* @template T
*/ */
forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, callback, declutteredFeatures) { forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, callback, declutteredFeatures) {
if (this.vectorRenderer_) { if (this.vectorRenderer_) {

View File

@@ -107,7 +107,10 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * Get a rendering container from an existing target, if compatible.
* @param {HTMLElement} target Potential render target.
* @param {string} transform CSS Transform.
* @param {number} opacity Opacity.
*/ */
useContainer(target, transform, opacity) { useContainer(target, transform, opacity) {
if (opacity < 1) { if (opacity < 1) {
@@ -117,7 +120,10 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * Render the layer.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @param {HTMLElement} target Target that may be used to render content to.
* @return {HTMLElement} The rendered element.
*/ */
renderFrame(frameState, target) { renderFrame(frameState, target) {
@@ -221,14 +227,16 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
const opacity = layerState.opacity; const opacity = layerState.opacity;
const container = this.container; const container = this.container;
if (opacity !== parseFloat(container.style.opacity)) { if (opacity !== parseFloat(container.style.opacity)) {
container.style.opacity = opacity === 1 ? '' : opacity; container.style.opacity = opacity === 1 ? '' : String(opacity);
} }
return this.container; return this.container;
} }
/** /**
* @inheritDoc * Asynchronous layer level hit detection.
* @param {import("../../pixel.js").Pixel} pixel Pixel.
* @return {Promise<Array<import("../../Feature").default>>} Promise that resolves with an array of features.
*/ */
getFeatures(pixel) { getFeatures(pixel) {
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
@@ -276,7 +284,13 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * @param {import("../../coordinate.js").Coordinate} coordinate Coordinate.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @param {number} hitTolerance Hit tolerance in pixels.
* @param {function(import("../../Feature.js").FeatureLike, import("../../layer/Layer.js").default): T} callback Feature callback.
* @param {Array<import("../../Feature.js").FeatureLike>} declutteredFeatures Decluttered features.
* @return {T|void} Callback result.
* @template T
*/ */
forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, callback, declutteredFeatures) { forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, callback, declutteredFeatures) {
if (!this.replayGroup_) { if (!this.replayGroup_) {
@@ -306,7 +320,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * Perform action necessary to get the layer rendered after new fonts have loaded
*/ */
handleFontsChanged() { handleFontsChanged() {
const layer = this.getLayer(); const layer = this.getLayer();
@@ -325,7 +339,9 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
} }
/** /**
* @inheritDoc * Determine whether render should be called.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @return {boolean} Layer is ready to be rendered.
*/ */
prepareFrame(frameState) { prepareFrame(frameState) {
const vectorLayer = this.getLayer(); const vectorLayer = this.getLayer();

View File

@@ -136,7 +136,11 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
} }
/** /**
* @inheritDoc * @param {number} z Tile coordinate z.
* @param {number} x Tile coordinate x.
* @param {number} y Tile coordinate y.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @return {!import("../../Tile.js").default} Tile.
*/ */
getTile(z, x, y, frameState) { getTile(z, x, y, frameState) {
const pixelRatio = frameState.pixelRatio; const pixelRatio = frameState.pixelRatio;
@@ -167,7 +171,8 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
} }
/** /**
* @inheritdoc * @param {import("../../VectorRenderTile.js").default} tile Tile.
* @return {boolean} Tile is drawable.
*/ */
isDrawableTile(tile) { isDrawableTile(tile) {
const layer = this.getLayer(); const layer = this.getLayer();
@@ -182,7 +187,9 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
} }
/** /**
* @inheritDoc * Determine whether render should be called.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @return {boolean} Layer is ready to be rendered.
*/ */
prepareFrame(frameState) { prepareFrame(frameState) {
const layerRevision = this.getLayer().getRevision(); const layerRevision = this.getLayer().getRevision();
@@ -279,13 +286,19 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
} }
/** /**
* @inheritDoc * @param {import("../../coordinate.js").Coordinate} coordinate Coordinate.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @param {number} hitTolerance Hit tolerance in pixels.
* @param {function(import("../../Feature.js").FeatureLike, import("../../layer/Layer.js").default): T} callback Feature callback.
* @param {Array<import("../../Feature.js").FeatureLike>} declutteredFeatures Decluttered features.
* @return {T|void} Callback result.
* @template T
*/ */
forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, callback, declutteredFeatures) { forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, callback, declutteredFeatures) {
const resolution = frameState.viewState.resolution; const resolution = frameState.viewState.resolution;
const rotation = frameState.viewState.rotation; const rotation = frameState.viewState.rotation;
hitTolerance = hitTolerance == undefined ? 0 : hitTolerance; hitTolerance = hitTolerance == undefined ? 0 : hitTolerance;
const layer = /** @type {import("../../layer/VectorTile.js").default} */ (this.getLayer()); const layer = this.getLayer();
const declutter = layer.getDeclutter(); const declutter = layer.getDeclutter();
const source = layer.getSource(); const source = layer.getSource();
const tileGrid = source.getTileGridForProjection(frameState.viewState.projection); const tileGrid = source.getTileGridForProjection(frameState.viewState.projection);
@@ -334,7 +347,9 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
} }
/** /**
* @inheritDoc * Asynchronous layer level hit detection.
* @param {import("../../pixel.js").Pixel} pixel Pixel.
* @return {Promise<Array<import("../../Feature").default>>} Promise that resolves with an array of features.
*/ */
getFeatures(pixel) { getFeatures(pixel) {
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
@@ -394,7 +409,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
} }
/** /**
* @inheritDoc * Perform action necessary to get the layer rendered after new fonts have loaded
*/ */
handleFontsChanged() { handleFontsChanged() {
clear(this.renderTileImageQueue_); clear(this.renderTileImageQueue_);
@@ -414,7 +429,10 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
} }
/** /**
* @inheritDoc * Render the layer.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @param {HTMLElement} target Target that may be used to render content to.
* @return {HTMLElement} The rendered element.
*/ */
renderFrame(frameState, target) { renderFrame(frameState, target) {
const viewHints = frameState.viewHints; const viewHints = frameState.viewHints;

View File

@@ -349,7 +349,9 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer {
} }
/** /**
* @inheritDoc * Render the layer.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @return {HTMLElement} The rendered element.
*/ */
renderFrame(frameState) { renderFrame(frameState) {
const renderCount = this.indicesBuffer_.getSize(); const renderCount = this.indicesBuffer_.getSize();
@@ -360,7 +362,7 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer {
const layerState = frameState.layerStatesArray[frameState.layerIndex]; const layerState = frameState.layerStatesArray[frameState.layerIndex];
const opacity = layerState.opacity; const opacity = layerState.opacity;
if (opacity !== parseFloat(canvas.style.opacity)) { if (opacity !== parseFloat(canvas.style.opacity)) {
canvas.style.opacity = opacity; canvas.style.opacity = String(opacity);
} }
if (this.hitDetectionEnabled_) { if (this.hitDetectionEnabled_) {
@@ -372,7 +374,9 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer {
} }
/** /**
* @inheritDoc * Determine whether render should be called.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @return {boolean} Layer is ready to be rendered.
*/ */
prepareFrame(frameState) { prepareFrame(frameState) {
const layer = this.getLayer(); const layer = this.getLayer();
@@ -511,7 +515,13 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer {
} }
/** /**
* @inheritDoc * @param {import("../../coordinate.js").Coordinate} coordinate Coordinate.
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
* @param {number} hitTolerance Hit tolerance in pixels.
* @param {function(import("../../Feature.js").FeatureLike, import("../../layer/Layer.js").default): T} callback Feature callback.
* @param {Array<import("../../Feature.js").FeatureLike>} declutteredFeatures Decluttered features.
* @return {T|void} Callback result.
* @template T
*/ */
forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, callback, declutteredFeatures) { forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, callback, declutteredFeatures) {
assert(this.hitDetectionEnabled_, 66); assert(this.hitDetectionEnabled_, 66);