feat/vtk-3d-view #7

Merged
gaozheng merged 301 commits from feat/vtk-3d-view into main 2026-06-27 18:43:52 +08:00
1 changed files with 17 additions and 1 deletions
Showing only changes of commit d539fc1b73 - Show all commits

View File

@ -50,7 +50,23 @@ f00a214 feat(data): VoxelGenerateRequest/SliceGenerateRequest DTO + toJson
**Task 11 缺口**`CategoryAnalysisTab`/`CategorySection` 尚无 colAnalysis 的 `setItemChecked`、异常子区 API三维体段需迁入 Column3DAnalysis 异常控件(参 `src/app/panels/columns/Column3DAnalysis.{hpp,cpp}` + main `:397 refreshAnomalies`)。 **Task 11 缺口**`CategoryAnalysisTab`/`CategorySection` 尚无 colAnalysis 的 `setItemChecked`、异常子区 API三维体段需迁入 Column3DAnalysis 异常控件(参 `src/app/panels/columns/Column3DAnalysis.{hpp,cpp}` + main `:397 refreshAnomalies`)。
**Task 12 要点**plan §Task12 Step1-8 已详列):① 对象树勾选→confType 分流拉取→splitByCategory→analysisTab setBuckets② analysisTab checkedDatasetsChanged→并入 checkedProfiles/checkedAnalysis→pushChecked③ generateVolumeRequested→`VolumeParamsDialog` 扩展(左侧勾选源树·可二次增删 + 右侧「生成位置」下拉=项目内 GS/TM→组装 `VoxelGenerateRequest`→`createVolume(req)`;④ 工具条 `VtkViewToolbar` 叠加中央 QVTK + AxesSettingsDialog 接坐标轴;⑤ createSlice 补 `nav.currentProjectId()`;⑥ 删旧 checkedTmsChanged/col3D()/colAnalysis()/splitByDimension/Column3D* 引用 + setStructure 传对象树同源 StructNode容器分层。**建议新会话以充足上下文做,每步 build + 用户真实验证。** **Task 12 要点**plan §Task12 Step1-8 已详列):① 对象树勾选→confType 分流拉取→splitByCategory→analysisTab setBuckets② analysisTab checkedDatasetsChanged→并入 checkedProfiles/checkedAnalysis→pushChecked③ generateVolumeRequested→`VolumeParamsDialog` 扩展(左侧勾选源树·可二次增删 + 右侧「生成位置」下拉=项目内 GS/TM→组装 `VoxelGenerateRequest`→`createVolume(req)`;④ 工具条 `VtkViewToolbar` 叠加中央 QVTK + AxesSettingsDialog 接坐标轴;⑤ createSlice 补 `nav.currentProjectId()`;⑥ 删旧 checkedTmsChanged/col3D()/colAnalysis()/splitByDimension/Column3D* 引用 + setStructure 传对象树同源 StructNode容器分层
#### ✅ Task 12 阶段 A 已完成commit 901c84e—— 核心数据流接通
- `refreshAnalysis` 重构为统一入口:`lastSourceRows + volumeRows + sliceRows` → `splitByCategory``analysisTab->setBuckets`5 段出数据)+ `splitByDimension(...).dim2D``col2D`
- 对象树 `checkedTmsChanged` 接线finish 改 `*lastSourceRows=*acc; refreshAnalysis()`(仍用 checkedTmsChanged**confType 分流见剩余①**)。
- `analysisTab` 三接线checkedDatasetsChanged→按 isSlice/isVolume 分流(切片→checkedSliceIds+syncSlices / 体素→checkedAnalysis / 反演剖面→checkedProfiles)→pushCheckedgenerateVolumeRequested→VolumeParamsDialog→组装 `VoxelGenerateRequest`→`createVolume(req)`detailRequested→Slice/Volume 属性对话框。
- `clearCentral` 改走 lastSourceRows/refreshAnalysis。
- **现可验**:勾对象树 TM → 电阻率/视/瞬变段出数据 → 勾选段内 ds → 帘面渲染;生成三维体 → voxel 段出现 → 勾选渲体;切片段同理。
#### 🔧 Task 12 剩余精修6 项,新会话做,每步 build + 真实验证)
1. **confType 分流**:对象树接线从 `checkedTmsChanged(QStringList tmIds)``checkedSourcesChanged(QList<DataSource>)``loadRowsAsync(projId, src.id, src.confType, 3,1,100000)` 第3参传 src.confType支持 GS 直挂 ds现仅 TM。改 main `:~1171` 对象树接线 + `:~1330` 第二个 checkedTmsChanged→nav 接线。
2. **dict 填充**main 创建 `DatasetFieldDictionary` 并传 `new ColumnDrawer(centerWidget, &dict)`;对每个反演 dsType 调 `loadDatasetFormAsync`→`parseFieldMapping`→`dict.setFields`(装置/日期筛选才生效,现 dict=nullptr 退化不筛)。
3. **工具条接入**:实例化 `VtkViewToolbar` 叠加中央 QVTK信号接 sceneCtrlviewRequested/zoom/fit 接现有 c3 对应槽 :647 区axesSettingsRequested→弹 `AxesSettingsDialog`→应用坐标轴VE 控件迁工具条。
4. **VolumeParamsDialog 扩展**:左侧勾选源 ds 树(按 GS 分组·可二次增删) + 右侧「生成位置」下拉(项目内 GS/TM默认 源单GS→该GS/跨GS→项目根)→ 填 `req.structParentId/structParentConfType`
5. **异常迁三维体段Task 11 本体)**:给 `CategorySection`(voxel 段)/`CategoryAnalysisTab` 加异常子区 + `setItemChecked`/sliceRequested/sliceDelete/sliceSave 等 API`Column3DAnalysis` :395 refreshAnomalies 控件main `refreshAnomalies`(:~397) 改用 analysisTab。
6. **退役旧栏**:删 main 中 c3/ca 旧接线(:641/669-760 区)、col3D()/colAnalysis() 调用、`Column3D*` 实例;删 ColumnDrawer 的 col3D_/colAnalysis_ 成员+访问器;评估删 splitByDimensiondim2D 改轻量过滤)。
- 切片保存/关闭(:584/623 setItemChecked)、createSlice projectId(:579/745) 随 #5/#1 一并处理。
> 下方为初版交接spec/plan 设计定论,仍有效)。 > 下方为初版交接spec/plan 设计定论,仍有效)。