TypeScript
pascalorg / editor
3D 건축 프로젝트를 만들고 공유하세요.
15.8K
2.1K
약 2개월 전
이 프로젝트에 대해
pascalorg 님의 editor 프로젝트는 GitHub에서 15.8K개의 별을 받으며 많은 개발자들의 주목을 받고 있습니다. 특히 TypeScript 환경에서 유용하게 활용될 수 있으며, 최근 오픈소스 커뮤니티에서 활발한 기여와 토론이 이루어지고 있는 트렌딩 레포지토리입니다.
Language Breakdown
TypeScript 100%CSS 0%Shell 0%JavaScript 0%
🇰🇷 한국어 번역 README
캐시 히트파스칼 에디터
React Three Fiber와 WebGPU로 구축된 3D 건물 에디터입니다.
저장소 구조
이 저장소는 세 가지 주요 패키지를 포함한 Turborepo 모노레포입니다:
역할 분리
| 패키지 | 책임 |
|---|---|
| @pascal-app/core | 노드 스키마, 씬 상태(Zustand), 시스템(지오메트리 생성), 공간 쿼리, 이벤트 버스 |
| @pascal-app/viewer | React Three Fiber를 통한 3D 렌더링, 기본 카메라/컨트롤, 후처리 |
| apps/editor | UI 컴포넌트, 도구, 커스텀 동작, 에디터 전용 시스템 |
**뷰어(viewer)**는 합리적인 기본값으로 씬을 렌더링합니다. **에디터(editor)**는 상호작용 도구, 선택 관리, 편집 기능으로 이를 확장합니다.
스토어
각 패키지는 상태 관리를 위해 자체 Zustand 스토어를 가지고 있습니다:
| 스토어 | 패키지 | 책임 |
|---|---|---|
useScene | @pascal-app/core | 씬 데이터: 노드, 루트 ID, 변경된(Dirty) 노드, CRUD 작업. IndexedDB에 영구 저장되며 Zundo를 통한 실행 취소/재실행 지원 |
useViewer | @pascal-app/viewer | 뷰어 상태: 현재 선택(건물/층/구역 ID), 층 표시 모드(쌓기/분리/단독), 카메라 모드 |
useEditor | apps/editor | 에디터 상태: 활성 도구, 구조 레이어 가시성, 패널 상태, 에디터 전용 환경 설정 |
접근 패턴:
핵심 개념
노드(Nodes)
노드는 3D 씬을 설명하는 데이터 원시 요소입니다. 모든 노드는 BaseNode를 확장합니다:
노드 계층 구조:
🌐 본 텍스트는 빠른 이해를 돕기 위한 요약 번역본입니다. 정확한 기술 정보 및 전체 코드는 GitHub 원문에서 확인하실 수 있습니다.
이 정보는 AI가 자동으로 분석한 결과입니다. 정확한 내용은 원문을 확인하세요.
pascalorg/editor GitHub 원문 바로가기 →