103 lines
1.7 KiB
JavaScript
103 lines
1.7 KiB
JavaScript
/**
|
|
* @module ol/ImageBase
|
|
*/
|
|
import {abstract} from './util.js';
|
|
import EventTarget from './events/Target.js';
|
|
import EventType from './events/EventType.js';
|
|
|
|
/**
|
|
* @abstract
|
|
*/
|
|
class ImageBase extends EventTarget {
|
|
|
|
/**
|
|
* @param {import("./extent.js").Extent} extent Extent.
|
|
* @param {number|undefined} resolution Resolution.
|
|
* @param {number} pixelRatio Pixel ratio.
|
|
* @param {import("./ImageState.js").default} state State.
|
|
*/
|
|
constructor(extent, resolution, pixelRatio, state) {
|
|
|
|
super();
|
|
|
|
/**
|
|
* @protected
|
|
* @type {import("./extent.js").Extent}
|
|
*/
|
|
this.extent = extent;
|
|
|
|
/**
|
|
* @private
|
|
* @type {number}
|
|
*/
|
|
this.pixelRatio_ = pixelRatio;
|
|
|
|
/**
|
|
* @protected
|
|
* @type {number|undefined}
|
|
*/
|
|
this.resolution = resolution;
|
|
|
|
/**
|
|
* @protected
|
|
* @type {import("./ImageState.js").default}
|
|
*/
|
|
this.state = state;
|
|
|
|
}
|
|
|
|
/**
|
|
* @protected
|
|
*/
|
|
changed() {
|
|
this.dispatchEvent(EventType.CHANGE);
|
|
}
|
|
|
|
/**
|
|
* @return {import("./extent.js").Extent} Extent.
|
|
*/
|
|
getExtent() {
|
|
return this.extent;
|
|
}
|
|
|
|
/**
|
|
* @abstract
|
|
* @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.
|
|
*/
|
|
getImage() {
|
|
return abstract();
|
|
}
|
|
|
|
/**
|
|
* @return {number} PixelRatio.
|
|
*/
|
|
getPixelRatio() {
|
|
return this.pixelRatio_;
|
|
}
|
|
|
|
/**
|
|
* @return {number} Resolution.
|
|
*/
|
|
getResolution() {
|
|
return /** @type {number} */ (this.resolution);
|
|
}
|
|
|
|
/**
|
|
* @return {import("./ImageState.js").default} State.
|
|
*/
|
|
getState() {
|
|
return this.state;
|
|
}
|
|
|
|
/**
|
|
* Load not yet loaded URI.
|
|
* @abstract
|
|
*/
|
|
load() {
|
|
abstract();
|
|
}
|
|
}
|
|
|
|
|
|
export default ImageBase;
|