From f92755c9201c5d06cb5616d3b5d1203d3e6857c2 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Sun, 1 Nov 2020 14:09:16 -0800 Subject: [PATCH] factored out Camera.targetDistance --- src/mol-canvas3d/camera.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/mol-canvas3d/camera.ts b/src/mol-canvas3d/camera.ts index 3b99356db..bf51d2239 100644 --- a/src/mol-canvas3d/camera.ts +++ b/src/mol-canvas3d/camera.ts @@ -101,12 +101,7 @@ class Camera implements ICamera { } getTargetDistance(radius: number) { - const r = Math.max(radius, 0.01); - const { fov } = this.state; - const { width, height } = this.viewport; - const aspect = width / height; - const aspectFactor = (height < width ? 1 : aspect); - return Math.abs((r / aspectFactor) / Math.sin(fov / 2)); + return Camera.targetDistance(radius, this.state.fov, this.viewport.width, this.viewport.height); } getFocus(target: Vec3, radius: number, up?: Vec3, dir?: Vec3): Partial<Camera.Snapshot> { @@ -194,6 +189,13 @@ namespace Camera { out.height = view.height; } + export function targetDistance(radius: number, fov: number, width: number, height: number) { + const r = Math.max(radius, 0.01); + const aspect = width / height; + const aspectFactor = (height < width ? 1 : aspect); + return Math.abs((r / aspectFactor) / Math.sin(fov / 2)); + } + export function createDefaultSnapshot(): Snapshot { return { mode: 'perspective', -- GitLab