|
@@ -1,5 +1,5 @@
|
|
|
/**
|
|
|
- * Copyright (c) 2019-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
|
+ * Copyright (c) 2019-2023 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>
|
|
@@ -18,7 +18,7 @@ import { StructureElement } from '../../mol-model/structure';
|
|
|
const DefaultCameraFocusOptions = {
|
|
|
minRadius: 5,
|
|
|
extraRadius: 4,
|
|
|
- durationMs: 250
|
|
|
+ durationMs: 250,
|
|
|
};
|
|
|
|
|
|
export type CameraFocusOptions = typeof DefaultCameraFocusOptions
|
|
@@ -107,19 +107,19 @@ export class CameraManager {
|
|
|
}
|
|
|
|
|
|
focusSphere(sphere: Sphere3D, options?: Partial<CameraFocusOptions> & { principalAxes?: PrincipalAxes }) {
|
|
|
+ const { canvas3d } = this.plugin;
|
|
|
+ if (!canvas3d) return;
|
|
|
+
|
|
|
const { extraRadius, minRadius, durationMs } = { ...DefaultCameraFocusOptions, ...options };
|
|
|
const radius = Math.max(sphere.radius + extraRadius, minRadius);
|
|
|
|
|
|
if (options?.principalAxes) {
|
|
|
const { origin, dirA, dirC } = options?.principalAxes.boxAxes;
|
|
|
- const snapshot = this.plugin.canvas3d?.camera.getFocus(origin, radius, dirA, dirC);
|
|
|
- this.plugin.canvas3d?.requestCameraReset({ durationMs, snapshot });
|
|
|
- // this.plugin.canvas3d?.camera.focus(origin, radius, durationMs, dirA, dirC);
|
|
|
+ const snapshot = canvas3d.camera.getFocus(origin, radius, dirA, dirC);
|
|
|
+ canvas3d.requestCameraReset({ durationMs, snapshot });
|
|
|
} else {
|
|
|
- const snapshot = this.plugin.canvas3d?.camera.getFocus(sphere.center, radius);
|
|
|
- this.plugin.canvas3d?.requestCameraReset({ durationMs, snapshot });
|
|
|
-
|
|
|
- // this.plugin.canvas3d?.camera.focus(sphere.center, radius, durationMs);
|
|
|
+ const snapshot = canvas3d.camera.getFocus(sphere.center, radius);
|
|
|
+ canvas3d.requestCameraReset({ durationMs, snapshot });
|
|
|
}
|
|
|
}
|
|
|
|