import { Camera, Material, OrthographicCamera, PerspectiveCamera, Plane, Scene, WebGLRenderer, WebGLRenderTarget } from 'three'; import { ObjectLayers } from '../../../IViewer.js'; import { BatchUpdateRange } from '../../batching/Batch.js'; import SpeckleRenderer from '../../SpeckleRenderer.js'; export declare enum ObjectVisibility { OPAQUE = "opaque", TRANSPARENT = "transparent", DEPTH = "depth", STENCIL = "stencil", CUSTOM = "custom" } export declare enum ClearFlags { COLOR = 256, DEPTH = 1024, STENCIL = 16384 } export interface PassOptions { } export interface GPass { get displayName(): string; set outputTarget(value: WebGLRenderTarget); get outputTarget(): WebGLRenderTarget | null; get enabled(): boolean; set enabled(value: boolean); set options(value: PassOptions); get visibility(): ObjectVisibility | null; get overrideMaterial(): Material | null; get overrideBatchMaterial(): Material | null; get jitter(): boolean; get clearColor(): number | undefined; get clearAlpha(): number | undefined; get clearFlags(): number | undefined; get visibilityFunction(): ((renderer: SpeckleRenderer) => Record) | undefined; setSize?(width: number, height: number): void; onBeforeRender?: () => void; onAferRender?: () => void; update?(camera: PerspectiveCamera | OrthographicCamera | null): void; render?(renderer: WebGLRenderer, camera?: PerspectiveCamera | OrthographicCamera | null, scene?: Scene): boolean; setClearColor(color: number, alpha: number): void; setClearFlags(flags: number): void; setClippingPlanes?(planes: Plane[]): void; setLayers?(layers: ObjectLayers[]): void; setVisibility?(objectVisibility: ObjectVisibility, visibilityFunction?: (renderer: SpeckleRenderer) => Record): void; setJitter(value: boolean): void; } export declare abstract class BaseGPass implements GPass { protected _enabled: boolean; protected layers: ObjectLayers[] | null; protected _enabledLayers: ObjectLayers[]; protected _objectVisibility: ObjectVisibility | null; protected _jitter: boolean; protected _options: PassOptions; protected _clearColor: number | undefined; protected _clearAlpha: number | undefined; protected _clearFlags: number | undefined; protected _outputTarget: WebGLRenderTarget | null; onBeforeRender: (() => void) | undefined; onAfterRender: (() => void) | undefined; protected _visibilityFunction: ((renderer: SpeckleRenderer) => Record) | undefined; get enabledLayers(): ObjectLayers[]; get displayName(): string; get outputTarget(): WebGLRenderTarget | null; set outputTarget(value: WebGLRenderTarget | null); get enabled(): boolean; set enabled(value: boolean); set options(value: PassOptions); get visibility(): ObjectVisibility | null; get overrideMaterial(): Material | null; get overrideBatchMaterial(): Material | null; get jitter(): boolean; get clearColor(): number | undefined; get clearAlpha(): number | undefined; get clearFlags(): number | undefined; get visibilityFunction(): ((renderer: SpeckleRenderer) => Record) | undefined; setClearColor(color: number, alpha: number): void; setClearFlags(flags: number): void; setLayers(layers: ObjectLayers[]): void; enableLayer(layer: ObjectLayers, value: boolean): void; setVisibility(objectVisibility: ObjectVisibility | null, visibilityFunction?: (renderer: SpeckleRenderer) => Record): void; setJitter(value: boolean): void; protected applyLayers(camera: Camera | null): void; protected clear(renderer: WebGLRenderer): void; abstract render(renderer: WebGLRenderer, camera?: PerspectiveCamera | OrthographicCamera | null, scene?: Scene): boolean; setSize(width: number, height: number): void; } export declare abstract class ProgressiveGPass extends BaseGPass { protected _frameIndex: number; protected _accumulationFrames: number; get frameIndex(): number; set frameIndex(value: number); get accumulationFrames(): number; set accumulationFrames(value: number); render(renderer: WebGLRenderer, camera?: PerspectiveCamera | OrthographicCamera | null, scene?: Scene): boolean; }