gaozheng
|
50c4de4019
|
feat(view): 左下数据列表 + 对象树收到测线层(对齐原型, 增量2)
- 对象树 GS→TM(测线复选, UserRole+2=tmId); DS(采集批次)移出树, 入左下「数据真实显示栏」
(QTabWidget 数据/文件; panels/DatasetListPanel)。findTm 按 tmId 查 TM。
- 中央 rebuildCentral 改遍历勾选的测线 → 渲染其 dd_section(可多条共存)。
- 树单击测线→填数据列表; 数据列表单击采集批次→loadDataset(数据详情+异常列表+属性,抽共享 lambda)。
- 启动自动选首个含 dd_section 的测线 + 首数据集(对齐原型默认载入态)。
- structure 取一次共享; app 构建干净; 待人工登录复核。
|
2026-06-08 09:33:06 +08:00 |
gaozheng
|
127e9a0b21
|
feat(view): 右上异常列表面板 + 与数据详情异常显隐联动(对齐原型, 增量1)
- panels/AnomalyListPanel(populateAnomalyList): 颜色块 + 名称(类型) + 由 location.coordinate
派生「位置 Xm·深 Ym·尺寸 Zm」; 可勾选(默认显示), UserRole 存异常下标。
- 右侧 dock 拆上下: 右上「异常列表」/ 右下「属性」(补"异常 N 个")。
- 单击数据集→重填列表(QSignalBlocker 防回灌)+ 清空隐藏集; 勾选变化→更新 hiddenAnoms
→ rebuildDetail 逐异常按下标过滤显隐(取消勾选→该异常虚线隐藏)。
- 计划落地 plans/2026-06-08-m1-prototype-layout.md(六面板对齐原型, 增量序列); STATUS §6.10 更新。
- app 构建干净; 待人工登录复核交互。
|
2026-06-08 09:24:11 +08:00 |
gaozheng
|
42a7ed16d4
|
fix(app): 移除令人困惑的「体素」工具条开关(与二维/三维平级且不在原型)
- dd_voxel 体素引擎(buildVoxelFromScatters)保留:已 PNG 核对 + 单测验证,是合格积木。
- 但把它做成中央工具条开关是设计失误:与"二维/三维"互斥视图平级却是复选、且仅 3D 生效,
令人困惑(重蹈上会话"2维/3维/体素混淆"覆辙),且原型中央只有「二维地图|三维视图」。
- 中央恢复干净两视图(对齐原型)。体素待做 3D 图层控制(对齐原型「视图详情」浮层)再正经接入。
- 同步移除 app 内 CrsTransform/PROJ_DATA 等仅为该开关的接线; render 层引擎与测试不动。
|
2026-06-08 09:13:25 +08:00 |
gaozheng
|
9b77d07359
|
feat(render): dd_voxel 回归 — 散点经 EPSG:4547 配准到世界系成体素 + 3D 接入
- buildVoxelFromScatters(VoxelFromScatters): 两交叉测线散点(projX/Y) 经
CrsTransform(EPSG:4547→4326) → GeoLocalFrame 局部米 + 深度(-ylist) 配准到帘面/地图
同世界系, IDW(maxDist 裁剪 NaN 留空) → buildVoxel; 暴露 image 供后续 dd_slice。
- 离屏核对: verify_voxel_top.png 两臂支撑吻合 Python 真值 voxel_hslice;
verify_voxel_3d.png profile1 片贴合帘面(同系配准正确)。
- 接入 app: 中央工具条「体素」开关(仅 3D 有效, 默认关), 与帘面同纵向夸张叠加。
main() 按候选路径自动设 PROJ_DATA(部署须随包附带 proj 数据)。
- 新增 VoxelRegister 单测(需 PROJ_DATA, tests CMake 已注入); 全 36 测试绿。
- 注: 仅 2 交叉线→薄十字片(15.9% 充填), 体绘制半透明偏淡(低不透明度固有);
可信满体需≥3线(设计 §10/§14)。dd_slice 交互切片未做。
|
2026-06-08 09:05:27 +08:00 |
gaozheng
|
2d39a3af26
|
docs(crs): 实证确定项目 CRS = EPSG:4547 (CGCS2000 3度带 GK CM 114E)
- 方法: 同一测线既有网格电极 lat/lon(EPSG:4326) 又有散点 projectX/Y;
pyproj 把 lat/lon→EPSG:4547 得 dX=0.20m/dY=0.30m(亚米级), 反向~0.3m;
Krassovsky(北京54)椭球差 44m 排除 → 椭球 GRS80/CGCS2000(与 WGS84 现差<1m)。
- proj4: +proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80
- 旧"EPSG:32649 解出 111°E"系因 32649 中央经线=111°E; 改 CM=114°E 即完美吻合。
- 影响: DEM/影像 与 dd_voxel 回归 不再被 CRS 阻塞(散点可经 4547→4326→GeoLocalFrame
与帘面/地图配准)。影像 tfw 仍 EPSG:3857 须重投影; dem.tif CRS 待 GDAL 核对。
- 同步 STATUS §4/§5 + spec §5。
|
2026-06-08 08:50:25 +08:00 |
gaozheng
|
d4b4a4bc64
|
feat(render): 异常叠加(AnomalyActor) + 数据详情命名对齐原型
- AnomalyActor(buildAnomalies): 按 markType 点(vtkVertex)/线(开放polyline,dashed)
/面(闭合polyline轮廓), 每异常一 actor 带自身 lineColor/width/dashed; 坐标(x,-y,0)
与 #18 同空间。离屏 verify_section_anomaly.png 折线位置吻合 Python 真值 ref_18。
- 接入 app 数据详情: 「显示异常」开关(默认开)叠加在 #18/#17 上(同纵向夸张对齐)。
- 按原型(prototype.geomative.cn)重命名数据详情切换为「原数据/网格数据」并调顺序。
- 新增 test_anomaly 4 例(线/面闭合/点/空跳过/颜色/y取负); 全 35 测试绿。
- STATUS §6.10 记录原型权威布局与待对齐项(左下数据列表/右上异常列表/电极/底图)。
- 注: dashed 点画在 VTK OpenGL2 下偏弱(几何/颜色/位置正确), 纯观感项后续调。
|
2026-06-08 07:56:25 +08:00 |
gaozheng
|
f51fe44533
|
feat(render): 散点#17(ScatterActor) — 数据详情「反演剖面/原数据」切换
- ScatterActor(buildScatter): ScatterField+ColorScale → vtkPolyData 彩色方块散点
(x=距离/y=深度取负, 与#18同坐标系; 点标量+LUT, 色阶范围优先colorBar真实分段值)
- 离屏 verify_scatter.png 核对吻合 Python 真值 ref_17(三角拟断面/顶部深蓝/右侧紫)
- 接入 app 数据详情: 工具条「反演剖面(#18)/原数据(#17)」互斥切换, rebuildDetail 统一重建
- LocalSampleRepository.loadScatterColorScale: 散点自带色阶(范围/分段与网格色阶不同)
- 修复陈旧测试 test_curtain(断言改为 vtkPolyDataMapper+banded 非空 polydata)
- 新增 test_scatter 2 例(点数/verts/上色/y取负/退化安全); 全 31 测试绿
|
2026-06-08 07:43:49 +08:00 |
gaozheng
|
95bc521f49
|
docs: 同步 spec/STATUS/plan 至正确视图模型(二维地图=测线线/三维=竖直帘面/数据详情=#18; 体素搁置CRS; 渲染须离屏PNG核对) — 供下次会话接续P4
|
2026-06-07 23:40:55 +08:00 |
gaozheng
|
039c04a233
|
docs(STATUS): 诚实记录视图渲染未达标(像素核对)+ 离屏验证工具为今后验证手段 + 2D地图需独立线actor
|
2026-06-07 23:09:32 +08:00 |
gaozheng
|
8d060afbd5
|
docs: 新增 STATUS.md 会话交接(状态/完成度/构建约定/已知问题/正确视图模型/下次接续)
|
2026-06-07 22:30:14 +08:00 |