Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-05-24 19:28:29 +00:00
parent 4cf157b7cd
commit e5e1eac733
3 changed files with 14 additions and 19 deletions
+8 -10
View File
@@ -11,13 +11,14 @@ import * as THREE from 'three';
import { elementKey, sceneRef } from '@/components/three/ModelViewer'; import { elementKey, sceneRef } from '@/components/three/ModelViewer';
const WIRE_COLORS = [ const WIRE_COLORS = [
{ label: 'Cinza', value: '#8899aa' }, { label: 'Ciano (radiante)', value: '#00f3ff' },
{ label: 'Vermelho', value: '#ef4444' }, { label: 'Vermelho', value: '#ef4444' },
{ label: 'Verde', value: '#22c55e' }, { label: 'Verde', value: '#22c55e' },
{ label: 'Azul', value: '#3b82f6' }, { label: 'Azul', value: '#3b82f6' },
{ label: 'Amarelo', value: '#eab308' }, { label: 'Amarelo', value: '#eab308' },
{ label: 'Laranja', value: '#f97316' }, { label: 'Laranja', value: '#f97316' },
{ label: 'Branco', value: '#e2e8f0' }, { label: 'Branco', value: '#e2e8f0' },
{ label: 'Cinza', value: '#8899aa' },
]; ];
export function ViewerControls() { export function ViewerControls() {
@@ -108,22 +109,19 @@ export function ViewerControls() {
<ScaleSelector /> <ScaleSelector />
<Button <Button
variant={renderMode !== 'solid' ? 'default' : 'outline'} variant={renderMode === 'edges' ? 'default' : 'outline'}
size="sm" size="sm"
className="gap-2 h-9" className="gap-2 h-9"
onClick={() => { onClick={() => setRenderMode(renderMode === 'edges' ? 'solid' : 'edges')}
const next = renderMode === 'solid' ? 'wireframe' : renderMode === 'wireframe' ? 'edges' : 'solid';
setRenderMode(next);
}}
> >
{renderMode === 'edges' ? <Box className="h-3.5 w-3.5" /> : <Grid3X3 className="h-3.5 w-3.5" />} <Box className="h-3.5 w-3.5" />
<span className="font-mono text-xs"> <span className="font-mono text-xs">
{renderMode === 'solid' ? 'Sólido' : renderMode === 'wireframe' ? 'Wireframe' : 'Bordas'} {renderMode === 'edges' ? 'Bordas' : 'Sólido'}
</span> </span>
</Button> </Button>
{/* Wireframe/Edges settings popover */} {/* Edges color/thickness/threshold popover */}
{renderMode !== 'solid' && ( {renderMode === 'edges' && (
<Popover> <Popover>
<PopoverTrigger asChild> <PopoverTrigger asChild>
<Button variant="outline" size="sm" className="gap-2 h-9"> <Button variant="outline" size="sm" className="gap-2 h-9">
+4 -7
View File
@@ -342,15 +342,12 @@ export function XRHud({ freeMove, onToggleFreeMove, placementMode = false, onTog
</Button> </Button>
<Button <Button
variant={renderMode !== 'solid' ? 'default' : 'outline'} variant={renderMode === 'edges' ? 'default' : 'outline'}
size="sm" className="h-8 gap-1.5 text-[10px] font-mono" size="sm" className="h-8 gap-1.5 text-[10px] font-mono"
onClick={() => { onClick={() => setRenderMode(renderMode === 'edges' ? 'solid' : 'edges')}
const next = renderMode === 'solid' ? 'wireframe' : renderMode === 'wireframe' ? 'edges' : 'solid';
setRenderMode(next);
}}
> >
{renderMode === 'edges' ? <Box className="h-3.5 w-3.5" /> : <Grid3X3 className="h-3.5 w-3.5" />} <Box className="h-3.5 w-3.5" />
{renderMode === 'solid' ? 'Sólido' : renderMode === 'wireframe' ? 'Wire' : 'Bordas'} {renderMode === 'edges' ? 'Bordas' : 'Sólido'}
</Button> </Button>
<Button <Button
+2 -2
View File
@@ -485,10 +485,10 @@ export const useModelStore = create<ModelStore>((set, get) => ({
setGridAutoFollow: (gridAutoFollow) => set({ gridAutoFollow }), setGridAutoFollow: (gridAutoFollow) => set({ gridAutoFollow }),
nudgeGridY: (delta) => set((s) => ({ gridY: s.gridY + delta, gridAutoFollow: false })), nudgeGridY: (delta) => set((s) => ({ gridY: s.gridY + delta, gridAutoFollow: false })),
wireframeColor: '#8899aa', wireframeColor: '#00f3ff',
setWireframeColor: (wireframeColor) => set({ wireframeColor }), setWireframeColor: (wireframeColor) => set({ wireframeColor }),
wireframeThickness: 1, wireframeThickness: 2,
setWireframeThickness: (wireframeThickness) => set({ wireframeThickness }), setWireframeThickness: (wireframeThickness) => set({ wireframeThickness }),
edgeThresholdAngle: 15, edgeThresholdAngle: 15,