@openglobus/og
Version:
[openglobus](https://www.openglobus.org/) is a javascript/typescript library designed to display interactive 3d maps and planets with map tiles, imagery and vector data, markers, and 3D objects. It uses the WebGL technology, open source, and completely fr
72 lines (71 loc) • 2.77 kB
TypeScript
import { type EventsHandler } from '../Events';
import { Layer } from '../layer/Layer';
import { Control, type IControlParams } from "./Control";
type LayerAnimationEventsList = ["change", "idle", "play", "pause", "stop"];
interface ILayerAnimationParams extends IControlParams {
layers?: Layer;
playInterval?: number;
frameSize?: number;
repeat?: boolean;
skipTimeout?: number;
}
export declare class LayerAnimation extends Control {
events: EventsHandler<LayerAnimationEventsList>;
protected _layersArr: Layer[];
protected _currentIndex: number;
protected _playInterval: number;
protected _playIntervalHandler: any;
protected _playIndex: number;
protected _frameSize: number;
repeat: boolean;
skipTimeout: number;
protected _timeoutStart: number;
protected _currVisibleIndex: number;
constructor(options?: ILayerAnimationParams);
protected _onViewchange: () => void;
protected _getFramesNum(): number;
protected _setFrame(frameIndex: number): void;
protected _getFrameIndex(layerIndex: number): number;
protected _appendFrameToPlanet(frameIndex: number): void;
protected _removeFrameFromPlanet(frameIndex: number): void;
oninit(): void;
onactivate(): void;
ondeactivate(): void;
protected _onVisibilityChange: (isVisible: boolean) => void;
clear(): void;
protected _initLayers(): void;
setLayers(layers: Layer[]): void;
appendLayer(layer: Layer): void;
/**
* warning: Use XYZ.isIdle in requestAnimationFrame(after setVisibility)
* @returns Returns true if current layer is idle
*/
get isIdle(): boolean;
get playInterval(): number;
set playInterval(val: number);
get isPlaying(): boolean;
get layers(): Layer[];
protected _checkEnd(): void;
play(): void;
stop(): void;
pause(): void;
protected _clearInterval(): void;
/**
* Waiting for the current index layer loadend and make it non-transparent,
* and make prev layer transparent, also check previous frame index to clean up.
*/
private _onLayerLoadend;
/**
* Function sets layer index visible.
* @param {number} index
* @param {boolean} [stopPropagation=false]
*/
setCurrentIndex(index: number, stopPropagation?: boolean): void;
/**
* Function sets layer index visible. If the layer is idle (all visible tiles loaded), sets opacity to one,
* otherwise to ZERO it means that when all visible tiles will be loaded the opacity becomes ONE. So, previous
* layer remains not transparent (opacity = 1) till current layer is loading.
*/
protected _setCurrentIndexAsync(index: number, forceVisibility?: boolean, stopPropagation?: boolean): void;
}
export {};