molstar
Version:
A comprehensive macromolecular library.
131 lines (130 loc) • 5.51 kB
TypeScript
/**
* Copyright (c) 2019-2021 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 { 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'];
}
declare 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<{
width: number;
height: number;
}>, "custom"> | 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">>;
transparent: PD.BooleanParam;
axes: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
alpha: number;
ignoreLight: boolean;
colorX: Color;
colorY: Color;
colorZ: Color;
scale: number;
doubleSided: boolean;
flipSided: boolean;
flatShaded: boolean;
xrayShaded: boolean;
quality: "custom" | "auto" | "highest" | "higher" | "high" | "medium" | "low" | "lower" | "lowest";
}>, "on">>;
};
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">>;
transparent: PD.BooleanParam;
axes: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
alpha: number;
ignoreLight: boolean;
colorX: Color;
colorY: Color;
colorZ: Color;
scale: number;
doubleSided: boolean;
flipSided: boolean;
flatShaded: boolean;
xrayShaded: boolean;
quality: "custom" | "auto" | "highest" | "higher" | "high" | "medium" | "low" | "lower" | "lowest";
}>, "on">>;
}>>;
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">>;
transparent: PD.BooleanParam;
axes: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
alpha: number;
ignoreLight: boolean;
colorX: Color;
colorY: Color;
colorZ: Color;
scale: number;
doubleSided: boolean;
flipSided: boolean;
flatShaded: boolean;
xrayShaded: boolean;
quality: "custom" | "auto" | "highest" | "higher" | "high" | "medium" | "low" | "lower" | "lowest";
}>, "on">>;
}>;
get cropParams(): {
auto: boolean;
relativePadding: number;
};
get relativeCrop(): Viewport;
private getCanvasSize;
private getSize;
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(maxDim?: number): {
canvas: HTMLCanvasElement;
width: number;
height: number;
} | undefined;
getSizeAndViewport(): {
width: number;
height: number;
viewport: Viewport;
};
private draw;
private copyToClipboardTask;
getImageDataUri(): Promise<string>;
copyToClipboard(): Promise<void> | undefined;
private downloadTask;
download(filename?: string): void;
constructor(plugin: PluginContext);
}