molstar
Version:
A comprehensive macromolecular library.
75 lines (74 loc) • 2.71 kB
TypeScript
/**
* Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @author David Sehnal <david.sehnal@gmail.com>
*
* This code has been modified from https://github.com/mrdoob/three.js/,
* copyright (c) 2010-2018 three.js authors. MIT License
*/
import { Viewport } from '../camera/util';
import { InputObserver } from '../../mol-util/input/input-observer';
import { ParamDefinition as PD } from '../../mol-util/param-definition';
import { Camera } from '../camera';
import { Binding } from '../../mol-util/binding';
export declare const DefaultTrackballBindings: {
dragRotate: Binding;
dragRotateZ: Binding;
dragPan: Binding;
dragZoom: Binding;
dragFocus: Binding;
dragFocusZoom: Binding;
scrollZoom: Binding;
scrollFocus: Binding;
scrollFocusZoom: Binding;
};
export declare const TrackballControlsParams: {
noScroll: PD.BooleanParam;
rotateSpeed: PD.Numeric;
zoomSpeed: PD.Numeric;
panSpeed: PD.Numeric;
spin: PD.BooleanParam;
spinSpeed: PD.Numeric;
staticMoving: PD.BooleanParam;
dynamicDampingFactor: PD.Numeric;
minDistance: PD.Numeric;
maxDistance: PD.Numeric;
gestureScaleFactor: PD.Numeric;
maxWheelDelta: PD.Numeric;
bindings: PD.Value<{
dragRotate: Binding;
dragRotateZ: Binding;
dragPan: Binding;
dragZoom: Binding;
dragFocus: Binding;
dragFocusZoom: Binding;
scrollZoom: Binding;
scrollFocus: Binding;
scrollFocusZoom: Binding;
}>;
/**
* minDistance = minDistanceFactor * boundingSphere.radius + minDistancePadding
* maxDistance = max(maxDistanceFactor * boundingSphere.radius, maxDistanceMin)
*/
autoAdjustMinMaxDistance: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
minDistanceFactor: number;
minDistancePadding: number;
maxDistanceFactor: number;
maxDistanceMin: number;
}>, "on">>;
};
export declare type TrackballControlsProps = PD.Values<typeof TrackballControlsParams>;
export { TrackballControls };
interface TrackballControls {
viewport: Viewport;
readonly props: Readonly<TrackballControlsProps>;
setProps: (props: Partial<TrackballControlsProps>) => void;
start: (t: number) => void;
update: (t: number) => void;
reset: () => void;
dispose: () => void;
}
declare namespace TrackballControls {
function create(input: InputObserver, camera: Camera, props?: Partial<TrackballControlsProps>): TrackballControls;
}