molstar
Version:
A comprehensive macromolecular library.
191 lines (190 loc) • 7.45 kB
TypeScript
/**
* Copyright (c) 2019-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 { RenderTarget } from '../../mol-gl/webgl/render-target';
import { Renderer } from '../../mol-gl/renderer';
import { Scene } from '../../mol-gl/scene';
import { ParamDefinition as PD } from '../../mol-util/param-definition';
import { Camera } from '../camera';
import { Viewport } from '../camera/util';
import { Helper } from '../helper/helper';
import { AssetManager } from '../../mol-util/assets';
import { RuntimeContext } from '../../mol-task';
export declare const ImageParams: {
transparentBackground: PD.BooleanParam;
dpoitIterations: PD.Numeric;
multiSample: PD.Group<PD.Normalize<{
mode: string;
sampleLevel: number;
reduceFlicker: boolean;
reuseOcclusion: boolean;
}>>;
postprocessing: PD.Group<PD.Normalize<{
occlusion: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
samples: /*elided*/ any;
multiScale: /*elided*/ any;
radius: /*elided*/ any;
bias: /*elided*/ any;
blurKernelSize: /*elided*/ any;
blurDepthBias: /*elided*/ any;
resolutionScale: /*elided*/ any;
color: /*elided*/ any;
transparentThreshold: /*elided*/ any;
}>, "on">;
shadow: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
steps: /*elided*/ any;
maxDistance: /*elided*/ any;
tolerance: /*elided*/ any;
}>, "on">;
outline: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
scale: /*elided*/ any;
threshold: /*elided*/ any;
color: /*elided*/ any;
includeTransparent: /*elided*/ any;
}>, "on">;
dof: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
blurSize: /*elided*/ any;
blurSpread: /*elided*/ any;
inFocus: /*elided*/ any;
PPM: /*elided*/ any;
center: /*elided*/ any;
mode: /*elided*/ any;
}>, "on">;
antialiasing: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
edgeThreshold: /*elided*/ any;
maxSearchSteps: /*elided*/ any;
}>, "smaa"> | PD.NamedParams<PD.Normalize<{
edgeThresholdMin: /*elided*/ any;
edgeThresholdMax: /*elided*/ any;
iterations: /*elided*/ any;
subpixelQuality: /*elided*/ any;
}>, "fxaa">;
sharpening: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
sharpness: /*elided*/ any;
denoise: /*elided*/ any;
}>, "on">;
background: PD.Normalize<{
variant: /*elided*/ any;
}>;
bloom: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
strength: /*elided*/ any;
radius: /*elided*/ any;
threshold: /*elided*/ any;
mode: /*elided*/ any;
}>, "on">;
}>>;
marking: PD.Group<PD.Normalize<{
enabled: boolean;
highlightEdgeColor: import("../../mol-util/color").Color;
selectEdgeColor: import("../../mol-util/color").Color;
edgeScale: number;
highlightEdgeStrength: number;
selectEdgeStrength: number;
ghostEdgeStrength: number;
innerEdgeFactor: number;
}>>;
illumination: PD.Group<PD.Normalize<{
rendersPerFrame: [number, number];
targetFps: number;
steps: number;
firstStepSize: number;
refineSteps: number;
rayDistance: number;
thicknessMode: "auto" | "fixed";
minThickness: number;
thicknessFactor: number;
thickness: number;
bounces: number;
glow: boolean;
shadowEnable: boolean;
shadowSoftness: number;
shadowThickness: number;
enabled: boolean;
maxIterations: number;
denoise: boolean;
denoiseThreshold: [number, number];
ignoreOutline: boolean;
}>>;
cameraHelper: PD.Group<PD.Normalize<{
axes: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
alpha: /*elided*/ any;
colorX: /*elided*/ any;
colorY: /*elided*/ any;
colorZ: /*elided*/ any;
scale: /*elided*/ any;
location: /*elided*/ any;
locationOffsetX: /*elided*/ any;
locationOffsetY: /*elided*/ any;
originColor: /*elided*/ any;
radiusScale: /*elided*/ any;
showPlanes: /*elided*/ any;
planeColorXY: /*elided*/ any;
planeColorXZ: /*elided*/ any;
planeColorYZ: /*elided*/ any;
showLabels: /*elided*/ any;
labelX: /*elided*/ any;
labelY: /*elided*/ any;
labelZ: /*elided*/ any;
labelColorX: /*elided*/ any;
labelColorY: /*elided*/ any;
labelColorZ: /*elided*/ any;
labelOpacity: /*elided*/ any;
labelScale: /*elided*/ any;
}>, "on">;
}>>;
renderer: PD.Group<PD.Normalize<{
backgroundColor: import("../../mol-util/color").Color;
pickingAlphaThreshold: number;
interiorDarkening: number;
interiorColorFlag: boolean;
interiorColor: import("../../mol-util/color").Color;
colorMarker: boolean;
highlightColor: import("../../mol-util/color").Color;
selectColor: import("../../mol-util/color").Color;
dimColor: import("../../mol-util/color").Color;
highlightStrength: number;
selectStrength: number;
dimStrength: number;
markerPriority: number;
xrayEdgeFalloff: number;
celSteps: number;
exposure: number;
light: PD.Normalize<{
inclination: number;
azimuth: number;
color: import("../../mol-util/color").Color;
intensity: number;
}>[];
ambientColor: import("../../mol-util/color").Color;
ambientIntensity: number;
}>>;
};
export type ImageProps = PD.Values<typeof ImageParams>;
export declare class ImagePass {
private webgl;
private renderer;
private scene;
private camera;
private _width;
private _height;
private _camera;
readonly props: ImageProps;
private _colorTarget;
get colorTarget(): RenderTarget;
private readonly drawPass;
private readonly illuminationPass;
private readonly multiSamplePass;
private readonly multiSampleHelper;
private readonly helper;
get width(): number;
get height(): number;
constructor(webgl: WebGLContext, assetManager: AssetManager, renderer: Renderer, scene: Scene, camera: Camera, helper: Helper, transparency: 'wboit' | 'dpoit' | 'blended', props: Partial<ImageProps>);
updateBackground(): Promise<void>;
setSize(width: number, height: number): void;
setProps(props?: Partial<ImageProps>): void;
render(runtime: RuntimeContext): Promise<void>;
getImageData(runtime: RuntimeContext, width: number, height: number, viewport?: Viewport): Promise<ImageData>;
}