- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록) - `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록 — 창끼리 공유하되 저장소에는 안 올리는 장부 - 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠) - graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.7 KiB
3.7 KiB
B07 CAD 확대·트랙패드 입력 완료 아카이브
- 완료일: 2026-08-29
- 상태: 사용자 검증 완료
- 검증:
docs/raw/verification/2026-08-29_verify_B07_CAD_zoom_pan.md - 검증 방식: 사용자 실무 검증 채택, Codex 2차 교차검증 생략
완료 범위
B07 CAD 확대 조작 — 트랙패드 핀치가 브라우저까지 확대 (2026-08-29 구현 완료, 검증 대기)
증상(사용자 2026-08-29): 노트북 트랙패드로 B07 도면을 확대하면 CAD뿐 아니라 브라우저 화면 전체가 같이 확대된다.
원인: 트랙패드 핀치는 ctrl+wheel 이벤트다. CAD의 휠 처리
(input-controller.ts:handleMouseWheel)가 preventDefault()를 한 번도 부르지 않아
브라우저 기본 동작(페이지 확대)이 그대로 실행됐다. 캔버스 밖(리본·패널) 위에서는
휠 핸들러조차 없었다.
조치(요청 범위 그대로 — 확대 감각·방향은 손대지 않음):
- 캔버스 휠 리스너를
{passive:false}로 등록하고handleMouseWheel첫 줄에서preventDefault(). document에ctrl+wheel만 막는 리스너 추가 — 리본·도면층 패널 위 핀치도 브라우저를 확대시키지 않는다. ctrl 없는 휠은 그대로 둬 패널 스크롤 유지.
자체검증(공용 브라우저, 신뢰 입력 + 합성 이벤트):
- Ctrl 누른 채 실제 휠 4회 →
devicePixelRatio1.25 불변(브라우저 확대 없음), CAD 확대율만 228%→134%로 변함. - 합성 wheel
defaultPrevented: 캔버스·리본·도면층 핀치 True, ctrl 없는 패널 스크롤만 False(스크롤 살아 있음).
2차 조치(2026-08-29 사용자 승인: "트랙패드는 천천히, 마우스는 알아서 맞춰라" + "두 손가락 이동은 팬"):
- 확대를 델타 비례 지수식으로 —
exp(-delta * 지수). 마우스 휠 한 칸(deltaY 100)은 종전과 같은 10%, 트랙패드의 잔 델타는 그 크기만큼만 움직인다. 상수:WHEEL_ZOOM_EXPONENT=0.000953(=ln(1.1)/100),PINCH_ZOOM_EXPONENT=0.003(2026-08-29 사용자 "너무 느림"으로 0.0015에서 2배. 핀치 5회에 228%→264%).deltaMode가 줄·쪽 단위로 오는 브라우저를 위해 픽셀 환산도 넣었다. - 트랙패드 두 손가락 이동 = 팬. 기기 판별(
isMouseWheel)은 마우스 휠은 한 칸이 100/120px로 딱 떨어지고 가로 델타가 없다는 성질로 가른다. 트랙패드는 손가락이 움직인 만큼 잔 델타를 보내므로panScreen(-deltaX, deltaY)로 넘긴다 (문서 스크롤 방향 — 손가락 반대로 화면이 간다). - 핀치(ctrl+휠)는 기기와 무관하게 확대 유지.
자체검증(공용 브라우저 신뢰 입력, 440_pan_zoom.png):
| 입력 | 결과 |
|---|---|
| 마우스 휠 한 칸(deltaY 120) | 228% → 255%(≈12%) → 되돌리면 228% |
| 트랙패드 세로(deltaY 16 ×4) | 확대율 불변, 화면 픽셀 이동 = 팬 |
| 트랙패드 가로(deltaX 24 ×4) | 확대율 불변, 화면 픽셀 이동 = 팬 |
| 핀치(ctrl, deltaY 10 ×5) | 228% → 211%, devicePixelRatio 1.25 불변 |
보류 — 사용자 승인 후 진행할 후속 제안:
- 핀치 방향 — 지금은 손가락을 벌리면 축소된다(일반 휠의 반전 규칙, 2026-08-02 결정을 그대로 탄다). OS 관행은 벌리면 확대. 휠 규칙과 얽혀 있어 사용자 확정 필요.
- 트랙패드 팬 방향 — 지금은 문서 스크롤 방향(손가락 내리면 화면이 위로). 손가락을 따라오는 "쥐고 끌기" 방향을 원하면 부호 한 줄.
setScreenScale의 매 호출console.log— 확대할 때마다 콘솔에 한 줄씩, 핀치 중에는 초당 수십 줄. 제거 여부 확인 필요.