Add the renderer type to generic layer template variables

This commit is contained in:
Tim Schaub
2021-11-18 10:15:55 -07:00
parent 224f4c5c7f
commit 6f80ba93c8
13 changed files with 21 additions and 52 deletions

View File

@@ -40,7 +40,8 @@ import Layer from './Layer.js';
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @template {import("../source/Image.js").default} ImageSourceType * @template {import("../source/Image.js").default} ImageSourceType
* @extends {Layer<ImageSourceType>} * @template {import("../renderer/Layer.js").default} RendererType
* @extends {Layer<ImageSourceType, RendererType>}
* @api * @api
*/ */
class BaseImageLayer extends Layer { class BaseImageLayer extends Layer {

View File

@@ -55,7 +55,8 @@ import {assign} from '../obj.js';
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @template {import("../source/Tile.js").default} TileSourceType * @template {import("../source/Tile.js").default} TileSourceType
* @extends {Layer<TileSourceType>} * @template {import("../renderer/Layer.js").default} RendererType
* @extends {Layer<TileSourceType, RendererType>}
* @api * @api
*/ */
class BaseTileLayer extends Layer { class BaseTileLayer extends Layer {

View File

@@ -73,7 +73,8 @@ const Property = {
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @template {import("../source/Vector.js").default|import("../source/VectorTile.js").default} VectorSourceType * @template {import("../source/Vector.js").default|import("../source/VectorTile.js").default} VectorSourceType
* @extends {Layer<VectorSourceType>} * @template {import("../renderer/Layer.js").default} RendererType
* @extends {Layer<VectorSourceType, RendererType>}
* @api * @api
*/ */
class BaseVectorLayer extends Layer { class BaseVectorLayer extends Layer {

View File

@@ -1,7 +1,7 @@
/** /**
* @module ol/layer/Heatmap * @module ol/layer/Heatmap
*/ */
import VectorLayer from './Vector.js'; import BaseVector from './BaseVector.js';
import WebGLPointsLayerRenderer from '../renderer/webgl/PointsLayer.js'; import WebGLPointsLayerRenderer from '../renderer/webgl/PointsLayer.js';
import {assign} from '../obj.js'; import {assign} from '../obj.js';
import {clamp} from '../math.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. * options means that `title` is observable, and has get/set accessors.
* *
* @fires import("../render/Event.js").RenderEvent * @fires import("../render/Event.js").RenderEvent
* @extends {VectorLayer<import("../source/Vector.js").default>} * @extends {BaseVector<import("../source/Vector.js").default, WebGLPointsLayerRenderer>}
* @api * @api
*/ */
class Heatmap extends VectorLayer { class Heatmap extends BaseVector {
/** /**
* @param {Options} [opt_options] Options. * @param {Options} [opt_options] Options.
*/ */
@@ -174,10 +174,6 @@ class Heatmap extends VectorLayer {
this.set(Property.RADIUS, radius); this.set(Property.RADIUS, radius);
} }
/**
* Create a renderer for this layer.
* @return {WebGLPointsLayerRenderer} A layer renderer.
*/
createRenderer() { createRenderer() {
return new WebGLPointsLayerRenderer(this, { return new WebGLPointsLayerRenderer(this, {
className: this.getClassName(), className: this.getClassName(),

View File

@@ -13,7 +13,7 @@ import CanvasImageLayerRenderer from '../renderer/canvas/ImageLayer.js';
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @template {import("../source/Image.js").default} ImageSourceType * @template {import("../source/Image.js").default} ImageSourceType
* @extends {BaseImageLayer<ImageSourceType>} * @extends {BaseImageLayer<ImageSourceType, CanvasImageLayerRenderer>}
* @api * @api
*/ */
class ImageLayer extends BaseImageLayer { class ImageLayer extends BaseImageLayer {
@@ -24,10 +24,6 @@ class ImageLayer extends BaseImageLayer {
super(opt_options); super(opt_options);
} }
/**
* Create a renderer for this layer.
* @return {import("../renderer/Layer.js").default} A layer renderer.
*/
createRenderer() { createRenderer() {
return new CanvasImageLayerRenderer(this); return new CanvasImageLayerRenderer(this);
} }

View File

@@ -94,6 +94,7 @@ import {listen, unlistenByKey} from '../events.js';
* @fires import("../render/Event.js").RenderEvent#postrender * @fires import("../render/Event.js").RenderEvent#postrender
* *
* @template {import("../source/Source.js").default} SourceType * @template {import("../source/Source.js").default} SourceType
* @template {import("../renderer/Layer.js").default} RendererType
* @api * @api
*/ */
class Layer extends BaseLayer { class Layer extends BaseLayer {
@@ -141,7 +142,7 @@ class Layer extends BaseLayer {
/** /**
* @private * @private
* @type {import("../renderer/Layer.js").default} * @type {RendererType}
*/ */
this.renderer_ = null; this.renderer_ = null;
@@ -335,7 +336,7 @@ class Layer extends BaseLayer {
/** /**
* Get the renderer for this layer. * Get the renderer for this layer.
* @return {import("../renderer/Layer.js").default} The layer renderer. * @return {RendererType} The layer renderer.
*/ */
getRenderer() { getRenderer() {
if (!this.renderer_) { if (!this.renderer_) {
@@ -353,7 +354,7 @@ class Layer extends BaseLayer {
/** /**
* Create a renderer for this layer. * Create a renderer for this layer.
* @return {import("../renderer/Layer.js").default} A layer renderer. * @return {RendererType} A layer renderer.
* @protected * @protected
*/ */
createRenderer() { createRenderer() {

View File

@@ -13,7 +13,7 @@ import CanvasTileLayerRenderer from '../renderer/canvas/TileLayer.js';
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @template {import("../source/Tile.js").default} TileSourceType * @template {import("../source/Tile.js").default} TileSourceType
* @extends {BaseTileLayer<TileSourceType>} * @extends BaseTileLayer<TileSourceType, CanvasTileLayerRenderer>
* @api * @api
*/ */
class TileLayer extends BaseTileLayer { class TileLayer extends BaseTileLayer {
@@ -24,11 +24,6 @@ class TileLayer extends BaseTileLayer {
super(opt_options); super(opt_options);
} }
/**
* Create a renderer for this layer.
* @return {import("../renderer/Layer.js").default} A layer renderer.
* @protected
*/
createRenderer() { createRenderer() {
return new CanvasTileLayerRenderer(this); return new CanvasTileLayerRenderer(this);
} }

View File

@@ -12,7 +12,7 @@ import CanvasVectorLayerRenderer from '../renderer/canvas/VectorLayer.js';
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @template {import("../source/Vector.js").default} VectorSourceType * @template {import("../source/Vector.js").default} VectorSourceType
* @extends {BaseVectorLayer<VectorSourceType>} * @extends {BaseVectorLayer<VectorSourceType, CanvasVectorLayerRenderer>}
* @api * @api
*/ */
class VectorLayer extends BaseVectorLayer { class VectorLayer extends BaseVectorLayer {
@@ -23,10 +23,6 @@ class VectorLayer extends BaseVectorLayer {
super(opt_options); super(opt_options);
} }
/**
* Create a renderer for this layer.
* @return {import("../renderer/Layer.js").default} A layer renderer.
*/
createRenderer() { createRenderer() {
return new CanvasVectorLayerRenderer(this); return new CanvasVectorLayerRenderer(this);
} }

View File

@@ -55,7 +55,7 @@ import {assign} from '../obj.js';
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @template {import("../source/Vector.js").default} VectorSourceType * @template {import("../source/Vector.js").default} VectorSourceType
* @extends {BaseVectorLayer<VectorSourceType>} * @extends {BaseVectorLayer<VectorSourceType, CanvasVectorImageLayerRenderer>}
* @api * @api
*/ */
class VectorImageLayer extends BaseVectorLayer { class VectorImageLayer extends BaseVectorLayer {
@@ -84,10 +84,6 @@ class VectorImageLayer extends BaseVectorLayer {
return this.imageRatio_; return this.imageRatio_;
} }
/**
* Create a renderer for this layer.
* @return {import("../renderer/Layer.js").default} A layer renderer.
*/
createRenderer() { createRenderer() {
return new CanvasVectorImageLayerRenderer(this); return new CanvasVectorImageLayerRenderer(this);
} }

View File

@@ -85,7 +85,7 @@ import {assign} from '../obj.js';
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @param {Options} [opt_options] Options. * @param {Options} [opt_options] Options.
* @extends {BaseVectorLayer<import("../source/VectorTile.js").default>} * @extends {BaseVectorLayer<import("../source/VectorTile.js").default, CanvasVectorTileLayerRenderer>}
* @api * @api
*/ */
class VectorTileLayer extends BaseVectorLayer { 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() { createRenderer() {
return new CanvasVectorTileLayerRenderer(this); return new CanvasVectorTileLayerRenderer(this);
} }

View File

@@ -69,7 +69,7 @@ import {parseLiteralStyle} from '../webgl/ShaderBuilder.js';
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @template {import("../source/Vector.js").default} VectorSourceType * @template {import("../source/Vector.js").default} VectorSourceType
* @extends {Layer<VectorSourceType>} * @extends {Layer<VectorSourceType, WebGLPointsLayerRenderer>}
* @fires import("../render/Event.js").RenderEvent * @fires import("../render/Event.js").RenderEvent
*/ */
class WebGLPointsLayer extends Layer { class WebGLPointsLayer extends Layer {
@@ -94,10 +94,6 @@ class WebGLPointsLayer extends Layer {
this.hitDetectionDisabled_ = !!options.disableHitDetection; this.hitDetectionDisabled_ = !!options.disableHitDetection;
} }
/**
* Create a renderer for this layer.
* @return {WebGLPointsLayerRenderer} A layer renderer.
*/
createRenderer() { createRenderer() {
return new WebGLPointsLayerRenderer(this, { return new WebGLPointsLayerRenderer(this, {
vertexShader: this.parseResult_.builder.getSymbolVertexShader(), vertexShader: this.parseResult_.builder.getSymbolVertexShader(),

View File

@@ -259,7 +259,7 @@ function parseStyle(style, bandCount) {
* property on the layer object; for example, setting `title: 'My Title'` in the * property on the layer object; for example, setting `title: 'My Title'` in the
* options means that `title` is observable, and has get/set accessors. * options means that `title` is observable, and has get/set accessors.
* *
* @extends BaseTileLayer<SourceType> * @extends BaseTileLayer<SourceType, WebGLTileLayerRenderer>
* @api * @api
*/ */
class WebGLTileLayer extends BaseTileLayer { class WebGLTileLayer extends BaseTileLayer {
@@ -296,11 +296,6 @@ class WebGLTileLayer extends BaseTileLayer {
this.styleVariables_ = this.style_.variables || {}; this.styleVariables_ = this.style_.variables || {};
} }
/**
* Create a renderer for this layer.
* @return {import("../renderer/Layer.js").default} A layer renderer.
* @protected
*/
createRenderer() { createRenderer() {
const source = this.getSource(); const source = this.getSource();
const parsedStyle = parseStyle( const parsedStyle = parseStyle(

View File

@@ -49,7 +49,7 @@ import {wrapX as wrapCoordinateX} from '../../coordinate.js';
*/ */
class CanvasVectorLayerRenderer extends CanvasLayerRenderer { class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
/** /**
* @param {import("../../layer/Vector.js").default} vectorLayer Vector layer. * @param {import("../../layer/BaseVector.js").default} vectorLayer Vector layer.
*/ */
constructor(vectorLayer) { constructor(vectorLayer) {
super(vectorLayer); super(vectorLayer);