feat(ui): Always-on-top gizmo overlay; remove customer STEP files (v0.3.1)
- Gizmo now renders in a separate transparent Viewport3D overlaid on the main view, so the manipulator is never occluded inside solid parts and is always grabbable from any angle - Overlay camera follows the main camera (position/dir/FOV/near-far) on every change; raw Viewport3D lets empty-area clicks pass through so orbit / zoom / measurement still work; IsHitTestVisible bound to GizmoEnabled. Mouse-up handled on the overlay (handledEventsToo), with _gizmoBakePending guarding against double-bake - Window title shows version (STPViewer V0.3.1) - Remove the two test STEP models from the repo (customer part numbers) -> moved to For_AI/ (gitignored); add *.stp/*.step to .gitignore so CAD files never get committed again - Docs updated (ARCHITECTURE Phase 11, CLAUDE.md, README) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+9
-2
@@ -89,10 +89,9 @@ STPViewer/
|
||||
│ ├── run-STPViewer.ps1.example
|
||||
│ └── run-STPViewer.sh.example
|
||||
│
|
||||
├── For_AI/ # 🚫 gitignored — AI 協作素材
|
||||
├── For_AI/ # 🚫 gitignored — AI 協作素材 + 測試模型 *.stp(客戶料號不入 git)
|
||||
│
|
||||
├── STPViewer.sln
|
||||
├── *.stp # 根目錄現有測試模型(Amphenol connector)
|
||||
│
|
||||
└── src/
|
||||
└── STPViewer/
|
||||
@@ -335,6 +334,14 @@ NuGet 相依(自動還原):`CADability`、`HelixToolkit.Wpf`、`CommunityT
|
||||
|
||||
**驗收:** 拖 X 箭頭零件僅沿世界 X 移動(與視角無關);拖環任意角度旋轉;放開後量測/干涉與顯示位置一致
|
||||
|
||||
### Phase 11 — Gizmo always-on-top 疊圖層(工作量:M)
|
||||
- [x] 操作器移到獨立透明 `Viewport3D`(`gizmoOverlay`)疊在主視窗上 → 不在主場景,**永不被實體遮擋、永遠可抓**
|
||||
- [x] `_overlayCamera` 在主相機 `Changed` 時同步(Position/方向/FOV/near-far);同尺寸 → 投影一致、操作器精準貼合
|
||||
- [x] raw Viewport3D 空白處不吃滑鼠 → 穿透回主視窗(orbit/縮放/量測不受影響);`IsHitTestVisible` 綁 `GizmoEnabled`
|
||||
- [x] 放開事件改掛 overlay(`handledEventsToo`);`_gizmoBakePending` 防同次重複烘焙
|
||||
|
||||
**驗收:** 操作器從任何視角都浮在零件上可見可抓;開啟操作器時右鍵 orbit / 量測仍正常(穿透)
|
||||
|
||||
---
|
||||
|
||||
## Future Extensions(下一輪)
|
||||
|
||||
Reference in New Issue
Block a user