From 1e4a1e269bb00caa639dcbfe346e1f7ff6d357fb Mon Sep 17 00:00:00 2001 From: kpal Date: Wed, 1 May 2024 15:44:31 +0100 Subject: [PATCH] quick optimization to use tmp ray and plane for pan calculation --- src/cameras/multi-camera.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cameras/multi-camera.ts b/src/cameras/multi-camera.ts index d7d66c9..d64026e 100644 --- a/src/cameras/multi-camera.ts +++ b/src/cameras/multi-camera.ts @@ -11,6 +11,8 @@ type PointerMoveEvent = PointerEvent & { const tmpVa = new Vec2(); const tmpV1 = new Vec3(); const tmpV2 = new Vec3(); +const tmpR1 = new Ray(); +const tmpP1 = new Plane(); const PASSIVE: any = { passive: false }; @@ -262,8 +264,8 @@ class MultiCamera extends BaseCamera { const focalPos = tmpV2.add2(cameraPos, focusDirScaled); const planeNormal = focusDirScaled.mulScalar(-1).normalize(); - const plane = new Plane(planeNormal, -planeNormal.dot(focalPos)); - const ray = new Ray(cameraPos, mouseW.sub(cameraPos).normalize()); + const plane = tmpP1.setFromPointNormal(focalPos, planeNormal); + const ray = tmpR1.set(cameraPos, mouseW.sub(cameraPos).normalize()); plane.intersectsRay(ray, point); }