/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
///
import { mat4, vec2, vec3, vec4 } from "gl-matrix";
import { AxesVisibility, Core, PickType } from "../main.js";
import { IAxesVisual } from "../components/axes/axes.js";
import { ITransitionBufferVisual } from "../buffer.js";
import { LabelSet, ILabelSetVisual } from "../components/labels.js";
import { IComponentVisual } from "../components/component.js";
import { Cartesian2dAxes } from "../components/axes/cartesian2d.js";
import { Cartesian3dAxes } from "../components/axes/cartesian3d.js";
import { DebugAxes } from "../components/debug.js";
import { Controller, IControllerVisual } from "../components/controller.js";
import { IImageVisual, ImageBase } from "../components/image.js";
import { IFontVisual, Font } from "../font.js";
export declare abstract class RendererConfig {
reset(): void;
}
export interface IRendererOptionsBase {
width?: number;
height?: number;
contextmenu?: boolean;
}
export declare abstract class RendererBase {
protected _core: Core;
protected _isInitialized: boolean;
protected _options: IRendererOptionsBase;
get isInitialized(): boolean;
key: string;
protected _canvas: HTMLCanvasElement;
protected _config: RendererConfig;
get config(): RendererConfig;
protected _mvMatrices: mat4[];
mMatrix: mat4;
mvMatrices: mat4[];
vMatrices: mat4[];
pMatrices: mat4[];
inverseVMatrices: mat4[];
inversePMatrices: mat4[];
transitionTime: number;
protected _devicePixelRatio: number;
get devicePixelRatio(): number;
get width(): number;
set width(value: number);
get height(): number;
set height(value: number);
protected _viewports: DOMRect[];
protected _viewportOffset: number;
protected _viewportCount: number;
protected _webXRReferenceSpace: XRReferenceSpace;
get webXRReferenceSpace(): XRReferenceSpace;
private _resizeMinimumDelay;
private _resizeElapsedTime;
private _previousResizeWidth;
private _previousResizeHeight;
private _resizeWidth;
private _resizeHeight;
private _isResizing;
isPickingEnabled: boolean;
pickVMatrix: mat4;
pickPMatrix: mat4;
protected _pickedType: PickType;
get pickedType(): PickType;
protected _pickedId: number;
get pickedId(): number;
protected _isCapturingPickImage: boolean;
get isCapturingPickImage(): boolean;
capturePickImageCallback: (result: Uint8ClampedArray, width: number, height: number) => void;
capturePickImage(): void;
isLassoPicking: boolean;
lassoX0: number;
lassoX1: number;
lassoY0: number;
lassoY1: number;
lassoThickness: number;
lassoDashWidth: number;
lassoColor: vec3;
protected _lassoThickness: vec2;
protected _lassoMMatrix: mat4;
protected _backgroundColor: vec4;
get backgroundColor(): vec4;
set backgroundColor(value: vec4);
protected _ambientColor: vec3;
get ambientColor(): vec3;
set ambientColor(value: vec3);
protected _isAxes1Current: boolean;
protected _axes1: IAxesVisual[];
protected _axes2: IAxesVisual[];
axesVisibility: AxesVisibility;
get currentAxes(): IAxesVisual[];
set currentAxes(value: IAxesVisual[]);
get previousAxes(): IAxesVisual[];
set previousAxes(value: IAxesVisual[]);
swapAxes(): void;
createCartesian2dAxesVisual(axes: Cartesian2dAxes): IAxesVisual;
createCartesian3dAxesVisual(axes: Cartesian3dAxes): IAxesVisual;
protected _debugAxes: DebugAxes;
protected _debugAxesVisual: IComponentVisual;
protected _createDebugAxesVisual(debugAxes: DebugAxes): IComponentVisual;
areLabelsVisible: boolean;
labelSets: ILabelSetVisual[];
createLabelSetVisual(labelSet: LabelSet): ILabelSetVisual;
controllers: IControllerVisual[];
createControllerVisual(controller: Controller): IControllerVisual;
createTransitionBuffer(ids: Uint32Array): ITransitionBufferVisual;
transitionBuffers: ITransitionBufferVisual[];
areImagesVisible: boolean;
images: IImageVisual[];
createImageVisual(image: ImageBase): IImageVisual;
fonts: {
[key: string]: IFontVisual;
};
createFontVisual(font: Font): IFontVisual;
sdfBuffer: number;
sdfBackgroundColor: vec3;
constructor(options?: IRendererOptionsBase);
abstract get isSupported(): boolean;
get isWebXRSupported(): boolean;
initialize(core: Core): void;
remove(): void;
finalize(): void;
setSize(elapsedTime: number): void;
protected _resize(width: number, height: number): void;
update(elapsedTime: number): void;
getVertexPosition(position: vec3, pickedId: number): void;
render(elapsedTime: number, xrFrame?: XRFrame): Promise;
prepare(xrFrame?: XRFrame): void;
initializeWebXR(session: XRSession): Promise;
}