Skip to content

feat/MAT-354 타입/모델 추출#298

Open
b0nsu wants to merge 1 commit intodevelopfrom
refactor/mat-354-type-model
Open

feat/MAT-354 타입/모델 추출#298
b0nsu wants to merge 1 commit intodevelopfrom
refactor/mat-354-type-model

Conversation

@b0nsu
Copy link
Copy Markdown
Collaborator

@b0nsu b0nsu commented Apr 28, 2026

Summary

DrawingCanvas에서 타입과 유틸리티를 model/ 디렉토리로 추출. readonly 타입(ReadonlyPoint, ReadonlyStroke)과 StrokeBounds 타입을 도입하여 후속 이슈(MAT-358 undo/redo, MAT-360 지우개 최적화)의 기반을 마련.

Linear

Changes

  • model/drawingTypes.ts: Point, Stroke, TextItem, DrawingCanvasRef 추출 + ReadonlyPoint, ReadonlyStroke, StrokeBounds 추가
  • model/strokeUtils.ts: deepCopyStrokes, deepCopyTexts, safeMax 추출 + computeStrokeBounds (single-pass O(n)) 추가
  • smoothing.ts: 로컬 Point 제거, drawingTypes에서 import
  • DrawingCanvas.tsx: 인라인 타입/유틸 제거, model에서 import
  • index.ts: 새 타입/유틸 re-export 추가

Testing

  • pnpm --filter @repo/pointer-native-drawing lint 통과
  • 타입 추출만으로 런타임 동작 변경 없음

Risk / Impact

  • 영향 범위: @repo/pointer-native-drawing 패키지 내부 구조 변경만. 외부 API 동일
  • 확인이 필요한 부분: 없음
  • 배포 시 유의사항: 없음

- model/drawingTypes.ts: Point, Stroke, TextItem, DrawingCanvasRef 추출
  + ReadonlyPoint, ReadonlyStroke (불변 참조용, deepCopy 줄이는 기반)
  + StrokeBounds (지우개 히트 테스트 최적화 기반)
- model/strokeUtils.ts: deepCopyStrokes, deepCopyTexts, safeMax 추출
  + computeStrokeBounds (single-pass O(n) AABB 계산)
- smoothing.ts: 로컬 Point 제거, drawingTypes에서 import
- DrawingCanvas.tsx: 인라인 타입/유틸 제거, model에서 import
- index.ts: 새 타입/유틸 re-export 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@linear
Copy link
Copy Markdown

linear Bot commented Apr 28, 2026

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pointer-admin Ready Ready Preview, Comment Apr 28, 2026 11:22pm

@b0nsu b0nsu changed the title [feat/MAT-354] 타입/모델 추출 feat/MAT-354 타입/모델 추출 Apr 29, 2026
@b0nsu b0nsu requested a review from sterdsterd April 29, 2026 01:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant