Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-05-24 20:26:24 +00:00
parent ba87af34f4
commit ff7f69191d
+10 -3
View File
@@ -162,14 +162,18 @@ export function ViewCube() {
const progress = isDone ? 1 : calibration.progress; const progress = isDone ? 1 : calibration.progress;
const onClickCalibrar = () => { const onClickCalibrar = () => {
const store = useModelStore.getState();
if (isCalibrating) { 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(); cancelCalibration();
toast.info('Calibração cancelada'); toast.info('Calibração cancelada');
return; return;
} }
if (isDone) { 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(); cancelCalibration();
return; return;
} }
@@ -181,8 +185,11 @@ export function ViewCube() {
toast.error('Peça travada — destranque o cadeado para calibrar'); toast.error('Peça travada — destranque o cadeado para calibrar');
return; 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); 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 = () => { const onResetCalibration = () => {