Files
minsung 7ffbb1f757 Set up AI dev environment for recordingtest (#2)
- CLAUDE.md with collaboration rules and Planner/Generator/Evaluator cycle
- .claude/ agents, commands, skills, hooks per Claude Code conventions
- Sprint Contracts for sut-prober, normalizer, recorder, player, diff-reporter
- SUT catalog (EG-BIM Modeler, 187 plugins) and .gitignore excluding SUT tree
- PROGRESS.md / PLAN.md as shared agent handoff state
- Solution scaffold targeting sut-prober PoC

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 13:57:20 +09:00

3.9 KiB

SUT Catalog (v0, 정적 분석)

수동 관찰 기반 초기 카탈로그. sut-prober PoC 완료 시 기계 생성 파일로 교체된다. 마지막 갱신: 2026-04-07

개요

  • 이름: EG-BIM Modeler
  • 위치: EG-BIM Modeler/ (git 제외)
  • 실행파일: EG-BIM Modeler.exe (.NET / WPF)
  • 구성: .deps.json, .runtimeconfig.json, .pdb 동봉

핵심 어셈블리

이름 역할 PDB
HmEG.dll 자체 3D 엔진 (HmEG.pdb, HmEG.xml)
HmGeometry.dll / HmGeometry.V2.dll 지오메트리 커널
HmTriangle.dll 삼각분할
HmPG.dll (추정) 페러미터 그래프/프로파일 -
HmCommonUI.dll, HmCommonBridge.dll 공통 UI / 네이티브 브릿지 -
Editor02.HmEGAppManager.dll 앱 생명주기 / plugin 매니저 (MEF 로드 추정)
Editor03.PluginInterface.dll Plugin 기본 계약
Editor04.CommandControl.dll 명령 파이프라인 UI
Editor05.CommandCore.dll 명령 실행 코어
Editor06.CommandCustom.dll 커스텀 명령
Editor07.WidgetPluginInterface.dll 위젯 플러그인 계약
EditorCore.dll Editor 코어
Editor01.Localization.dll 다국어
Editor.AI01.HttpConnector.dll AI 연동

렌더링

  • SharpDX (D3D9/D3D11/DXGI/Direct2D, Mathematics, D3DCompiler)
  • 3D 뷰포트는 D3D surface → UIA 사각지대
  • assimp.dll / AssimpNet.dll → 메시 임포트
  • freetype6.dll, SharpFont.dll → 폰트
  • SharpVectors.* → SVG 지원

UI 스택

  • MahApps.Metro, ControlzEx, Dragablz
  • CommunityToolkit.Mvvm
  • Microsoft.Xaml.Behaviors, System.Windows.Interactivity
  • System.Windows.Controls.WpfPropertyGrid
  • Microsoft.Web.WebView2.* (WebView2 패널)

유틸/공용

  • Serilog + Serilog.Sinks.File, log4net
  • Newtonsoft.Json, Google.Protobuf, MemoryPack.Core
  • UnitsNet, FluentScheduler, System.Reactive, Flurl.Http
  • BaronSoftware.Auth.dll — 인증/라이선스 추정 (레코딩 시 민감정보 주의)

Json 설정 (텍스트 golden-file 1차 타깃)

EG-BIM Modeler/Json/:

  • Settings.json, DefaultSettings.json
  • CategoryCommands.json, DefaultCategoryCommands.json
  • CommandAlias.json, DefaultCommandAlias.json
  • KeyShortCut.json, DefaultKeyShortCut.json
  • MouseSnap.json, DefaultMouseSnap.json
  • StartupCommand.json, DefaultStartupCommand.json
  • Units.json, DefaultUnits.json
  • Materials.json
  • RecentFiles.json확실히 비결정적 (최근 사용 파일 경로)

비결정성 후보 필드 (정규화 대상)

  • RecentFiles.json 전체
  • 모든 Settings.json 내부의 경로·창 크기·마지막 실행 시간
  • GUID·타임스탬프 (포맷 확인 필요)

저장 파일 포맷

  • lmd.hme — 자체 모델 포맷 (.hme)
  • jversion.egm — 버전/메타 파일
  • 바이너리 추정 — 별도 포맷 분석 contract 필요

로컬라이제이션

  • ko-KR, en-US, ja-JP, es-ES 리소스 폴더
  • Editor01.Localization.dll 경유

MEF Plugin

  • 위치: EG-BIM Modeler/Plugins/Eg*Plugin/
  • 총 187개 (2026-04-07 스냅샷)
  • 카테고리: 생성(Box, Circle, Arc, Curve, Cone, Cylinder …), Boolean(Union/Intersection/Difference), Array(Linear/Polar/Crv), Align, Check(Border/Disjointed/Duplicated/NonManifold/Self-Intersection/Overlap/ZeroArea/ZeroCurve), Audit, Block(Edit), Chamfer, Clash, Cap, Cut, DeleteFaces, Import/Export 등
  • 전체 목록: plugins.md

recordingtest 영향 요약

  1. 1차 검증 타깃: Json/ 텍스트 파일 (정규화 쉬움)
  2. 2차: .hme/.egm 파서 필요
  3. 3D 뷰포트: 좌표 입력 + engine-bridge
  4. Plugin 카탈로그: sut-prober 자동 덤프
  5. PDB 풍부 → engine-bridge 리플렉션 비용 낮음
  6. 인증/라이선스: 자동화 테스트 환경에서 로그인 상태 유지/마스킹 필요