Add the renderer type to generic layer template variables
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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(),
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(),
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user