From 40aa847d1f9c5d2a1a5161ecedb879c2657f9416 Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Tue, 20 Nov 2018 14:09:01 +0100 Subject: [PATCH] mol-canvas3d: do not set camera clipping when in transition --- src/mol-canvas3d/camera.ts | 7 +++++++ src/mol-canvas3d/camera/transition.ts | 2 +- src/mol-canvas3d/canvas3d.ts | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/mol-canvas3d/camera.ts b/src/mol-canvas3d/camera.ts index 783c8883d..9c48d0211 100644 --- a/src/mol-canvas3d/camera.ts +++ b/src/mol-canvas3d/camera.ts @@ -131,6 +131,13 @@ class Camera implements Object3D { namespace Camera { export type Mode = 'perspective' | 'orthographic' + export interface ClippingInfo { + near: number, + far: number, + fogNear: number, + fogFar: number + } + export function createDefaultSnapshot(): Snapshot { return { mode: 'perspective', diff --git a/src/mol-canvas3d/camera/transition.ts b/src/mol-canvas3d/camera/transition.ts index 0ed592c1a..469446c54 100644 --- a/src/mol-canvas3d/camera/transition.ts +++ b/src/mol-canvas3d/camera/transition.ts @@ -15,7 +15,7 @@ class CameraTransitionManager { private func: CameraTransitionManager.TransitionFunc = CameraTransitionManager.defaultTransition; private start = 0; - private inTransition = false; + inTransition = false; private durationMs = 0; private source: Camera.Snapshot = Camera.createDefaultSnapshot(); private target: Camera.Snapshot = Camera.createDefaultSnapshot(); diff --git a/src/mol-canvas3d/canvas3d.ts b/src/mol-canvas3d/canvas3d.ts index 2914b1ab8..c2cf9bee3 100644 --- a/src/mol-canvas3d/canvas3d.ts +++ b/src/mol-canvas3d/canvas3d.ts @@ -189,7 +189,8 @@ namespace Canvas3D { let didRender = false controls.update() - setClipping() + // TODO: is this a good fix? Also, setClipping does not work if the user has manually set a clipping plane. + if (!camera.transition.inTransition) setClipping(); const cameraChanged = camera.updateMatrices(); if (force || cameraChanged) { -- GitLab