diff --git a/src/components/ViewerControls.tsx b/src/components/ViewerControls.tsx
index dfc2695..a70a402 100644
--- a/src/components/ViewerControls.tsx
+++ b/src/components/ViewerControls.tsx
@@ -1,12 +1,30 @@
-import { Eye, Grid3X3, Ruler, Trash2, Camera } from 'lucide-react';
+import { Eye, Grid3X3, Ruler, Trash2, Camera, LayoutGrid, Palette } from 'lucide-react';
import { Slider } from '@/components/ui/slider';
import { Button } from '@/components/ui/button';
+import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';
import { useModelStore } from '@/stores/useModelStore';
import { useCallback } from 'react';
import { toast } from 'sonner';
+const WIRE_COLORS = [
+ { label: 'Cinza', value: '#8899aa' },
+ { label: 'Vermelho', value: '#ef4444' },
+ { label: 'Verde', value: '#22c55e' },
+ { label: 'Azul', value: '#3b82f6' },
+ { label: 'Amarelo', value: '#eab308' },
+ { label: 'Laranja', value: '#f97316' },
+ { label: 'Branco', value: '#e2e8f0' },
+];
+
export function ViewerControls() {
- const { opacity, setOpacity, renderMode, setRenderMode, measureMode, setMeasureMode, measurements, clearMeasurements, measurePoints, addScreenshot } = useModelStore();
+ const {
+ opacity, setOpacity, renderMode, setRenderMode,
+ measureMode, setMeasureMode, measurements, clearMeasurements,
+ measurePoints, addScreenshot,
+ showGrid, setShowGrid,
+ wireframeColor, setWireframeColor,
+ wireframeThickness, setWireframeThickness,
+ } = useModelStore();
const handleScreenshot = useCallback(() => {
const canvas = document.querySelector('canvas');
@@ -20,7 +38,7 @@ export function ViewerControls() {
}, [addScreenshot]);
return (
-
+
{/* Opacity slider */}
@@ -39,6 +57,17 @@ export function ViewerControls() {
/>
+ {/* Grid toggle */}
+
+
{/* Render mode toggle */}
+ {/* Wireframe settings popover */}
+ {renderMode === 'wireframe' && (
+
+
+
+
+
+
+
Cor do Wireframe
+
+ {WIRE_COLORS.map((c) => (
+
+
+
+
+ Espessura
+ {wireframeThickness.toFixed(1)}
+
+
setWireframeThickness(v)}
+ />
+
+
+
+ )}
+
{/* Measure tool */}