refactor: enhance camera controls and improve scene project update logic

This commit is contained in:
2025-09-05 18:31:00 +05:30
parent 0f10a84215
commit 1253473a5d
3 changed files with 52 additions and 36 deletions

View File

@@ -1,11 +1,13 @@
import { useFrame, useThree } from "@react-three/fiber";
import { useSceneContext } from "../sceneContext";
import { CameraControls } from "@react-three/drei";
import { useIsComparing } from "../../../store/builder/store";
import useModuleStore from "../../../store/ui/useModuleStore";
import { useComparisonProduct } from "../../../store/simulation/useSimulationStore";
import { useSceneStore } from "../../../store/scene/useSceneStore";
import { Vector3 } from "three";
import { useFrame, useThree } from "@react-three/fiber";
import { CameraControls } from "@react-three/drei";
import { useSceneContext } from "../sceneContext";
import { useIsComparing } from "../../../store/builder/store";
import { useSceneStore } from "../../../store/scene/useSceneStore";
import { useComparisonProduct } from "../../../store/simulation/useSimulationStore";
import useModuleStore from "../../../store/ui/useModuleStore";
import * as CONSTANTS from "../../../types/world/worldConstants";
function SyncCam() {
const { layout } = useSceneContext();
@@ -17,6 +19,10 @@ function SyncCam() {
useFrame(() => {
if (layout === "Comparison Layout" && controls && camState) {
(controls as any).mouseButtons.left = CONSTANTS.controlsTransition.leftMouse;
(controls as any).mouseButtons.right = CONSTANTS.controlsTransition.rightMouse;
(controls as any).mouseButtons.wheel = CONSTANTS.controlsTransition.wheelMouse;
(controls as any).mouseButtons.middle = CONSTANTS.controlsTransition.middleMouse;
(controls as CameraControls).setLookAt(camState.position.x, camState.position.y, camState.position.z, camState.target.x, camState.target.y, camState.target.z, true);
}
if (layout === "Main Layout" && controls && isComparing && activeModule === "simulation" && comparisonProduct) {