gaozheng
|
7815bf7d4c
|
docs: VTK 重构实施进度交接(Task 1-10 完成,Task 11-12 接线指引)
|
2026-06-24 19:28:09 +08:00 |
gaozheng
|
a7d558bbfa
|
docs: VTK 分类视图重构会话交接文档
|
2026-06-24 17:19:19 +08:00 |
gaozheng
|
ef10c354c9
|
docs: VTK 重构实施 plan + 生成三维体入口/归属调整
- 新增实施计划(8 phase/12 task, TDD bite-sized)
- 客户确认变动: 新增三维体入口回段头(数据类型层面)+对话框「生成位置」选归属; 归属放开 GS/项目根/TM(structParentConfType 1或2, 默认单GS挂该GS/跨GS挂项目根)
- spec 同步该变动; openapi 升 v0.6-draft
|
2026-06-24 17:17:32 +08:00 |
gaozheng
|
eceb964aa1
|
docs: VTK 三维分类视图重构 spec + 三维体归属层级修订
- 新增 spec: 按数据类型大类(电阻率/视电阻率/瞬变电磁/三维体/切片)分组视图; 对象树 GS 三态双开关联动 + 项目根固定; 装置类型(arrayType)/采集时间(collectTime)筛选; VTK 画布工具条; createVolume/createSlice 组装真实请求体 DTO(走 mock)
- vtk-3d-openapi.json v0.5-draft: 三维体归属由 TM 改为 GS/项目根(structParentConfType=1)
- 经 opus 子代理评审并据评审修订(GS 三态停用 AutoTristate 改手动/properties 两接口形态澄清/帘面勾选链承接等)
|
2026-06-24 16:22:26 +08:00 |
gaozheng
|
cec41e3539
|
feat(vtk): ViewAdaptive 接异步重组(update 不阻塞,view 拖动不卡)+修 C2 维度用 store.dims
把 C3-1 AsyncRegionBuilder 接进 ViewAdaptiveVolumeSource:updateView 只提交目标
(selectLod→RegionTarget→requestTarget),不在主线程重组、立即返回;currentImages/
sliceSource 经 builder.takeLatest 取最新已就绪(没新结果用上一张),空选区不提交、
保留上一张。新增 AsyncRegionBuilder::takeLatest(int&) 非破坏式重载随结果回传 level,
供 lastLevel 同步。
C2 MEDIUM:RegionReorganizer 维度改用 store.dims(level)(单一真源),弃自算
ceil(n/2^level),防 store 降采样规则漂移。
gpr_poc view 切异步:拖动中 InteractionEvent 持续提交目标(非阻塞)+33ms 重复定时器
非阻塞拉取后台就绪纹理换上→主线程不被重组卡住(跟手);preview/smoke/默认取景用
阻塞轮询保证拿到首图。
测试:ViewAdaptive 9 测(原 6 调为异步轮询版+新增 3:AsyncUpdateEventuallyReady/
UpdateDoesNotBlock(<50ms)/UsesStoreDimsNotSelfComputed),AsyncRegionBuilder 5 测仍绿;
全量 382 测通过。
|
2026-06-24 10:22:22 +08:00 |
gaozheng
|
aa559c2bb7
|
docs: 后端 API 设计会话交接文档(三维体/切片/异常)
记录本会话设计定论、剩余工作、待确认问题与代码地图,
配套 docs/api/vtk-3d-openapi.json 与实现交接 HANDOFF-vtk-3d.md。
|
2026-06-24 08:55:47 +08:00 |
gaozheng
|
ba59c8861a
|
feat(poc): build-stream 多线合并流式建体 + Track B 总验收实测
|
2026-06-24 08:08:28 +08:00 |
gaozheng
|
9d3b103e32
|
docs(api): 三维体/切片/异常 OpenAPI 设计稿(贴合存量 dsObject 面)
三件套 Swagger(JSON):
- 三维体/切片 = 纯元数据 dsObject:增删改查/属性复用存量 dsObject 面,
各加 1 个登记端点;体素字节/切面数据全在客户端,后端零数据端点。
- 异常复用整套 /business/exception 端点(实体无关),异常体(consortium)
分组为存量已有;3D 仅扩展 location 几何(worldPts+plane)与截图(R88)。
- 归属结构 TM → 三维体(dd_voxel) → 切片(dd_slice),异常挂三维体。
|
2026-06-23 21:31:55 +08:00 |
gaozheng
|
0537e938b4
|
feat(vtk): 12d 打磨探针-梯度不透明度+光照,出体内部对比3图
新增 gpr_poc polish 子命令:同一全分辨率 level0 局部段 + 斜穿俯视视角离屏渲三图对比体内部白雾能否靠打磨解决。梯度不透明度 piecewise 按实测梯度幅值分布(median/p90/p99)标定。三图唯一变量为梯度不透明度/光照:a 基线白雾、b 加梯度不透明度、c 加梯度+光照。各报结构像素/亮度/真实fps。结论:打磨消雾并让强梯度层界面浮出,但沿线长均匀段固有偏雾,梯度不透明度无法凭空长出层。
|
2026-06-23 20:53:42 +08:00 |
gaozheng
|
fb175d6d3d
|
fix(gpr_poc): view 交互窗口统一走单纹理快路,去 MultiBlock 分块
交互 view 任何相机位置都只渲一张 vtkImageData + 单 vtkSmartVolumeMapper,
与 --preview 走完全同一条产单图 + 同一 mapper 的路径:
- LOD 选层:远观/中景升到最细的整卷各轴<=16384 层(L2/L3)整卷一张纹理;
拉近取 level0 视野覆盖的 X 子区域重组一张纹理。两条都用 buildLevelImage /
buildLocalLevel0Image 产单图。
- 去掉交互路径的 OutOfCoreSource/BrickPager/MultiBlock + budget 分块渲染
(renderC 等 POC 子命令仍保留)。
- LOD 随缩放真切换,只在 EndInteraction 重组一次。
- 新增 view --preview --near 拉近预览(view-near.png),与真窗口同路径。
- parseArgs 支持无值布尔旗标(--preview --near 不再误吞)。
修复:开窗+拉近无缺块(整张纹理),fps 从个位数升到几十~上百。
|
2026-06-23 20:15:28 +08:00 |
gaozheng
|
f4922dd6e2
|
feat(gpr_poc): view 交互窗口默认视觉参数采用 gallery var4
无 --gallery/--preview 的交互窗口此前用旧暗默认,现统一为 var4:
seismic 配色 + V 形实体不透明度包络(floor0.035/mid0.38/max0.84) +
取景(El18/Az22/Zoom2.0) + exagg8 + 略亮冷灰背景。
- 抽出 kViewDefaultVariant 引用 kGalleryVariants 末项(var4)作单一来源,
交互默认与 view-var4 走同一份参数,避免复制粘贴漂移(DRY)。
- 新增 makeVariantProperty 统一按包络建体属性,gallery 与交互默认共用。
- viewSetupDefaultFrame 取景角度改取自 var4;cmdView 配色/包络/背景/exagg
默认改为 var4;--exagg/--opacity 显式传入仍覆盖。
- 验证:view --preview 产出 view-default.png 与 view-var4 一致
(结构像素 30.18% vs 30.11%、亮度 33.9 vs 33.7、fps 77 vs 75);
view --smoke 仍 OK。
|
2026-06-23 19:52:35 +08:00 |
gaozheng
|
9af363080a
|
feat(poc): view 视觉调参画廊 4 组离屏 preview
view 加 --gallery / --preview --variant N:同一沿线中段局部段+同一相机框法,渲 4 组不同视觉参数(不透明度包络/配色/取景/背景)各存 PNG 供挑选。
新增 makeSeismicColorScale(红白蓝高对比)、makeJetColorScale(全程高饱和)、makeSolidVolumeProperty(V形实体感包络:近零背景压低但可见、中高值段普遍 0.3~0.85、半透明实心内部层次可读)、meanBrightness(画面均亮度度量)。
基线默认结构像素仅 0.07%(几乎全黑、缩角落);4 组拉到 17~30%,亮度显著提升,fps 76~86(≫30)。推荐 var4 作默认。
|
2026-06-23 19:40:52 +08:00 |
gaozheng
|
b1a8d1365d
|
fix(gpr_poc): view 默认取景改局部段+加 --preview+fps 显真实帧率
修 view 开窗空白:默认相机框整条 2.2km 线(横截面 1:34),即便 exagg=8
也是隐形细带。三处修复:
1. 默认取景改对准沿线中段一个 ~256 道(4 brick 列)的全分辨率局部体,
ResetCamera+Zoom 框满画面,首帧即见层状结构(同 lod-tuned-local.png 取景)。
2. 新增 view --preview:用与真窗口完全相同的相机/source/exagg/传函离屏渲一帧
存 view-default.png,旋 N 帧报真实 fps+结构像素数(排除深蓝灰背景)+纹理错。
3. fps 文本改为松手时连渲 3 帧累计实际 Render 耗时取均值,不再把空闲间隔算进去。
实测 preview:默认视角有结构(结构像素>0)、无纹理错、真实渲染 ~185fps。
|
2026-06-23 19:27:39 +08:00 |
gaozheng
|
bec6a376d5
|
fix(ui): 详情对话框页脚/表单改走 FormKit 符合视觉规范(去Arco式大按钮)
之前为"像原版"手搭 QFormLayout + Arco式页脚(45%等宽/两端对齐/多主按钮/顺序反),
违反 Geopro3.0 视觉规范 §6.7/§7.5/§7.0.10。改为规范实现(字段结构/API 不动):
- 白化/另存/滤波/网格化:页脚改 formkit::addDialogButtons(右对齐 取消+确定,主按钮蓝);
异步确认改接 Ok 按钮 clicked(校验/whitenData/save 成功才 accept);表单改 makeEditForm
+editLabel+capField+addSection;宽度按规范(白化560/另存420/滤波保留宽/网格分组)
- 滤波"保存设置"作次按钮(ActionRole)不抢 primary;网格化 上一步(次)左+取消/确定右
- 快查:ScatterFilterDialog 可编辑输入改 makeEditForm;AutoAnnotation 主操作 setDefault
- 异常各弹窗/反演表单 已合规未动
build all 绿,341/341。
|
2026-06-23 18:40:11 +08:00 |
gaozheng
|
824898a65c
|
feat(poc): gpr_poc renderLOD 探针验证 LOD-fps 全量交互渲染可行性
四件事全离屏双闸实测(本机 RTX3060):
(a)粗层概览 level2 ~752fps (b)全分辨率局部 level0 ~380fps
(c)LOD 切换过渡切换帧 ~5.5ms 无可感知卡顿 (d)存 3 张对比 PNG。
双闸:无 3D 纹理维度错误 + 三段均回读非空像素,fps 可信。
判据:两端均达交互级且切换无卡顿 -> LOD-based C 路线钉死可行。
最低配未验,需目标机复测。tools CMake 加 IOImage 供 PNG 截图。
|
2026-06-23 17:49:11 +08:00 |
gaozheng
|
f51706b4b3
|
feat(poc): renderC-partitioned 单 mapper SetPartitions 整卷体绘制 fps 探针
整卷喂单个 vtkOpenGLGPUVolumeRayCastMapper + SetPartitions(ceil(nx/16384),1,1),
绕过 GL_MAX_3D_TEXTURE_SIZE 纹理墙。双闸(纹理错捕获+真实回读非空像素)防假帧率。
实测(44476x29x162,398MB):SetPartitions(3,1,1) 真渲出(非空 1264px,无纹理错),
体绘制 ~8.8-11fps,峰值内存 ~556-653MB。绕过纹理墙成功但未达交互级(<15fps),
与 renderC MultiBlock 9.5 静态同档 → 瓶颈在全分辨率整卷 ray cast 本身,
非每块一 mapper。VTK 这条路交互级天花板暴露。
|
2026-06-23 17:10:49 +08:00 |
gaozheng
|
2beb97fa73
|
feat(vtk): 核外分块体绘制 OutOfCoreSource + renderC 基准(POC-C 命门探针)
OutOfCoreSource 实现 IVolumeRenderSource:相机选 LOD + 视锥裁剪选视野块 →
BrickPager(LRU,内存恒定)→ 每块 ≤64³ vtkImageData(带世界坐标)。renderC 用
vtkMultiBlockVolumeMapper 渲染工作集,绕开 GL_MAX_3D_TEXTURE_SIZE(16384)单轴墙。
实测(单线 store nx=44476>16384,renderB INVALID):
- 分块核外真渲出(非空像素,无纹理维度错),对照 renderB 整卷上传失败。
- 内存恒定:budget=64 驻留 64 块 / 220MB,与体总量无关。
- 静态工作集 9.5 fps;动态换页 1.45 fps(qUncompress 解压+每帧重建 mapper 177ms/帧,
撞墙);fps 随块数近似反比劣化(256 块 0.47 fps)。结论与缓解见 poc-results-C.md。
含单元测试(纹理安全/budget 恒定/块世界坐标)。
|
2026-06-23 15:07:09 +08:00 |
gaozheng
|
03805f4326
|
feat(poc): POC-B 离屏 GPU 渲染基准(offscreen-smoke 闸门 + renderB 体绘制/切片 fps)
- gpr_poc 新增 offscreen-smoke: 离屏 vtkRenderWindow + cube + 读回像素, 闸门验证离屏 GL 可用
- gpr_poc 新增 renderB: 整卷 VTK_SHORT 体绘制(旋相机) + 切片扫描(reslice 沿 Z) fps 实测
- 关键发现: line 001 cellXY=0.05 整卷 44476x29x162, X 维超 GL_MAX_3D_TEXTURE_SIZE(16384),
vtkVolumeTexture 上传失败, 体绘制 fps 如实标 INVALID(绝不上报假帧率); 切片 54.6fps 真实流畅
- 用 CapturingOutputWindow 捕获纹理维度错误 + 维度超限双判据, 避免误把空纹理假帧率当性能
- CMakeLists 补 RenderingVolume/RenderingVolumeOpenGL2/ImagingCore/InteractionStyle 组件
|
2026-06-23 13:52:51 +08:00 |
gaozheng
|
6fa0a31f3e
|
docs(poc): 补齐 POC-B 真实数据实测指标 + Z 尺度诊断结论
readIprb 修复后线 001 (cellXY=0.2,cellZ=0.05,levels=2) 端到端跑通:
体维度 11120x8x162、体素 14.4M、压缩比 1.88x、build≈22.6s/峰值 4.98GB、
load 335ms/38MB。深度链路验证正确:dz≈0.009778m、nz=162(非旧 §3 误报的 1,
为 soilVelocity 换算缺失时代的遗留),CLI specFromSurvey 无需修改。
|
2026-06-23 12:37:53 +08:00 |
gaozheng
|
bfd7d4aafd
|
feat(poc): gpr_poc headless 度量 CLI(地基端到端串联)
串起 assembleGprSurvey→buildGprVolume→ChunkedVolumeStore::write→
buildPyramid→WholeVolumeSource,提供 build/load/selftest 三子命令,
输出建体耗时/维度/体积/压缩比/加载/峰值内存指标(Psapi 峰值工作集)。
selftest 合成数据端到端 PASS。真实明星路数据 BLOCKED:前置 readIprb
的 traces=lastTrace+1 严格校验与真实文件「道数=lastTrace」系统性不符,
装配阶段即抛异常,未擅自改前置/其单测,如实记录于 poc-results-B.md。
|
2026-06-23 12:27:10 +08:00 |
gaozheng
|
9874af77ee
|
docs(detail): 台账标记收尾 6 项已接通 + build.bat all 验证教训
|
2026-06-23 10:34:47 +08:00 |
gaozheng
|
b509795ffd
|
docs(gpr): 三维体三方案 spec(A/B/C) + POC 实现计划
B/C 对等双方案(用户运行时按需切换),A 并入 B;含 opus 评审修订
(VTKHDF Writer 写不了规则体→裸分块落盘、量化贯穿、最小真实核外分页器)。
|
2026-06-23 09:38:28 +08:00 |
gaozheng
|
12813bd8d0
|
feat(detail): 数据集详情视图交互复刻(measurement/inversion/grid)
对照原版 web 1:1 复刻数据集详情视图的写操作交互,补齐既有视图的全部
可交互能力。
基础设施
- 新增写操作命令仓储 IDatasetCommandRepository + ApiDatasetCommandRepository
(26 个写/查接口,端点逐字对照原版 apis),回调式异步沿用 ApiColorTemplateRepository 模式
- 写操作注入链平行 setColorTemplateRepo:main→Panel→Page→DetailViewFactory→视图,
透传 cmdRepo + dsIdGetter
- 新增共享对话框 InversionFormDialog/SaveAsDialog/ScatterFilterDialog/GridWizardDialog/
WhiteningDialog/FilterDialog/ExceptionDialog/ExceptionDetailDialog/AutoAnnotationDialog
- 纯函数 InversionFormParse/ScatterDataOps/InversionProcessOps/ContourSimplify + 单测
measurement(M1-M13):可见性持久化、数据过滤、X/Y/V轴、值类型、色阶配置、
生成视电阻率、反演运算、另存为、导出DAT、信息点选
inversion 网格(I1-I15):网格化向导、白化、滤波、等值线提示、简化容差(真生效)、
异常增删改查+定位、自动标注、描述保存、另存为
inversion 原数据(O1-O3) + grid 反演(G1,functionList 驱动)
后置/降级(台账 §6.4):M14框选、M2行级可见性、M3过滤直方图、I9图上绘形、
I14富文本(Qt无Quill)、I3白化tmObjectId透传
测试 285/285 通过
|
2026-06-23 09:21:37 +08:00 |
gaozheng
|
959f030c98
|
feat(ui): 表单渲染单一真相层(formkit)+只读渲染器(KeyValueView),统一编辑/只读/详情表单
把分散在各文件手搭的表单收敛到唯一实现,杜绝"同类控件各处不一"的漂移:
- 新增 FormKit(DetailForm/buildDetailDialog + makeEditForm/editLabel/capField/addSection)
- 新增 KeyValueView 为唯一只读键值渲染器(§6.4);DynamicFormView 改为内嵌它
- 三维体/切片/异常详情对话框由裸 QFormLayout 迁到 DetailForm+KeyValueView(随内容自适应)
- 生成三维体对话框 + DynamicFormEditor 改用 formkit 可编辑套件(标签列/行距/分组逐像素一致)
- 分组标题统一为 formkit::addSection(编辑态与只读态共用同一段代码)
控件一致性:
- 下拉框/日期框扁平 chevron 箭头(qrc 内嵌 SVG),去 Fusion 原生斜角;日期框补齐输入框同款 box
- 无候选项的"选择"字段退化为 QLineEdit,不再用几何异类的可编辑下拉框
- QComboBox/QDateEdit/QTimeEdit min-height/padding 与 QLineEdit 对齐 → 同高
规范:§7.0.2 标签列宽由区间改精确常量(可编辑100/只读72);新增 §7.0.10 实现纪律
(唯一实现、禁手搭 QFormLayout、精确常量、控件构造一致性、新表单并排验收)
|
2026-06-23 07:28:48 +08:00 |
gaozheng
|
5e60446210
|
feat(vtk): 色阶编辑器(2D/3D共享)+模板库后端+剖面着色修正+二维数据集足迹
本会话主要交付:
- 色阶配置对话框 1:1 复刻原版(colorLevel/contourLevel/contourLine/colorEditor + colorUtils):
左三列⚙表格(层级/线形/颜色) + 层级⚙/线形⚙/颜色⚙ 子对话框 + 连续渐变(直方图/读出/min-max/反转)
+ .lvl/.clr 导入导出;文案/校验对齐原版精确 i18n。
- lvl/clr 模板库接真实后端:IColorTemplateRepository + ApiColorTemplateRepository,
另存/打开/新建色阶/配色方案下拉 经仓储注入 2D(GridDataChartView)与 3D(主对话框)。
- 剖面帘面着色对齐原版 threeContour.js getTerrainColor:上界 stop 取色 + 满 RGB,
修正"色带整体下移一格 / 发浅发灰 / 丢 alpha"导致与原版差异大的问题。
- 二维数据集视图首切片:勾选轨迹类数据集 → 足迹平铺进 View3D 地图
(Api3dRepository::loadMapLine 走 dd/ert/trajectory/line + MapLineActor + col2D 接线),
view2DMode 控摆放高度,顶/底锚真实地表高程(zRefElev)。
- 测试 252 全绿。
并含本分支前序未提交的 UI 工作(ToastOverlay/TopBar/Theme/DynamicForm/若干 panel),
经 CMakeLists/main.cpp 纠缠,随此 checkpoint 一并提交。未纳入未跟踪的 png/yml 及审查报告 txt。
|
2026-06-22 12:48:45 +08:00 |
gaozheng
|
579bd46616
|
docs(vtk): 交接文档-#6 体/切片详情对话框完成,附 installer 打包工具说明
|
2026-06-18 20:29:55 +08:00 |
gaozheng
|
b97ea68109
|
feat(vtk): 三维体/切片数据详情对话框(#6)-右键属性表+体统计持久化
- VolumePropertiesDialog/SlicePropertiesDialog 只读属性对话框(仿异常详情)
- Api3dRepository::volumeInfo 取参数+统计;StoredVolume 持久化聚合测点数(finalizeVolume)
- main.cpp 右键「数据详情」按 ddCode 分派(dd_voxel→体/dd_slice→切片);接口与 LocalSample 零改动
- 切片不含统计(切面网格仓储不持久化,守 YAGNI);体统计仅 loaded 时显示,否则占位
- 单测 +2(volumeInfo loaded前/未知id) → 230/230 绿
|
2026-06-18 20:28:15 +08:00 |
gaozheng
|
c27bb6ab8f
|
docs(vtk): 交接文档全量刷新-#1~#4全完成,§3当前状态+下一步候选表,供换会话无缝接手
|
2026-06-18 19:30:10 +08:00 |
gaozheng
|
9d8f36ff90
|
docs(vtk): 交接文档-#4异常功能收口(4a→4c-3全做完),标记剩余已知限制
|
2026-06-18 19:26:54 +08:00 |
gaozheng
|
f1309240a4
|
docs(vtk): 交接文档同步-异常4b/4c-1/4c-2已完成,余4c-3属性面板
|
2026-06-18 19:10:03 +08:00 |
gaozheng
|
6210d615f3
|
feat(vtk): 异常圈定+保存闭环(#4b)+多项交互修复
#4b 异常圈定→保存→渲染→持久 闭环(异常挂三维体,mock 持久化):
- AnomalyDrawTool:切片平面上圈定多边形(屏幕射线-平面求交落点);左键加点(醒目黄圆点)、
鼠标移动虚线橡皮筋(末点→光标跟手)、双击/右键/回车闭合、Esc 取消、左上屏幕提示;高优先级观察者绘制期独占输入
- AnomalySaveDialog:名称/异常类型(mock)/备注 + 截图预览及尺寸(R50)
- 切片右键「创建异常」接通:圈定→草稿渲染→截图→保存对话框→saveAnomaly(挂三维体)→红色多边形渲染
- onVolumeChanged→reloadAnomalies:体到场重载其异常(= 显示过滤"随数据集"默认档)
- SliceExport 加 captureRenderWindowPng(异常截图,带尺寸);Anomaly 补 exceptionTypeId/remark
交互修复(用户实测确认):
- 生成三维体**按勾选集合**(checkbox)收集源,不再受行高亮/右键项影响(撤销错误的多选子类)
- buildVolume 网格**覆盖全程**:包络过大时放大间距(fitAxis)而非截断 → 跨 TM 多剖面不再丢远端剖面
- 滚轮回退为"推进当前选中切片";点击切片外**取消选中**(取消后滚轮恢复相机缩放)
- 修圈定闭合误触切片:闭合事件提前 abort,避免漏给切片 widget 触发 slice-motion
文档:plans/2026-06-18-vtk-3d-anomaly.md §6 摆放决策(3D异常控制在三维分析区/右侧总表为全集)+§7/§8 状态;
design spec 顶部更正块(异常挂三维体/remarkSourceType=标注形态/无截图字段/独立显隐);HANDOFF 更新到 4a/4b。
编译链接绿(build.bat app exit 0);4b 闭环 + 交互修复已用户实测通过。下一步 4c:三维分析区 3D 异常控制(树+过滤R86-87+VTK选中联动R84+显隐+删除)。
|
2026-06-18 18:31:46 +08:00 |
gaozheng
|
4e1b8e7635
|
feat(vtk): 异常3D基础(#4a)-Anomaly补3D几何+buildAnomaly3D+视图异常方法+Api mock持久化(挂三维体)
异常功能地基(对象→三维体→异常;异常挂三维体非切片,见记忆 vtk-3d-persistence-structure):
- core::Anomaly 补 id/volumeDsId(=remarkSourceId)/consortiumId/worldPts(3D世界点)/planeNormal·planeOrigin,
保留 2D localPts(剖面详情兼容)
- render::buildAnomaly3D(单异常→世界坐标 点/折线/闭合多边形 actor,不翻y/不压z;抽 buildActor 共享 2D/3D)
- I3dSceneView + VtkSceneView:addAnomaly/removeAnomaly/clearAnomalies/setAnomalyVisible(按 id 跟踪 actor,
worldPts 已含VE 故不再 SetScale;clear 一并清异常)
- Api3dRepository:StoredAnomaly + saveAnomaly/loadAnomalyTree(按 volumeDsId 过滤+consortiumId 分组异常体)/
deleteAnomaly/deleteAnomalyGroup 内存 mock(取代 stub onErr)
同时修复测试漂移(此前 3a 加 isVolumeDataset 纯虚 + 3c 改 loadVolume 回调签名后,geopro_tests 一直未随之更新):
- FakeView 补异常方法;FakeSceneRepo 补 isVolumeDataset(可配置 volumeIds)+修 loadVolume 签名
- test_3d_repo loadVolume 回调改 (VolumeGrid,ColorScale)
- 控制器测试 View3DWithVoxelAddsVolume 按新"类型分流"语义重写为 View3DVolumeDatasetAddsVolume(体素XOR帘面)
编译全绿(build.bat all);228/228 单元测试通过。4a 为地基(无 UI 接线、尚不可见),圈定/保存见 4b。
|
2026-06-18 13:04:14 +08:00 |
gaozheng
|
0e7a5c1bf7
|
docs(vtk): 交接更新-切片生命周期(3a/3b/3c)完成;下一主线=#4异常(接真实后端);#5分析栏接线完成(色阶仍占位)
|
2026-06-18 09:41:23 +08:00 |
gaozheng
|
afdd98f416
|
feat(vtk): 切片右键菜单(VTK视图)+切片持久化mock+导出图片(切片本身,高清)/dat (#3a)
- VTK视图切片右键菜单(设计§2.3):正视图/翻转/关闭(接现有交互)、导出图片/导出dat、保存、创建异常(占位→#4)
- 右键经 InteractionManager 高优先级(1.0)交互器观察者实现:先于 vtkImagePlaneWidget 消费右键
(widget 会抢右键并 abort,故 InteractorStyle::OnRightButtonDown 不触发);命中切片或回退选中切片→弹菜单
- 切片持久化 mock:Api3dRepository createSlice/saveSlice/deleteSlice 内存态 + sliceRows()
(ddCode=dd_slice,parentId=所属体→三维分析栏树中挂父体下,符合需求 R19 对象/三维体/切片结构)
- 导出为图片=导出切片本身(需求 R52):切片重采样 2D → 上采样至最长边2048(保长宽比) → 切片色阶LUT上色 → PNG
(非整窗截图);导出dat=切片重采样标量网格
- 三维分析栏接线(#5部分):显示/隐藏(VtkSceneView::toggleDatasetVisibility)、切片删除、色阶占位
- main.cpp refreshAnalysis 合并 volumeRows+sliceRows 注入三维分析栏
编译链接绿(build.bat app exit 0);右键菜单/保存/导出图片(切片·高清)已用户实测通过。
3b 待做:已保存切片在分析栏勾选后的重渲染(从 spec 重建)、分析栏保存/另存/导出;#4 异常接真实后端。
|
2026-06-18 08:09:15 +08:00 |
gaozheng
|
b261374cc9
|
feat(vtk): 客户端生成三维体流程(#1)-多源IDW插值+按类型分流体素/帘面
- core::buildVolume 共享管线(散点→GridSpec→IDW→值域),LocalSample/Api 同源,消除调参漂移
- VolumeBuildParams:参数必存(源ds+插值模型/参数+色阶);不冻结gridSpec,改用"源ds锁定"不变式(留校验TODO)
- Api3dRepository:内存体存储 + createVolume/volumeRows/isVolumeDataset + 多源loadVolume
(复用loadSection走inversion.grid,竖向=g.y高程,与帘面构造性对齐;绕开scatter端点y/z语义坑)
- loadVolume 回调改交付(VolumeGrid, ColorScale):体色阶=源剖面色阶(mock体在dsRepo无条目)
- UI:Column3DDataset(源数据栏)多选+右键「生成三维体」+ VolumeParamsDialog(IDW;克里金占位)
- 生成的体归三维分析栏(Column3DAnalysis,设计§2.1),非数据集栏;main.cpp 两栏勾选聚合下发,体不被后端刷新冲掉
- VtkSceneController 按 isVolumeDataset 分流体素/帘面,取代失效的全局 showVoxel/showCurtain
编译链接绿(build.bat app exit 0);未GUI实测(Claude无法验VTK渲染)。设计/计划见 docs/superpowers/plans/2026-06-17-vtk-3d-volume-create-flow.md
|
2026-06-17 20:56:07 +08:00 |
gaozheng
|
4835528b99
|
docs(vtk): 更新交接文档-本会话底图/地形/剖面配准/增量渲染已完成,下一阶段三维体/切片/异常设计定稿+铁律+代码地图
|
2026-06-17 19:40:11 +08:00 |
gaozheng
|
209d85536c
|
docs(vtk): 三维体持久化策略-参数+GridSpec必存,明细可选缓存,缺则按参数重算填固定规格;含存储字段VolumeBuildParams定义
|
2026-06-17 19:36:25 +08:00 |
gaozheng
|
5d1384d2a9
|
docs(vtk): 三维体设计定稿-创建=客户端;异常增删改读端点已从web源码找到(POST/PUT/DELETE /business/exception+类型/异常体)接真实;三维体/切片/插值无端点先mock
|
2026-06-17 19:24:34 +08:00 |
gaozheng
|
1ad0e372cc
|
docs(vtk): 三维体/切片/异常数据模型与客户端交互设计(需求实证+6问结论+代码现状,标清接后端/先mock,作为#2~#6实现依据)
|
2026-06-17 19:12:30 +08:00 |
gaozheng
|
4a680cc18a
|
docs(vtk): 更正-原版剖面竖向=data.y(实证threeMap.vue:676),非alt贴地表(臆测,已撤);跨数据集y不一致为数据层面问题,原版同样存在
|
2026-06-17 18:37:40 +08:00 |
gaozheng
|
4fb7bb1e52
|
docs(vtk): 更新z/高程语义文档-原版data.y=高程已部分解答;记录当前z=+y为近似,跨数据集y不一致风险及alt地表贴合的稳妥做法
|
2026-06-17 18:30:21 +08:00 |
gaozheng
|
a2e16e18e8
|
web版页面可嵌入改造方案
|
2026-06-17 18:09:25 +08:00 |
gaozheng
|
d68fc31ae7
|
docs(vtk): 3D地球改造现状与约束评估(opus代码实测评审:判断准确且偏保守,补全耦合面)
|
2026-06-17 07:56:16 +08:00 |
gaozheng
|
f407c0adbc
|
docs(vtk): P5计划修正——dd_grid是白化数据点表(非地图面),2D可渲染仅轨迹线+底图
|
2026-06-16 21:21:18 +08:00 |
gaozheng
|
cc53a74b88
|
docs(vtk): P5 二维数据集栏渲染+天地图底图 实现计划
|
2026-06-16 21:18:42 +08:00 |
gaozheng
|
86764b0cd9
|
docs(vtk): 反演剖面竖向字段 y/z/elevation 语义待业务确认(附4条真实ds证据)
|
2026-06-16 21:11:16 +08:00 |
gaozheng
|
01a8c0ae03
|
docs(vtk): 三栏结构重构实现计划(10任务:抽屉/三栏widget/维度过滤/全屏/装配)
|
2026-06-16 14:57:15 +08:00 |
gaozheng
|
540fb1cde5
|
docs(vtk): 三栏结构重构设计 + 高保真原型(方案C视图内嵌侧栏/全屏/右键菜单/改名VTK视图)
|
2026-06-16 14:39:33 +08:00 |
gaozheng
|
c058c851ee
|
docs: VTK 三维视图任务交接文档(背景/进度/下一步/构建铁律/代码地图)
|
2026-06-16 11:44:10 +08:00 |
gaozheng
|
c44203d6ca
|
docs(plan): P3 三维分析切片交互(核心)实现计划
|
2026-06-16 07:52:13 +08:00 |