/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
///
import { Core } from "../../main.js";
import { IRendererOptionsBase, RendererBase } from "../renderer.js";
import { TransitionBuffer } from "./buffer.js";
import { Config } from "./config.js";
import { Resources as ShaderResources } from "./shaders/shader.js";
import { Color as ColorShader } from "./shaders/color.js";
import { Texture as TextureShader } from "./shaders/texture.js";
import { Lasso as LassoShader } from "./shaders/lasso.js";
import { Model as ModelShader } from "./shaders/model.js";
import { SdfText as SdfTextShader } from "./shaders/sdftext.js";
import { PickGrid as PickGridShader } from "./shaders/pickgrid.js";
import { UnitBlock as UnitBlockShader } from "./shaders/unitblock.js";
import { UnitSphere as UnitSphereShader } from "./shaders/unitsphere.js";
import { UnitCylinder as UnitCylinderShader } from "./shaders/unitcylinder.js";
import { UnitHexPrism as UnitHexPrismShader } from "./shaders/unithexprism.js";
import { UnitSdf as UnitSdfShader } from "./shaders/unitsdf.js";
import { Anaglyph as AnaglyphShader } from "./shaders/anaglyph.js";
import { DebugAxesVisual } from "./components/debug.js";
import { AxesVisualBase } from "./components/axes/axes.js";
import { Cartesian2dVisual } from "./components/axes/cartesian2d.js";
import { Cartesian3dVisual } from "./components/axes/cartesian3d.js";
import { DebugAxes } from "../../components/debug.js";
import { Cartesian2dAxes } from "../../components/axes/cartesian2d.js";
import { Cartesian3dAxes } from "../../components/axes/cartesian3d.js";
import { Controller } from "../../components/controller.js";
import { ControllerVisual } from "./components/controller.js";
import { IImageVisual, ImageBase } from "../../components/image.js";
import { ImageVisual } from "./components/image.js";
import { ILabelSetVisual, Label, LabelSet } from "../../components/labels.js";
import { LabelVisual, LabelSetVisual } from "./components/labels.js";
import { IFontVisual, Font } from "../../font.js";
import { FontVisual } from "./font.js";
export interface IRendererOptions extends IRendererOptionsBase {
antialias?: boolean;
preserveDrawingBuffer?: boolean;
}
export declare class Main extends RendererBase {
protected _options: IRendererOptions;
private _gl;
private _shaderResources;
private _colorShader;
private _textureShader;
private _lassoShader;
private _modelShader;
private _sdfTextShader;
private _gridShader;
private _blockShader;
private _sphereShader;
private _cylinderShader;
private _hexPrismShader;
private _sdfShader;
private _anaglyphShader;
get shaderResources(): ShaderResources;
get colorShader(): ColorShader;
get textureShader(): TextureShader;
get lassoShader(): LassoShader;
get modelShader(): ModelShader;
get sdfTextShader(): SdfTextShader;
get gridShader(): PickGridShader;
get blockShader(): UnitBlockShader;
get sphereShader(): UnitSphereShader;
get cyclinderShader(): UnitCylinderShader;
get hexPrismShader(): UnitHexPrismShader;
get sdfShader(): UnitSdfShader;
get anaglyphShader(): AnaglyphShader;
depthEnabled: boolean;
protected _debugAxesVisual: DebugAxesVisual;
private _pickFrameBuffer;
private _pickedPixels;
private _pickedIdColor;
private _framebuffers;
private _anaglyphTextures;
anaglyphFramebuffers: WebGLFramebuffer[];
private _quad;
private _lasso;
protected _axes1: AxesVisualBase[];
protected _axes2: AxesVisualBase[];
get currentAxes(): AxesVisualBase[];
set currentAxes(value: AxesVisualBase[]);
get previousAxes(): AxesVisualBase[];
set previousAxes(value: AxesVisualBase[]);
transitionBuffers: TransitionBuffer[];
fonts: {
[key: string]: FontVisual;
};
labelSets: LabelSetVisual[];
images: ImageVisual[];
controllers: ControllerVisual[];
protected _config: Config;
get config(): Config;
private _mat3;
private _directionToCamera;
private _directionToLight;
private _halfAngle;
private _cameraPosition;
private _modelPosition;
constructor(options?: IRendererOptions);
get isSupported(): boolean;
get isWebXRSupported(): boolean;
initialize(core: Core): void;
private _initializeContext;
protected _resize(width: number, height: number): void;
private _createContext;
initializeWebXR(session: XRSession): Promise;
prepare(xrFrame?: XRFrame): void;
createTransitionBuffer(ids: Uint32Array): TransitionBuffer;
createControllerVisual(controller: Controller): ControllerVisual;
createCartesian2dAxesVisual(axes: Cartesian2dAxes): Cartesian2dVisual;
createCartesian3dAxesVisual(axes: Cartesian3dAxes): Cartesian3dVisual;
protected _createDebugAxesVisual(debugAxes: DebugAxes): DebugAxesVisual;
protected _createLabelVisual(label: Label): LabelVisual;
createLabelSetVisual(labelSet: LabelSet): ILabelSetVisual;
createImageVisual(image: ImageBase): IImageVisual;
createFontVisual(font: Font): IFontVisual;
getDataUrl(mimeType?: string): string;
render(elapsedTime: number, xrFrame?: XRFrame): Promise;
private _renderTransitionBuffer;
}