import { Matrix4, OrthographicCamera, PerspectiveCamera, Plane, Vector2, WebGLMultipleRenderTargets, WebGLRenderTarget, WebGLRenderTargetOptions } from 'three'; import { GPass } from '../Passes/GPass.js'; import SpeckleRenderer from '../../SpeckleRenderer.js'; export interface BasePipelineOptions { } export interface PipelineOptions extends BasePipelineOptions { edges?: boolean; } export declare const DefaultPipelineOptions: { edges: boolean; }; export declare abstract class Pipeline { protected speckleRenderer: SpeckleRenderer; protected _options: BasePipelineOptions; protected passList: Array; protected drawingSize: Vector2; protected frameProjection: Matrix4; protected jitterIndex: number; protected jitterOffsets: number[][]; get options(): BasePipelineOptions; set options(value: BasePipelineOptions); constructor(renderer: SpeckleRenderer, options?: BasePipelineOptions); get passes(): Array; onBeforePipelineRender(): void; onAfterPipelineRender(): void; getPass(name: string): GPass[]; setClippingPlanes(planes: Plane[]): void; update(camera: PerspectiveCamera | OrthographicCamera): void; reset(): void; render(): boolean; resize(width: number, height: number): void; /** * Generate a number in the Halton Sequence at a given index. This is * shamelessly stolen from the pseudocode on the Wikipedia page * * @param base the base to use for the Halton Sequence * @param index the index into the sequence */ protected haltonNumber(base: number, index: number): number; protected generateHaltonJiters(length: number): number[][]; static createRenderTarget(options?: WebGLRenderTargetOptions, width?: number, height?: number): WebGLRenderTarget; static createMultipleRenderTarget(count: number, options?: WebGLRenderTargetOptions, width?: number, height?: number): WebGLMultipleRenderTargets; }