/** * Copyright (c) 2019-2025 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal * @author Alexander Rose * @author Ke Ma * @author Adam Midlik */ import { Camera } from '../../mol-canvas3d/camera.js'; import { GraphicsRenderObject } from '../../mol-gl/render-object.js'; import { Sphere3D } from '../../mol-math/geometry.js'; import { Vec3 } from '../../mol-math/linear-algebra/3d/vec3.js'; import { PrincipalAxes } from '../../mol-math/linear-algebra/matrix/principal-axes.js'; import { Loci } from '../../mol-model/loci.js'; import { Structure } from '../../mol-model/structure.js'; import { PluginContext } from '../../mol-plugin/context.js'; import { PluginState } from '../../mol-plugin/state.js'; 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, options?: Partial): void; focusLoci(loci: Loci | Loci[], options?: Partial): void; focusSpheres(xs: ReadonlyArray, sphere: (t: T) => Sphere3D | undefined, options?: Partial & { principalAxes?: PrincipalAxes; positionToFlip?: Vec3; }): void; focusSphere(sphere: Sphere3D, options?: Partial & { 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, durationMs?: number): void; reset(snapshot?: Partial, durationMs?: number): void; constructor(plugin: PluginContext); } export {};