molstar
Version:
A comprehensive macromolecular library.
200 lines (199 loc) • 7.88 kB
TypeScript
/**
* 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);
}