@speckle/viewer
Version:
A 3d viewer for Speckle, based on threejs.
95 lines (94 loc) • 4.4 kB
TypeScript
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<string, BatchUpdateRange>) | 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<string, BatchUpdateRange>): 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<string, BatchUpdateRange>) | 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<string, BatchUpdateRange>) | 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<string, BatchUpdateRange>): 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;
}