/** * Copyright (c) 2018-2026 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose * @author David Sehnal * @author Herman Bergwerf * * This code has been modified from https://github.com/mrdoob/three.js/, * copyright (c) 2010-2018 three.js authors. MIT License */ import { Vec3 } from '../../mol-math/linear-algebra.js'; import { Viewport } from '../camera/util.js'; import { InputObserver } from '../../mol-util/input/input-observer.js'; import { ParamDefinition as PD } from '../../mol-util/param-definition.js'; import { Camera } from '../camera.js'; import { Binding } from '../../mol-util/binding.js'; import { Scene } from '../../mol-gl/scene.js'; export declare const DefaultTrackballBindings: { dragRotate: Binding; dragRotateZ: Binding; dragPan: Binding; dragZoom: Binding; dragFocus: Binding; dragFocusZoom: Binding; scrollZoom: Binding; scrollFocus: Binding; scrollFocusZoom: Binding; keyMoveForward: Binding; keyMoveBack: Binding; keyMoveLeft: Binding; keyMoveRight: Binding; keyMoveUp: Binding; keyMoveDown: Binding; keyRollLeft: Binding; keyRollRight: Binding; keyPitchUp: Binding; keyPitchDown: Binding; keyYawLeft: Binding; keyYawRight: Binding; boostMove: Binding; enablePointerLock: Binding; }; export declare const TrackballControlsParams: { rotateSpeed: PD.Numeric; zoomSpeed: PD.Numeric; panSpeed: PD.Numeric; moveSpeed: PD.Numeric; boostMoveFactor: PD.Numeric; flyMode: PD.BooleanParam; animate: PD.Mapped, "off"> | PD.NamedParams, "spin"> | PD.NamedParams, "rock">>; staticMoving: PD.BooleanParam; dynamicDampingFactor: PD.Numeric; minDistance: PD.Numeric; maxDistance: PD.Numeric; gestureScaleFactor: PD.Numeric; maxWheelDelta: PD.Numeric; /** * minDistance = minDistanceFactor * boundingSphere.radius + minDistancePadding * maxDistance = max(maxDistanceFactor * boundingSphere.radius, maxDistanceMin) */ autoAdjustMinMaxDistance: PD.Mapped, "off"> | PD.NamedParams, "on">>; }; export type TrackballControlsProps = PD.Values; export declare const DefaultTrackballControlsAttribs: { bindings: { dragRotate: Binding; dragRotateZ: Binding; dragPan: Binding; dragZoom: Binding; dragFocus: Binding; dragFocusZoom: Binding; scrollZoom: Binding; scrollFocus: Binding; scrollFocusZoom: Binding; keyMoveForward: Binding; keyMoveBack: Binding; keyMoveLeft: Binding; keyMoveRight: Binding; keyMoveUp: Binding; keyMoveDown: Binding; keyRollLeft: Binding; keyRollRight: Binding; keyPitchUp: Binding; keyPitchDown: Binding; keyYawLeft: Binding; keyYawRight: Binding; boostMove: Binding; enablePointerLock: Binding; }; }; export type TrackballControlsAttribs = typeof DefaultTrackballControlsAttribs; export { TrackballControls }; interface TrackballControls { readonly viewport: Viewport; readonly isAnimating: boolean; readonly isMoving: boolean; readonly props: Readonly; setProps: (props: Partial) => void; readonly attribs: Readonly; setAttribs: (attribs: Partial) => void; start: (t: number) => void; update: (t: number) => void; reset: () => void; dispose: () => void; } declare namespace TrackballControls { function create(input: InputObserver, camera: Camera, scene: Scene, props?: Partial, attribs?: Partial): TrackballControls; }