feat/vtk-3d-view #7
|
|
@ -51,11 +51,17 @@
|
|||
**实现拆解(设计文档 §6,按依赖排序)**:
|
||||
1. ~~三维体 mock 渲染~~ **✅ 已实现(编译绿,待 GUI 实测)**——见 §3 与计划 `2026-06-17-vtk-3d-volume-create-flow.md`。`Api3dRepository::loadVolume` 已接通(多源复用 loadSection → IDW → VolumeGrid + 色阶交付);`VolumeBuildParams` 必存参数、values 惰性重算+缓存(**不冻结 gridSpec**,改用源 ds 锁定不变式,留校验 TODO)。
|
||||
2. ~~切片交互接通三维体~~ **✅ 已有**(`SliceTool`/`InteractionManager`:四向创建/滚轮推进/双击正视/翻转/关闭/选中高亮全在)。
|
||||
3. **✅ 已实现(3a,编译绿,未提交,待 GUI 实测)**——VTK 视图切片右键菜单(`PickInteractorStyle` 右键→`InteractionManager::onSliceContextMenuRequested`→main.cpp 弹 QMenu):正视图/翻转/关闭(接现有)、导出图片(PNG)/导出dat(`SliceExport.{hpp,cpp}`)、**保存**(`Api3dRepository::createSlice` 内存 mock→dd_slice 行进三维分析栏、挂父体下,`sliceRows()`+`refreshAnalysis` 合并)、创建异常(占位→#4)。`deleteSlice` 亦改 mock。
|
||||
- **3b 待做(拆出)**:已保存切片在三维分析栏勾选后的**重渲染**(切片现仅为交互 widget,从 spec 重建需重构面内两轴 + 与父体加载排序 + 跨层编排);分析栏的保存/另存/导出(依赖重渲染)。
|
||||
4. 异常:切片右键创建异常(圈定+保存对话框含截图)→ **接真实端点**。VTK 切片右键菜单的「创建异常」入口已占位。
|
||||
5. 分析栏右键接线:**部分完成**——`visibilityToggled`(显隐,`VtkSceneView::toggleDatasetVisibility`)、`sliceDeleteRequested`(删 mock 切片+刷新) 已接;`colorScaleRequested` 占位;`sliceSave/SaveAs/Export`(分析栏入口) 待 3b。
|
||||
3. **✅ 完成(3a/3b/3c,已提交 afdd98f+d56e35f,用户实测通过)**——切片完整生命周期(未保存↔已保存统一状态模型):
|
||||
- VTK 视图切片右键菜单(`PickInteractorStyle`右键→`InteractionManager`高优先级(1.0)交互器观察者抢右键→`onSliceContextMenuRequested`→main 弹 QMenu):创建异常(占位#4)/保存/导出▸(图片·dat)/正视图/翻转/关闭。
|
||||
- **保存按状态分派**:未保存→`createSlice`+`tagSelectedSlice`链接当前切片+列表自动勾选(`setItemChecked`);已保存→`saveSlice`覆盖位姿。**无重复切片**。
|
||||
- **精确几何持久化**:`SliceSpec`存 axis+Origin/Point1/Point2 三点;`SliceTool`还原构造逐点重建→重渲染尺寸/朝向一致。
|
||||
- **已保存切片重渲染**:分析栏勾选→`syncSlices`在当前活动体上还原(`showSavedSlice`),取消→移除;靠`onVolumeChanged→syncSlices`解决父体异步到场。dd_slice 不进控制器(避免 loadSection 失败),main 编排走 InteractionManager。
|
||||
- **场景↔列表同步**:VTK「关闭」已保存切片→`onSliceClosed`→列表取消勾选。`Column3DAnalysis::setDatasets`按 dsId 保留勾选+仅勾选集变化才发信号(修"保存切片连带取消体勾选/列表重置")。
|
||||
- 导出:`SliceExport.{hpp,cpp}`(图片=切片上采样2048上色 PNG;dat=重采样标量网格)。切片持久化=`Api3dRepository` createSlice/saveSlice/deleteSlice 内存 mock + sliceRows/isSliceDataset/sliceSpec。
|
||||
4. 异常:切片右键创建异常(圈定+保存对话框含截图)→ **接真实端点**。VTK 切片右键菜单的「创建异常」入口已占位(弹"开发中")。**下一主线**。
|
||||
5. 分析栏右键接线:**已完成**(切片 保存/保存为/导出▸/删除 全接;体 切片▸/详情);`colorScaleRequested` 仍占位("色阶开发中")。已移除"显示/隐藏"(勾选即显隐)。
|
||||
6. 三维体/切片/异常详情面板(源数据/插值参数/色阶/测量点数体积/异常列表)。
|
||||
- **其它小欠项**:三维分析栏完整三级树"对象→三维体→切片"里"对象"根层未套(体目前是顶层);真实色阶编辑。
|
||||
|
||||
**其它小项**:坐标轴「O点位置」「字体」弹框仍是 stub(main.cpp:382 TODO P4)。
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue