reduced typecasts in layerrenderer
This commit is contained in:
@@ -7,10 +7,13 @@ import Observable from '../Observable.js';
|
||||
import EventType from '../events/EventType.js';
|
||||
import SourceState from '../source/State.js';
|
||||
|
||||
/**
|
||||
* @template {import("../layer/Layer.js").default} LayerType
|
||||
*/
|
||||
class LayerRenderer extends Observable {
|
||||
|
||||
/**
|
||||
* @param {import("../layer/Layer.js").default} layer Layer.
|
||||
* @param {LayerType} layer Layer.
|
||||
*/
|
||||
constructor(layer) {
|
||||
|
||||
@@ -21,7 +24,7 @@ class LayerRenderer extends Observable {
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {import("../layer/Layer.js").default}
|
||||
* @type {LayerType}
|
||||
*/
|
||||
this.layer_ = layer;
|
||||
|
||||
@@ -110,7 +113,7 @@ class LayerRenderer extends Observable {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {import("../layer/Layer.js").default} Layer.
|
||||
* @return {LayerType} Layer.
|
||||
*/
|
||||
getLayer() {
|
||||
return this.layer_;
|
||||
|
||||
@@ -11,11 +11,12 @@ import {create as createTransform, apply as applyTransform, compose as composeTr
|
||||
|
||||
/**
|
||||
* @abstract
|
||||
* @template {import("../../layer/Layer.js").default} LayerType
|
||||
*/
|
||||
class CanvasLayerRenderer extends LayerRenderer {
|
||||
|
||||
/**
|
||||
* @param {import("../../layer/Layer.js").default} layer Layer.
|
||||
* @param {LayerType} layer Layer.
|
||||
*/
|
||||
constructor(layer) {
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
||||
* @return {boolean} Tile is drawable.
|
||||
*/
|
||||
isDrawableTile(tile) {
|
||||
const tileLayer = /** @type {import("../../layer/Tile.js").default} */ (this.getLayer());
|
||||
const tileLayer = this.getLayer();
|
||||
const tileState = tile.getState();
|
||||
const useInterimTilesOnError = tileLayer.getUseInterimTilesOnError();
|
||||
return tileState == TileState.LOADED ||
|
||||
@@ -90,7 +90,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
||||
getTile(z, x, y, frameState) {
|
||||
const pixelRatio = frameState.pixelRatio;
|
||||
const projection = frameState.viewState.projection;
|
||||
const tileLayer = /** @type {import("../../layer/Tile.js").default} */ (this.getLayer());
|
||||
const tileLayer = this.getLayer();
|
||||
const tileSource = tileLayer.getSource();
|
||||
let tile = tileSource.getTile(z, x, y, pixelRatio, projection);
|
||||
if (tile.getState() == TileState.ERROR) {
|
||||
@@ -142,7 +142,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
||||
const rotation = viewState.rotation;
|
||||
const pixelRatio = frameState.pixelRatio;
|
||||
|
||||
const tileLayer = /** @type {import("../../layer/Tile.js").default} */ (this.getLayer());
|
||||
const tileLayer = this.getLayer();
|
||||
const tileSource = tileLayer.getSource();
|
||||
const sourceRevision = tileSource.getRevision();
|
||||
const tileGrid = tileSource.getTileGridForProjection(projection);
|
||||
@@ -285,7 +285,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
||||
const tileGutter = tilePixelRatio * tileSource.getGutterForProjection(projection);
|
||||
const tilesToDraw = tilesToDrawByZ[currentZ];
|
||||
for (const tileCoordKey in tilesToDraw) {
|
||||
const tile = tilesToDraw[tileCoordKey];
|
||||
const tile = /** @type {import("../../ImageTile.js").default} */ (tilesToDraw[tileCoordKey]);
|
||||
const tileCoord = tile.tileCoord;
|
||||
|
||||
// Calculate integer positions and sizes so that tiles align
|
||||
@@ -363,7 +363,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {import("../../Tile.js").default} tile Tile.
|
||||
* @param {import("../../ImageTile.js").default} tile Tile.
|
||||
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
|
||||
* @param {number} x Left of the tile.
|
||||
* @param {number} y Top of the tile.
|
||||
@@ -409,12 +409,12 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
||||
|
||||
/**
|
||||
* Get the image from a tile.
|
||||
* @param {import("../../Tile.js").default} tile Tile.
|
||||
* @param {import("../../ImageTile.js").default} tile Tile.
|
||||
* @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.
|
||||
* @protected
|
||||
*/
|
||||
getTileImage(tile) {
|
||||
return /** @type {import("../../ImageTile.js").default} */ (tile).getImage();
|
||||
return tile.getImage();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -144,7 +144,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
||||
const snapToPixel = !(viewHints[ViewHint.ANIMATING] || viewHints[ViewHint.INTERACTING]);
|
||||
|
||||
const transform = this.getRenderTransform(frameState, width, height, 0);
|
||||
const declutterReplays = /** @type {import("../../layer/Vector.js").default} */ (this.getLayer()).getDeclutter() ? {} : null;
|
||||
const declutterReplays = this.getLayer().getDeclutter() ? {} : null;
|
||||
replayGroup.execute(context, transform, rotation, snapToPixel, undefined, declutterReplays);
|
||||
|
||||
if (vectorSource.getWrapX() && projection.canWrapX() && !containsExtent(projectionExtent, extent)) {
|
||||
@@ -199,7 +199,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
||||
} else {
|
||||
const resolution = frameState.viewState.resolution;
|
||||
const rotation = frameState.viewState.rotation;
|
||||
const layer = /** @type {import("../../layer/Vector").default} */ (this.getLayer());
|
||||
const layer = this.getLayer();
|
||||
/** @type {!Object<string, boolean>} */
|
||||
const features = {};
|
||||
const result = this.replayGroup_.forEachFeatureAtCoordinate(coordinate, resolution, rotation, hitTolerance,
|
||||
@@ -241,7 +241,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
||||
* @inheritDoc
|
||||
*/
|
||||
prepareFrame(frameState) {
|
||||
const vectorLayer = /** @type {import("../../layer/Vector.js").default} */ (this.getLayer());
|
||||
const vectorLayer = this.getLayer();
|
||||
const vectorSource = vectorLayer.getSource();
|
||||
|
||||
const animating = frameState.viewHints[ViewHint.ANIMATING];
|
||||
|
||||
@@ -44,11 +44,12 @@ export const WebGLWorkerMessageType = {
|
||||
* @classdesc
|
||||
* Base WebGL renderer class.
|
||||
* Holds all logic related to data manipulation & some common rendering logic
|
||||
* @template {import("../../layer/Layer.js").default} LayerType
|
||||
*/
|
||||
class WebGLLayerRenderer extends LayerRenderer {
|
||||
|
||||
/**
|
||||
* @param {import("../../layer/Layer.js").default} layer Layer.
|
||||
* @param {LayerType} layer Layer.
|
||||
* @param {Options=} [opt_options] Options.
|
||||
*/
|
||||
constructor(layer, opt_options) {
|
||||
|
||||
@@ -367,7 +367,7 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer {
|
||||
* @inheritDoc
|
||||
*/
|
||||
prepareFrame(frameState) {
|
||||
const vectorLayer = /** @type {import("../../layer/Vector.js").default} */ (this.getLayer());
|
||||
const vectorLayer = this.getLayer();
|
||||
const vectorSource = vectorLayer.getSource();
|
||||
const viewState = frameState.viewState;
|
||||
|
||||
@@ -418,7 +418,7 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer {
|
||||
* @private
|
||||
*/
|
||||
rebuildBuffers_(frameState) {
|
||||
const vectorLayer = /** @type {import("../../layer/Vector.js").default} */ (this.getLayer());
|
||||
const vectorLayer = this.getLayer();
|
||||
const vectorSource = vectorLayer.getSource();
|
||||
|
||||
// saves the projection transform for the current frame state
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
// "typeRoots": [], /* List of folders to include type definitions from. */
|
||||
// "types": ["node"], /* Type declaration files to be included in compilation. */
|
||||
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
|
||||
"esModuleInterop": true //, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
||||
|
||||
/* Source Map Options */
|
||||
@@ -53,7 +53,6 @@
|
||||
/* Experimental Options */
|
||||
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
|
||||
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
|
||||
//"skipDefaultLibCheck": true
|
||||
},
|
||||
"include": [
|
||||
"types/**/*.ts",
|
||||
|
||||
Reference in New Issue
Block a user