From 04fd3ade5f96d3d74d6ca9d399d3c2d7e7794917 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Fri, 19 Jul 2019 14:52:20 -0700 Subject: [PATCH] improved canvas3d.resetCamera --- src/mol-canvas3d/canvas3d.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mol-canvas3d/canvas3d.ts b/src/mol-canvas3d/canvas3d.ts index 7b8995710..19f3febda 100644 --- a/src/mol-canvas3d/canvas3d.ts +++ b/src/mol-canvas3d/canvas3d.ts @@ -140,7 +140,7 @@ namespace Canvas3D { const multiSample = new MultiSamplePass(webgl, camera, drawPass, postprocessing, p.multiSample) let drawPending = false - let cameraResetRequested = false + let cameraResetRequested: boolean | Vec3 = false function getLoci(pickingId: PickingId) { let loci: Loci = EmptyLoci @@ -270,7 +270,8 @@ namespace Canvas3D { runTask(scene.commit()).then(() => { if (cameraResetRequested && !scene.isCommiting) { - camera.focus(scene.boundingSphere.center, scene.boundingSphere.radius) + const dir = typeof cameraResetRequested === 'boolean' ? undefined : cameraResetRequested + camera.focus(scene.boundingSphere.center, scene.boundingSphere.radius, dir) cameraResetRequested = false } if (debugHelper.isEnabled) debugHelper.update() @@ -343,8 +344,7 @@ namespace Canvas3D { handleResize, resetCamera: (dir?: Vec3) => { if (scene.isCommiting) { - // TODO handle `dir` - cameraResetRequested = true + cameraResetRequested = dir || true } else { camera.focus(scene.boundingSphere.center, scene.boundingSphere.radius, dir) requestDraw(true); -- GitLab