molstar
Version:
A comprehensive macromolecular library.
88 lines (87 loc) • 2.99 kB
TypeScript
/**
* Copyright (c) 2024-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { WebGLContext } from '../../mol-gl/webgl/context';
import { Renderer, RendererProps } from '../../mol-gl/renderer';
import { Camera } from '../camera';
import { Scene } from '../../mol-gl/scene';
import { RenderTarget } from '../../mol-gl/webgl/render-target';
import { ParamDefinition as PD } from '../../mol-util/param-definition';
import { PostprocessingProps } from './postprocessing';
import { DrawPass } from './draw';
import { MarkingProps } from './marking';
import { Helper } from '../helper/helper';
import { MultiSampleProps } from './multi-sample';
type Props = {
transparentBackground: boolean;
dpoitIterations: number;
illumination: IlluminationProps;
renderer: RendererProps;
postprocessing: PostprocessingProps;
marking: MarkingProps;
multiSample: MultiSampleProps;
};
type RenderContext = {
renderer: Renderer;
camera: Camera;
scene: Scene;
helper: Helper;
};
export declare const IlluminationParams: {
rendersPerFrame: PD.Interval;
targetFps: PD.Numeric;
steps: PD.Numeric;
firstStepSize: PD.Numeric;
refineSteps: PD.Numeric;
rayDistance: PD.Numeric;
thicknessMode: PD.Select<"auto" | "fixed">;
minThickness: PD.Numeric;
thicknessFactor: PD.Numeric;
thickness: PD.Numeric;
bounces: PD.Numeric;
glow: PD.BooleanParam;
shadowEnable: PD.BooleanParam;
shadowSoftness: PD.Numeric;
shadowThickness: PD.Numeric;
enabled: PD.BooleanParam;
maxIterations: PD.Numeric;
denoise: PD.BooleanParam;
denoiseThreshold: PD.Interval;
ignoreOutline: PD.BooleanParam;
};
export type IlluminationProps = PD.Values<typeof IlluminationParams>;
export declare class IlluminationPass {
private readonly webgl;
private readonly drawPass;
private readonly tracing;
private readonly transparentTarget;
private readonly outputTarget;
readonly packedDepth: boolean;
private readonly copyRenderable;
private readonly composeRenderable;
private multiSampleComposeTarget;
private multiSampleHoldTarget;
private multiSampleAccumulateTarget;
private multiSampleCompose;
private _iteration;
get iteration(): number;
private _colorTarget;
get colorTarget(): RenderTarget;
private _supported;
get supported(): boolean;
getMaxIterations(props: Props): number;
static isSupported(webgl: WebGLContext): boolean;
constructor(webgl: WebGLContext, drawPass: DrawPass);
private renderInput;
shouldRender(props: Props): boolean;
setSize(width: number, height: number): void;
reset(): void;
restart(clearAdjustedProps?: boolean): void;
private renderInternal;
private prevSampleIndex;
private renderMultiSample;
render(ctx: RenderContext, props: Props, toDrawingBuffer: boolean): void;
}
export {};