From 6f80ba93c8924d1f6a38dc2d13d41f2110b779a3 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Thu, 18 Nov 2021 10:15:55 -0700 Subject: [PATCH] Add the renderer type to generic layer template variables --- src/ol/layer/BaseImage.js | 3 ++- src/ol/layer/BaseTile.js | 3 ++- src/ol/layer/BaseVector.js | 3 ++- src/ol/layer/Heatmap.js | 10 +++------- src/ol/layer/Image.js | 6 +----- src/ol/layer/Layer.js | 7 ++++--- src/ol/layer/Tile.js | 7 +------ src/ol/layer/Vector.js | 6 +----- src/ol/layer/VectorImage.js | 6 +----- src/ol/layer/VectorTile.js | 7 +------ src/ol/layer/WebGLPoints.js | 6 +----- src/ol/layer/WebGLTile.js | 7 +------ src/ol/renderer/canvas/VectorLayer.js | 2 +- 13 files changed, 21 insertions(+), 52 deletions(-) diff --git a/src/ol/layer/BaseImage.js b/src/ol/layer/BaseImage.js index 984103b87a..e2eeec1682 100644 --- a/src/ol/layer/BaseImage.js +++ b/src/ol/layer/BaseImage.js @@ -40,7 +40,8 @@ import Layer from './Layer.js'; * options means that `title` is observable, and has get/set accessors. * * @template {import("../source/Image.js").default} ImageSourceType - * @extends {Layer} + * @template {import("../renderer/Layer.js").default} RendererType + * @extends {Layer} * @api */ class BaseImageLayer extends Layer { diff --git a/src/ol/layer/BaseTile.js b/src/ol/layer/BaseTile.js index d77c816769..dfab212d2f 100644 --- a/src/ol/layer/BaseTile.js +++ b/src/ol/layer/BaseTile.js @@ -55,7 +55,8 @@ import {assign} from '../obj.js'; * options means that `title` is observable, and has get/set accessors. * * @template {import("../source/Tile.js").default} TileSourceType - * @extends {Layer} + * @template {import("../renderer/Layer.js").default} RendererType + * @extends {Layer} * @api */ class BaseTileLayer extends Layer { diff --git a/src/ol/layer/BaseVector.js b/src/ol/layer/BaseVector.js index 1ae7b14458..275ae720cc 100644 --- a/src/ol/layer/BaseVector.js +++ b/src/ol/layer/BaseVector.js @@ -73,7 +73,8 @@ const Property = { * options means that `title` is observable, and has get/set accessors. * * @template {import("../source/Vector.js").default|import("../source/VectorTile.js").default} VectorSourceType - * @extends {Layer} + * @template {import("../renderer/Layer.js").default} RendererType + * @extends {Layer} * @api */ class BaseVectorLayer extends Layer { diff --git a/src/ol/layer/Heatmap.js b/src/ol/layer/Heatmap.js index c3e3306c8f..2b41e56d37 100644 --- a/src/ol/layer/Heatmap.js +++ b/src/ol/layer/Heatmap.js @@ -1,7 +1,7 @@ /** * @module ol/layer/Heatmap */ -import VectorLayer from './Vector.js'; +import BaseVector from './BaseVector.js'; import WebGLPointsLayerRenderer from '../renderer/webgl/PointsLayer.js'; import {assign} from '../obj.js'; import {clamp} from '../math.js'; @@ -61,10 +61,10 @@ const DEFAULT_GRADIENT = ['#00f', '#0ff', '#0f0', '#ff0', '#f00']; * options means that `title` is observable, and has get/set accessors. * * @fires import("../render/Event.js").RenderEvent - * @extends {VectorLayer} + * @extends {BaseVector} * @api */ -class Heatmap extends VectorLayer { +class Heatmap extends BaseVector { /** * @param {Options} [opt_options] Options. */ @@ -174,10 +174,6 @@ class Heatmap extends VectorLayer { this.set(Property.RADIUS, radius); } - /** - * Create a renderer for this layer. - * @return {WebGLPointsLayerRenderer} A layer renderer. - */ createRenderer() { return new WebGLPointsLayerRenderer(this, { className: this.getClassName(), diff --git a/src/ol/layer/Image.js b/src/ol/layer/Image.js index 90c49319c5..fa26423ba7 100644 --- a/src/ol/layer/Image.js +++ b/src/ol/layer/Image.js @@ -13,7 +13,7 @@ import CanvasImageLayerRenderer from '../renderer/canvas/ImageLayer.js'; * options means that `title` is observable, and has get/set accessors. * * @template {import("../source/Image.js").default} ImageSourceType - * @extends {BaseImageLayer} + * @extends {BaseImageLayer} * @api */ class ImageLayer extends BaseImageLayer { @@ -24,10 +24,6 @@ class ImageLayer extends BaseImageLayer { super(opt_options); } - /** - * Create a renderer for this layer. - * @return {import("../renderer/Layer.js").default} A layer renderer. - */ createRenderer() { return new CanvasImageLayerRenderer(this); } diff --git a/src/ol/layer/Layer.js b/src/ol/layer/Layer.js index 8c9d75fe6e..775f7eac93 100644 --- a/src/ol/layer/Layer.js +++ b/src/ol/layer/Layer.js @@ -94,6 +94,7 @@ import {listen, unlistenByKey} from '../events.js'; * @fires import("../render/Event.js").RenderEvent#postrender * * @template {import("../source/Source.js").default} SourceType + * @template {import("../renderer/Layer.js").default} RendererType * @api */ class Layer extends BaseLayer { @@ -141,7 +142,7 @@ class Layer extends BaseLayer { /** * @private - * @type {import("../renderer/Layer.js").default} + * @type {RendererType} */ this.renderer_ = null; @@ -335,7 +336,7 @@ class Layer extends BaseLayer { /** * Get the renderer for this layer. - * @return {import("../renderer/Layer.js").default} The layer renderer. + * @return {RendererType} The layer renderer. */ getRenderer() { if (!this.renderer_) { @@ -353,7 +354,7 @@ class Layer extends BaseLayer { /** * Create a renderer for this layer. - * @return {import("../renderer/Layer.js").default} A layer renderer. + * @return {RendererType} A layer renderer. * @protected */ createRenderer() { diff --git a/src/ol/layer/Tile.js b/src/ol/layer/Tile.js index ed9dbd6554..e6460349e7 100644 --- a/src/ol/layer/Tile.js +++ b/src/ol/layer/Tile.js @@ -13,7 +13,7 @@ import CanvasTileLayerRenderer from '../renderer/canvas/TileLayer.js'; * options means that `title` is observable, and has get/set accessors. * * @template {import("../source/Tile.js").default} TileSourceType - * @extends {BaseTileLayer} + * @extends BaseTileLayer * @api */ class TileLayer extends BaseTileLayer { @@ -24,11 +24,6 @@ class TileLayer extends BaseTileLayer { super(opt_options); } - /** - * Create a renderer for this layer. - * @return {import("../renderer/Layer.js").default} A layer renderer. - * @protected - */ createRenderer() { return new CanvasTileLayerRenderer(this); } diff --git a/src/ol/layer/Vector.js b/src/ol/layer/Vector.js index 5658ed3854..0bc6fbc71c 100644 --- a/src/ol/layer/Vector.js +++ b/src/ol/layer/Vector.js @@ -12,7 +12,7 @@ import CanvasVectorLayerRenderer from '../renderer/canvas/VectorLayer.js'; * options means that `title` is observable, and has get/set accessors. * * @template {import("../source/Vector.js").default} VectorSourceType - * @extends {BaseVectorLayer} + * @extends {BaseVectorLayer} * @api */ class VectorLayer extends BaseVectorLayer { @@ -23,10 +23,6 @@ class VectorLayer extends BaseVectorLayer { super(opt_options); } - /** - * Create a renderer for this layer. - * @return {import("../renderer/Layer.js").default} A layer renderer. - */ createRenderer() { return new CanvasVectorLayerRenderer(this); } diff --git a/src/ol/layer/VectorImage.js b/src/ol/layer/VectorImage.js index 7a9c28d185..30821f006f 100644 --- a/src/ol/layer/VectorImage.js +++ b/src/ol/layer/VectorImage.js @@ -55,7 +55,7 @@ import {assign} from '../obj.js'; * options means that `title` is observable, and has get/set accessors. * * @template {import("../source/Vector.js").default} VectorSourceType - * @extends {BaseVectorLayer} + * @extends {BaseVectorLayer} * @api */ class VectorImageLayer extends BaseVectorLayer { @@ -84,10 +84,6 @@ class VectorImageLayer extends BaseVectorLayer { return this.imageRatio_; } - /** - * Create a renderer for this layer. - * @return {import("../renderer/Layer.js").default} A layer renderer. - */ createRenderer() { return new CanvasVectorImageLayerRenderer(this); } diff --git a/src/ol/layer/VectorTile.js b/src/ol/layer/VectorTile.js index 7a4611608f..3ef6279aff 100644 --- a/src/ol/layer/VectorTile.js +++ b/src/ol/layer/VectorTile.js @@ -85,7 +85,7 @@ import {assign} from '../obj.js'; * options means that `title` is observable, and has get/set accessors. * * @param {Options} [opt_options] Options. - * @extends {BaseVectorLayer} + * @extends {BaseVectorLayer} * @api */ class VectorTileLayer extends BaseVectorLayer { @@ -147,11 +147,6 @@ class VectorTileLayer extends BaseVectorLayer { ); } - /** - * Create a renderer for this layer. - * @return {import("../renderer/Layer.js").default} A layer renderer. - * @protected - */ createRenderer() { return new CanvasVectorTileLayerRenderer(this); } diff --git a/src/ol/layer/WebGLPoints.js b/src/ol/layer/WebGLPoints.js index e9460666f6..009fc769b2 100644 --- a/src/ol/layer/WebGLPoints.js +++ b/src/ol/layer/WebGLPoints.js @@ -69,7 +69,7 @@ import {parseLiteralStyle} from '../webgl/ShaderBuilder.js'; * options means that `title` is observable, and has get/set accessors. * * @template {import("../source/Vector.js").default} VectorSourceType - * @extends {Layer} + * @extends {Layer} * @fires import("../render/Event.js").RenderEvent */ class WebGLPointsLayer extends Layer { @@ -94,10 +94,6 @@ class WebGLPointsLayer extends Layer { this.hitDetectionDisabled_ = !!options.disableHitDetection; } - /** - * Create a renderer for this layer. - * @return {WebGLPointsLayerRenderer} A layer renderer. - */ createRenderer() { return new WebGLPointsLayerRenderer(this, { vertexShader: this.parseResult_.builder.getSymbolVertexShader(), diff --git a/src/ol/layer/WebGLTile.js b/src/ol/layer/WebGLTile.js index 2f78cacd64..c4847b6792 100644 --- a/src/ol/layer/WebGLTile.js +++ b/src/ol/layer/WebGLTile.js @@ -259,7 +259,7 @@ function parseStyle(style, bandCount) { * property on the layer object; for example, setting `title: 'My Title'` in the * options means that `title` is observable, and has get/set accessors. * - * @extends BaseTileLayer + * @extends BaseTileLayer * @api */ class WebGLTileLayer extends BaseTileLayer { @@ -296,11 +296,6 @@ class WebGLTileLayer extends BaseTileLayer { this.styleVariables_ = this.style_.variables || {}; } - /** - * Create a renderer for this layer. - * @return {import("../renderer/Layer.js").default} A layer renderer. - * @protected - */ createRenderer() { const source = this.getSource(); const parsedStyle = parseStyle( diff --git a/src/ol/renderer/canvas/VectorLayer.js b/src/ol/renderer/canvas/VectorLayer.js index 7b5eb35473..edbacf1bcd 100644 --- a/src/ol/renderer/canvas/VectorLayer.js +++ b/src/ol/renderer/canvas/VectorLayer.js @@ -49,7 +49,7 @@ import {wrapX as wrapCoordinateX} from '../../coordinate.js'; */ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { /** - * @param {import("../../layer/Vector.js").default} vectorLayer Vector layer. + * @param {import("../../layer/BaseVector.js").default} vectorLayer Vector layer. */ constructor(vectorLayer) { super(vectorLayer);