UNPKG

molstar

Version:

A comprehensive macromolecular library.

52 lines (51 loc) 2.46 kB
/** * Copyright (c) 2019-2024 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> * @author Ke Ma <mark.ma@rcsb.org> * @author Adam Midlik <midlik@gmail.com> */ import { Camera } from '../../mol-canvas3d/camera'; import { GraphicsRenderObject } from '../../mol-gl/render-object'; import { Sphere3D } from '../../mol-math/geometry'; import { Vec3 } from '../../mol-math/linear-algebra/3d/vec3'; import { PrincipalAxes } from '../../mol-math/linear-algebra/matrix/principal-axes'; import { Loci } from '../../mol-model/loci'; import { Structure } from '../../mol-model/structure'; import { PluginContext } from '../../mol-plugin/context'; import { PluginState } from '../../mol-plugin/state'; declare const DefaultCameraFocusOptions: { minRadius: number; extraRadius: number; durationMs: number; }; export type CameraFocusOptions = typeof DefaultCameraFocusOptions; export declare class CameraManager { readonly plugin: PluginContext; private boundaryHelper; private transformedLoci; focusRenderObjects(objects?: ReadonlyArray<GraphicsRenderObject>, options?: Partial<CameraFocusOptions>): void; focusLoci(loci: Loci | Loci[], options?: Partial<CameraFocusOptions>): void; focusSpheres<T>(xs: ReadonlyArray<T>, sphere: (t: T) => Sphere3D | undefined, options?: Partial<CameraFocusOptions> & { principalAxes?: PrincipalAxes; positionToFlip?: Vec3; }): void; focusSphere(sphere: Sphere3D, options?: Partial<CameraFocusOptions> & { principalAxes?: PrincipalAxes; positionToFlip?: Vec3; }): void; /** Focus on a set of plugin state object cells (if `options.targets` is non-empty) or on the whole scene (if `options.targets` is empty). */ focusObject(options: PluginState.SnapshotFocusInfo & { minRadius?: number; durationMs?: number; }): void; /** Align PCA axes of `structures` (default: all loaded structures) to the screen axes. */ orientAxes(structures?: Structure[], durationMs?: number): void; /** Align Cartesian axes to the screen axes (X right, Y up). */ resetAxes(durationMs?: number): void; setSnapshot(snapshot: Partial<Camera.Snapshot>, durationMs?: number): void; reset(snapshot?: Partial<Camera.Snapshot>, durationMs?: number): void; constructor(plugin: PluginContext); } export {};