UNPKG

molstar

Version:

A comprehensive macromolecular library.

200 lines (199 loc) 7.88 kB
/** * Copyright (c) 2019-2025 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { Viewport } from '../../mol-canvas3d/camera/util'; import { ImagePass } from '../../mol-canvas3d/passes/image'; import { PluginComponent } from '../../mol-plugin-state/component'; import { RuntimeContext } from '../../mol-task'; import { Color } from '../../mol-util/color'; import { ParamDefinition as PD } from '../../mol-util/param-definition'; import { PluginContext } from '../context'; export { ViewportScreenshotHelper, ViewportScreenshotHelperParams }; declare namespace ViewportScreenshotHelper { type ResolutionSettings = PD.Values<ReturnType<ViewportScreenshotHelper['createParams']>>['resolution']; type ResolutionTypes = ResolutionSettings['name']; } type ViewportScreenshotHelperParams = PD.Values<ReturnType<ViewportScreenshotHelper['createParams']>>; declare class ViewportScreenshotHelper extends PluginComponent { private plugin; private createParams; private _params; get params(): { resolution: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "viewport"> | PD.NamedParams<PD.Normalize<{ width: number; height: number; }>, "custom"> | PD.NamedParams<PD.Normalize<unknown>, "hd"> | PD.NamedParams<PD.Normalize<unknown>, "full-hd"> | PD.NamedParams<PD.Normalize<unknown>, "ultra-hd">>; format: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "png"> | PD.NamedParams<PD.Normalize<{ quality: number; }>, "webp"> | PD.NamedParams<PD.Normalize<{ quality: number; }>, "jpeg">>; transparent: PD.BooleanParam; axes: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{ alpha: number; colorX: Color; colorY: Color; colorZ: Color; scale: number; location: "bottom-left" | "bottom-right" | "top-left" | "top-right"; locationOffsetX: number; locationOffsetY: number; originColor: Color; radiusScale: number; showPlanes: boolean; planeColorXY: Color; planeColorXZ: Color; planeColorYZ: Color; showLabels: boolean; labelX: string; labelY: string; labelZ: string; labelColorX: Color; labelColorY: Color; labelColorZ: Color; labelOpacity: number; labelScale: number; }>, "on">>; illumination: PD.Group<PD.Normalize<{ extraIterations: number; targetIterationTimeMs: number; }>>; }; readonly behaviors: { values: import("rxjs").BehaviorSubject<PD.Values<{ resolution: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "viewport"> | PD.NamedParams<PD.Normalize<unknown>, "hd"> | PD.NamedParams<PD.Normalize<unknown>, "full-hd"> | PD.NamedParams<PD.Normalize<unknown>, "ultra-hd"> | PD.NamedParams<PD.Normalize<{ width: number; height: number; }>, "custom">>; format: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "png"> | PD.NamedParams<PD.Normalize<{ quality: number; }>, "webp"> | PD.NamedParams<PD.Normalize<{ quality: number; }>, "jpeg">>; transparent: PD.BooleanParam; axes: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{ alpha: number; colorX: Color; colorY: Color; colorZ: Color; scale: number; location: "bottom-left" | "bottom-right" | "top-left" | "top-right"; locationOffsetX: number; locationOffsetY: number; originColor: Color; radiusScale: number; showPlanes: boolean; planeColorXY: Color; planeColorXZ: Color; planeColorYZ: Color; showLabels: boolean; labelX: string; labelY: string; labelZ: string; labelColorX: Color; labelColorY: Color; labelColorZ: Color; labelOpacity: number; labelScale: number; }>, "on">>; illumination: PD.Group<PD.Normalize<{ extraIterations: number; targetIterationTimeMs: number; }>>; }>>; cropParams: import("rxjs").BehaviorSubject<{ auto: boolean; relativePadding: number; }>; relativeCrop: import("rxjs").BehaviorSubject<Viewport>; }; readonly events: { previewed: import("rxjs").Subject<any>; }; get values(): PD.Values<{ resolution: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "viewport"> | PD.NamedParams<PD.Normalize<unknown>, "hd"> | PD.NamedParams<PD.Normalize<unknown>, "full-hd"> | PD.NamedParams<PD.Normalize<unknown>, "ultra-hd"> | PD.NamedParams<PD.Normalize<{ width: number; height: number; }>, "custom">>; format: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "png"> | PD.NamedParams<PD.Normalize<{ quality: number; }>, "webp"> | PD.NamedParams<PD.Normalize<{ quality: number; }>, "jpeg">>; transparent: PD.BooleanParam; axes: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{ alpha: number; colorX: Color; colorY: Color; colorZ: Color; scale: number; location: "bottom-left" | "bottom-right" | "top-left" | "top-right"; locationOffsetX: number; locationOffsetY: number; originColor: Color; radiusScale: number; showPlanes: boolean; planeColorXY: Color; planeColorXZ: Color; planeColorYZ: Color; showLabels: boolean; labelX: string; labelY: string; labelZ: string; labelColorX: Color; labelColorY: Color; labelColorZ: Color; labelOpacity: number; labelScale: number; }>, "on">>; illumination: PD.Group<PD.Normalize<{ extraIterations: number; targetIterationTimeMs: number; }>>; }>; get cropParams(): { auto: boolean; relativePadding: number; }; get relativeCrop(): Viewport; private getCanvasSize; private getSize; private getPostprocessingProps; private getIlluminationProps; private createPass; private _previewPass; private get previewPass(); private _imagePass; get imagePass(): ImagePass; getFilename(extension?: string): string; private canvas; private previewCanvas; private previewData; resetCrop(): void; toggleAutocrop(): void; get isFullFrame(): boolean; autocrop(relativePadding?: number): void; getPreview(ctx: RuntimeContext, maxDim?: number): Promise<{ canvas: HTMLCanvasElement; width: number; height: number; } | undefined>; getSizeAndViewport(): { width: number; height: number; viewport: Viewport; }; private draw; private copyToClipboardTask; private get mimeType(); private get extension(); private get quality(); getImageDataUri(): Promise<string>; copyToClipboard(): Promise<void> | undefined; private downloadTask; download(filename?: string): Promise<void>; constructor(plugin: PluginContext); }