From ff7f69191d8d82bc6b67a108b78a4f3f5cd18053 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sun, 24 May 2026 20:26:24 +0000 Subject: [PATCH] Changes Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com> --- src/components/ViewCube.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/components/ViewCube.tsx b/src/components/ViewCube.tsx index 0e79926..ab44476 100644 --- a/src/components/ViewCube.tsx +++ b/src/components/ViewCube.tsx @@ -162,14 +162,18 @@ export function ViewCube() { const progress = isDone ? 1 : calibration.progress; const onClickCalibrar = () => { + const store = useModelStore.getState(); if (isCalibrating) { - // Cancel mid-flow + // Cancel mid-flow — restore previous camera mode if we forced ortho. + const prev = (window as any).__tsxr_prevCamMode as 'ortho' | 'persp' | undefined; + if (prev) { store.setCameraMode(prev); (window as any).__tsxr_prevCamMode = undefined; } cancelCalibration(); toast.info('Calibração cancelada'); return; } if (isDone) { - // Reset/finish state + const prev = (window as any).__tsxr_prevCamMode as 'ortho' | 'persp' | undefined; + if (prev) { store.setCameraMode(prev); (window as any).__tsxr_prevCamMode = undefined; } cancelCalibration(); return; } @@ -181,8 +185,11 @@ export function ViewCube() { toast.error('Peça travada — destranque o cadeado para calibrar'); return; } + // Force orthographic view for accurate face picking. + (window as any).__tsxr_prevCamMode = store.cameraMode; + if (store.cameraMode !== 'ortho') store.setCameraMode('ortho'); startCalibration(active.id); - toast('Calibração iniciada — clique numa face do cubo, depois na face correspondente da peça', { duration: 4000 }); + toast('Calibração em vista ortogonal — clique numa face do cubo, depois na face correspondente da peça', { duration: 4000 }); }; const onResetCalibration = () => {