From 580036d956800d85b245a393dda022a7e5ab5571 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 21 May 2026 19:13:51 +0000 Subject: [PATCH] Changes Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com> --- src/components/three/ModelViewer.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/components/three/ModelViewer.tsx b/src/components/three/ModelViewer.tsx index 91350cd..1262bf2 100644 --- a/src/components/three/ModelViewer.tsx +++ b/src/components/three/ModelViewer.tsx @@ -83,6 +83,7 @@ function GLBModel({ sceneModel, isActive }: { sceneModel: SceneModel; isActive: const edgeThresholdAngle = useModelStore((s) => s.edgeThresholdAngle); const checklist = useModelStore((s) => s.checklist); const setActive = useModelStore((s) => s.setActiveModel); + const selectionMode = useModelStore((s) => s.selectionMode); const fineTuning = sceneModel.fineTuning; const modelInfo = useMemo(() => { @@ -184,7 +185,20 @@ function GLBModel({ sceneModel, isActive }: { sceneModel: SceneModel; isActive: return ( { e.stopPropagation(); setActive(sceneModel.id); }} + onClick={(e) => { + e.stopPropagation(); + if ((e.delta ?? 0) > 4) return; + + if (selectionMode) { + const element = findElementRoot(e.object); + if (element) { + useModelStore.getState().toggleElementSelection(elementKey(sceneModel.id, element)); + } + return; + } + + setActive(sceneModel.id); + }} userData={{ modelId: sceneModel.id, dominantAxis }} > {/* Translation */}