import { Button, Input, Label, Slider, Switch } from '@hm-design/ui'; import { RotateCcw } from 'lucide-react'; import { DraggablePanel } from './DraggablePanel'; import { SlidersHorizontal } from 'lucide-react'; import type { PersistedOptions } from '../hooks/useDwgViewer'; function SliderNumberRow({ label, value, min, max, step, unit, onChange, }: { label: string; value: number; min: number; max: number; step: number; unit?: string; onChange: (v: number) => void; }) { return (
{ const v = Number(e.target.value); if (Number.isFinite(v)) onChange(v); }} /> {unit && {unit}}
onChange(v)} />
); } export interface OptionsPanelProps { open: boolean; onClose: () => void; options: PersistedOptions; is25D: boolean; lineweightClasses: number[]; onSetGrid: (on: boolean) => void; onSetZoomSpeed: (v: number) => void; onSetZScale: (v: number) => void; onSetLineweightOn: (on: boolean | null) => void; onSetLineweightScale: (v: number | null) => void; onSet25D: (on: boolean) => void; onReset: () => void; } export function OptionsPanel({ open, onClose, options, is25D, lineweightClasses, onSetGrid, onSetZoomSpeed, onSetZScale, onSetLineweightOn, onSetLineweightScale, onSet25D, onReset, }: OptionsPanelProps) { const lwScale = options.lineweightScale ?? 11; const lwPreview = lineweightClasses.length > 0 ? lineweightClasses.map((mm) => `${mm.toFixed(2)}mm → ${(mm * lwScale).toFixed(1)}px`).join(' · ') : `이 도면에는 굵은 선이 없습니다 (0.50mm 였다면 ${(0.5 * lwScale).toFixed(1)}px)`; return ( } initial={{ left: window.innerWidth - 676, top: 56 }} width={340} height={520} open={open} onClose={onClose} headerActions={ } >

선가중치

{lwPreview}

AutoCAD의 "선가중치 설정 → 표시 배율"과 동일합니다.

표시

2.5D

좌클릭 드래그로 회전, 중간/우클릭 드래그로 이동합니다.

); }