GhiVideo 소스 복제 — v4 작업 시작 기준

기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제.
(node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 14:32:51 +09:00
co-authored by Claude Fable 5
commit d38b842e8d
362 changed files with 46358 additions and 0 deletions
@@ -0,0 +1,47 @@
# 화면표시 옵션 — "기본값" 버튼 + 설명문구 툴팁화
**날짜**: 2026-06-24
**수정 파일**: `client/src/components/overlay/StationOverlay.tsx`
## 요구
1. 화면표시 옵션 창 우측 하단에 **"기본값"** 버튼 → 누르면 옵션 일괄 복귀.
2. 컨트롤 사이의 **설명문구**가 세로 공간을 차지 → **마우스 오버 툴팁**으로 바꿔 패널 높이 축소.
## 구현
### 1. 기본값(DISPLAY_DEFAULTS) + 버튼
- 사용자 확정 기본값(스크린샷 기준)을 모듈 상수로 정의, **useState 초기값과 단일 출처 공유**:
```ts
const DISPLAY_DEFAULTS = {
showCenterline: true, showDronePath: true,
dronePathZ: 58, dronePathAlpha: 0.75,
smoothHalf: 60, emaAlpha: 1.0,
maxPoiFront: 310, maxPoiSide: 135,
poiDroneHeight: true, droneHeightDrop: 24,
};
```
(이전 코드 기본값 dronePathZ 78 / maxPoiFront 240 / maxPoiSide 80 → 스크린샷 값으로 갱신.)
- `resetDisplayDefaults()` 콜백이 위 10개 상태를 일괄 set. POI 보정/편집모드는 제외(별도 "보정 초기화" 유지).
- 패널 최하단에 카메라 패널의 "초기화"와 동일한 스타일의 **"기본값"** 버튼(우측 정렬) 추가.
- 참고: localStorage 영속화 대상(maxPoiFront/Side·smoothHalf·emaAlpha·params)은 버튼 클릭 후 디바운스 저장으로 기본값이 유지됨. 나머지(dronePathZ 등)는 원래 세션 한정.
### 2. 설명문구 → 툴팁
- `ParamRow`에 `tip?: string` 추가: 있으면 라벨에 **점선 밑줄 + 마우스오버 네이티브 툴팁**(`title`).
- 별도 `InfoTip` 컴포넌트(작은 ``, `title` 툴팁) 추가 → 섹션 헤더용.
- 기존 `text-gray-600` 설명 div 6개 제거하고 해당 컨트롤/헤더의 tip으로 이전:
| 기존 설명 div | 이전 위치 |
|---|---|
| GPS 측정점 표고/α | 경로표고·투명도 ParamRow tip |
| ±fr=±ms | smooth ParamRow tip |
| α→lag ms | EMA α ParamRow tip |
| 진행방향 앞/옆 이내 표시 | POI 앞쪽·옆쪽 ParamRow tip |
| POI 드론 아래 배치 | 이격거리 ParamRow tip |
| 편집/DEM 안내 | "POI 위치 편집" 헤더 InfoTip |
- 편집모드 안내문(긴 1줄)도 헤더 툴팁으로 이전, 상태줄은 `보정된 POI N개`/`드래그 중`만 표시.
- 동적 수치(ms·lag·현재값)는 툴팁 문자열에 그대로 보간 → 정보 손실 없음.
## 검증
- `npm run build -w client` (node20) tsc + vite build 통과.
**소요 시간**: 약 25분
**Context 사용량**: input ~140k / output ~9k tokens