From abce5376d1cfecf5803e937efe57e0e245900175 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 9 May 2026 13:39:56 +0000 Subject: [PATCH] Changes Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com> --- src/components/XRHud.tsx | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/components/XRHud.tsx b/src/components/XRHud.tsx index dde68b1..25dab08 100644 --- a/src/components/XRHud.tsx +++ b/src/components/XRHud.tsx @@ -2,7 +2,7 @@ import { useState } from 'react'; import { Eye, LayoutGrid, Grid3X3, Box, Ruler, Trash2, Camera, Move, RotateCw, RefreshCw, ChevronUp, ChevronDown, Grip, - ClipboardCheck, X, Crosshair, Magnet, HelpCircle, + ClipboardCheck, X, Crosshair, Magnet, HelpCircle, Maximize2, } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Slider } from '@/components/ui/slider'; @@ -21,9 +21,21 @@ interface XRHudProps { onTogglePlacement?: () => void; snapToPlanes?: boolean; onToggleSnap?: () => void; + allowScale?: boolean; + onToggleAllowScale?: () => void; } const helpItems = [ + { + title: 'Agarrar a peça (Grip)', + icon: '✊', + desc: 'Aproxime o controle e APERTE O GRIP LATERAL — a peça vira extensão da sua mão (mover + girar em 6 eixos). Solte o grip para fixar na posição.', + }, + { + title: 'Two-Hand (girar/escalar)', + icon: '🤲', + desc: 'Aperte o grip dos DOIS controles ao mesmo tempo. Gire os punhos para rotacionar a peça pelo eixo entre as mãos. Aproxime/afaste para escalar (apenas se o toggle "Escala" estiver ON).', + }, { title: 'Posicionar (Hit-Test)', icon: '🎯', @@ -35,9 +47,9 @@ const helpItems = [ desc: 'Quando ativado, o modelo se alinha automaticamente a planos detectados (chão, parede, mesa). O retículo fica azul quando snap está ativo.', }, { - title: 'Mover (Free Move)', + title: 'Joystick (ajuste fino)', icon: '🕹️', - desc: 'Joystick esquerdo: move o modelo nos eixos X/Y. Joystick direito (vertical): move no eixo Z (profundidade). Quando desativado, é necessário segurar o grip para mover.', + desc: 'Esquerdo: X (lateral) / Z (frente-trás). Direito: rotação Y / altura Y. Aperte o TRIGGER para acelerar (leve = passo fino, forte = passo rápido). O joystick é desativado enquanto você segura o grip (que tem prioridade para agarrar).', }, { title: 'Grid', @@ -80,13 +92,13 @@ const helpItems = [ desc: 'Rotaciona o modelo ao redor de cada eixo com incrementos de 0.1°. X = inclinação frontal, Y = giro lateral, Z = tombamento.', }, { - title: 'Controladores Quest 3', + title: 'Botões A/B (Touch Plus)', icon: '🎮', - desc: 'Joystick Esq: mover X/Y • Joystick Dir: mover Z + rotação Y • Grip (segurar): habilita movimento quando Free Move está desativado.', + desc: 'Atualmente reservados para o sistema (menu Meta). O fluxo natural usa Grip para agarrar e Trigger para acelerar o joystick.', }, ]; -export function XRHud({ freeMove, onToggleFreeMove, placementMode = false, onTogglePlacement, snapToPlanes = true, onToggleSnap }: XRHudProps) { +export function XRHud({ freeMove, onToggleFreeMove, placementMode = false, onTogglePlacement, snapToPlanes = true, onToggleSnap, allowScale = false, onToggleAllowScale }: XRHudProps) { const [expanded, setExpanded] = useState(false); const [checklistOpen, setChecklistOpen] = useState(false); const [helpOpen, setHelpOpen] = useState(false);