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
|
8af0de2ba1
|
fix(login): 输入框显式白底深字+边框(修失焦文字不可见); 登录页样式微调
|
2026-06-07 23:35:30 +08:00 |
gaozheng
|
ebd7779b51
|
feat(app): 中央二维地图(测线线)/三维视图(断面墙)两视图 + 数据详情(#18纵向夸张), 接入已验证渲染积木
|
2026-06-07 23:30:55 +08:00 |
gaozheng
|
e59b6b3dfe
|
feat(render): MapLineActor(测线轨迹线,二维地图) + 帘面分段着色(清晰色带, 与#18一致); 离屏PNG核对三视图均正确
|
2026-06-07 23:25:55 +08:00 |
gaozheng
|
2d7dfe3582
|
fix(render): 数据详情#18修正 — 用colorBar真实非均匀分段值做等值线级(修一片蓝)+纵向夸张; ColorScale暴露stopValues
|
2026-06-07 23:18:52 +08:00 |
gaozheng
|
039c04a233
|
docs(STATUS): 诚实记录视图渲染未达标(像素核对)+ 离屏验证工具为今后验证手段 + 2D地图需独立线actor
|
2026-06-07 23:09:32 +08:00 |
gaozheng
|
96fac3313b
|
wip(render): 深度方向修正(取负) + 离屏渲染验证工具(render_verify->PNG)
诚实记录: 经离屏PNG肉眼核对, 帘面渲染仍不正确(扭曲飘带/俯视空白), '2D=俯视帘面'模型不成立(竖直帘面俯视仅一条发丝线), 需独立的地图线actor。色阶偏蓝(线性LUT)。详见后续 STATUS。
之前几版'已验证'仅进程级冒烟, 未看像素 -> 漏掉剖面倒置等问题。
|
2026-06-07 23:08:15 +08:00 |
gaozheng
|
7713271557
|
refactor(app): 中央地图/3D单场景(竖直帘面)+下方数据详情(#18平面剖面), 去除体素节点与模式混乱
|
2026-06-07 22:53:29 +08:00 |
gaozheng
|
c9d0d90433
|
feat(render): GeoLocalFrame(经纬→局部米) + CurtainActor(测线竖直帘面)
|
2026-06-07 22:47:41 +08:00 |
gaozheng
|
f4e61cb947
|
plan: M1 视图重构(对齐原型/用户): 中央地图-3D单场景+竖直帘面, 下方数据详情, 体素搁置(CRS)
|
2026-06-07 22:43:29 +08:00 |
gaozheng
|
8d060afbd5
|
docs: 新增 STATUS.md 会话交接(状态/完成度/构建约定/已知问题/正确视图模型/下次接续)
|
2026-06-07 22:30:14 +08:00 |
gaozheng
|
51f217e1dd
|
refactor(app): 视图改为对象树勾选驱动+单一2D/3D相机, 体素作为dd_voxel数据集(去除三模式混乱)
|
2026-06-07 22:29:21 +08:00 |
gaozheng
|
39b97ffb70
|
fix(app): 视图模式三按钮(二维/三维/三维体素)互斥连贯 — 切2D/3D回剖面,体素自身高亮
|
2026-06-07 22:15:55 +08:00 |
gaozheng
|
0413e4359a
|
fix(app): 三维体素移除默认黑色切片面(稀疏体素切片多为空区/困惑); 切片待沿数据面的有意义交互再加
|
2026-06-07 22:06:27 +08:00 |
gaozheng
|
3bc006e271
|
fix(render): 体素卡死修复 — IDW 1/d²快速路径+maxDist提前跳过, 网格粗化(2m/1m), SmartVolumeMapper CPU回退, 忙碌光标; 按钮改名'三维体素'
|
2026-06-07 22:01:16 +08:00 |
gaozheng
|
ebf1e0929d
|
feat(render): dd_voxel 体绘制(IDW->vtkImageData->GPU RayCast) + 交互切片
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-07 21:51:21 +08:00 |
gaozheng
|
cdf49020af
|
feat(render): render 层(Scene/ColorLut/GridContourActor/相机预设) + 2D/3D 切换
|
2026-06-07 21:42:55 +08:00 |
gaozheng
|
1f55763a8a
|
plan: M1 Phase 4 三维渲染扩展(render层+2D/3D+voxel+散点/异常+DEM) 实现计划
|
2026-06-07 21:36:47 +08:00 |
gaozheng
|
711103e0a1
|
feat(app): LoginWindow(验证码+RSA真实登录) + 启动登录流程
|
2026-06-07 21:32:18 +08:00 |
gaozheng
|
3d59387ab1
|
feat(net): ApiClient(QtNetwork 共享会话) + AuthService(验证码+RSA+login2)
|
2026-06-07 21:26:23 +08:00 |
gaozheng
|
d32cbbf7c4
|
feat(net): RSA 加密器(OpenSSL PKCS1v1.5+base64) + 捕获真实 RSA 公钥
- RsaEncryptor: EVP_PKEY 解析公钥(非法 PEM 抛异常) + PKCS#1 v1.5 加密 + base64; 3/3 测试过
- resources/rsa_public_key.pem: 用 Playwright route 注入 setPublicKey hook + 缓存绕过, 真登录捕获的 RSA-2048 公钥
- spec §8.3: RSA 公钥阻塞解除
- vcpkg.json: 加 openssl
|
2026-06-07 21:17:38 +08:00 |
gaozheng
|
0a3d41689f
|
plan: M1 Phase 3 登录(net+auth+credential+LoginWindow) 实现计划
|
2026-06-07 20:48:13 +08:00 |
gaozheng
|
519d0ed1df
|
feat(app): 对象树->选中数据集->渲染剖面+属性 联动(本地样本)
|
2026-06-07 20:39:45 +08:00 |
gaozheng
|
f48b9ebb8f
|
feat(data): Repository 接口 + LocalSampleRepository(QFile 读中文路径)
- 新增 repo/RepoTypes.hpp(POD 项目结构树)、IDatasetRepository.hpp(同步接口)
- LocalSampleRepository 用 QFile + QString::fromUtf8 读真实中文路径样本(UTF-8),
合成单 GS/TM/DS 树(DsNode.id=grid1),映射 grid/colorscale/scatter/anomaly 文件
- geopro_data 链 Qt6::Core(AUTOMOC OFF、无 Q_OBJECT);core 仍无 Qt 依赖
- 测试 geopro_tests 因链 Qt 需运行时 DLL 在旁:POST_BUILD 拷贝 TARGET_RUNTIME_DLLS
+ gtest DISCOVERY_MODE PRE_TEST(推迟枚举到运行期)
- 新增 tests/data/test_local_repo.cpp:实测中文路径读取 + scatter 2597/anomaly 3 全链路
|
2026-06-07 20:35:20 +08:00 |
gaozheng
|
fe5936a3a6
|
feat(data): 样本 JSON 解析器(grid/scatter/colorscale/anomaly)
|
2026-06-07 20:27:58 +08:00 |
gaozheng
|
a35ababdd4
|
feat(core): 补全数据模型(Anomaly + Grid/ScatterField 元字段)
|
2026-06-07 20:24:05 +08:00 |
gaozheng
|
a7d624cdcc
|
plan: M1 Phase 2 数据层(Repository+解析器+对象树联动) 实现计划
|
2026-06-07 20:21:24 +08:00 |
gaozheng
|
59f4f0a41a
|
feat(demo): 工作台 QVTK 视图渲染真实 ERT 网格剖面(#18)
端到端打通 core(ColorScale 上色)+ render(VTK banded contour 管线)+ view(Qt/ADS 停靠)。
中央面板显示真实剖面网格数据1的等值面+等值线; 左右为 Phase 2 占位面板。
数据暂从 D:/dev/spike_data 读取(真实 Repository/中文路径/API 属 Phase 2)。
|
2026-06-07 20:19:21 +08:00 |
gaozheng
|
d2006cb0c8
|
docs(§5): 修正 CRS 假设 — projectX/Y 非 EPSG:32649(实测 111°E vs 数据 114°E/香港), M1.5 底图前须确认
|
2026-06-07 20:08:51 +08:00 |
gaozheng
|
4fdc6f7b86
|
feat(core): CrsTransform(PROJ 封装, UTM/WGS84/WebMercator 互转)
- RAII 管理 PJ_CONTEXT/PJ;normalize_for_visualization 统一轴序为 (x=经度/东, y=纬度/北)
- vcpkg 加 proj 依赖;core 链接 PROJ::proj(保持 core 纯净,无 Qt/VTK)
- 测试经 CMake gtest_discover_tests 注入 PROJ_DATA,ctest 开箱即用
- 修正用例期望值:UTM49N(516868) 实际经度约 111.16°E(中央经线 111°E);
WebMercator tfw 原点 114.16°E 在 49N 的 easting 约 825km,均与 PROJ 数据库一致
|
2026-06-07 20:06:37 +08:00 |
gaozheng
|
e5a48c5af7
|
feat(core): IDW 插值器(IInterpolator->ScalarVolume, 含 maxDist 包络裁剪)
|
2026-06-07 19:53:22 +08:00 |
gaozheng
|
868c49ca2c
|
feat(core): 阶梯色阶 colorAt+颜色解析(alpha 量纲按来源)
|
2026-06-07 19:49:53 +08:00 |
gaozheng
|
fb0586b6e0
|
feat(core): 领域模型 ScalarVolume/Grid/ScatterField(点序 i 最快)
|
2026-06-07 19:46:03 +08:00 |
gaozheng
|
29987191d0
|
refactor(core): geopro_core 关闭 AUTOMOC/UIC/RCC, 保持 core 纯净(无关 Qt)
|
2026-06-07 19:42:54 +08:00 |
gaozheng
|
238faff56e
|
feat(core): LocalFrame 坐标系(原点偏移+东北轴向+Z基准)
|
2026-06-07 19:40:23 +08:00 |
gaozheng
|
9337340848
|
spike(S2): ADS+QVTKOpenGLStereoWidget 浮动/重停靠不黑屏(用户实测) — 三 spike 全绿
- main.cpp: ADS CDockManager 承载 VTK 面板 + 占位面板
- CMakeLists: FetchContent 拉 ADS 对接官方 Qt; app 链 ads::qt6advanceddocking
- Phase 0 spike 报告: 门槛 PASS, 记录实机环境/结论/构建约定/色阶映射待办
|
2026-06-07 19:35:46 +08:00 |
gaozheng
|
85e4dbea56
|
spike(S3): VTK banded contour 管线跑通真实网格样本(图#18)
vtkImageData(规则栅格)->vtkDataSetSurfaceFilter->vtkBandedPolyDataContourFilter(GenerateContourEdges) 离屏渲染成功, 验证设计§4.3管线选型(B-1/B-2修正)。
颜色精确映射(colorBar非均匀值)留 render 层用 vtkColorTransferFunction 做。
|
2026-06-07 19:26:58 +08:00 |
gaozheng
|
bb32e9890c
|
docs: RSA 公钥非静态字面量, 改为 Phase 3 运行时断点提取(§8.3)
|
2026-06-07 19:19:15 +08:00 |
gaozheng
|
acbc6d5b46
|
spike: 准备 S1 冒烟构建 + voxel 离线验证
- tools/validate_voxel.py: 两交叉剖面 IDW+maxDist 成体素, 切片可视化; 实证 105k 体素仅 15.9% 有约束(可信体需≥3线/3D网格)
- CMakeLists: VTK find_package 指定 COMPONENTS(VTK9 必需, 否则 VTK_LIBRARIES 空)
- vcpkg.json: 依赖按层递增, 当前仅 gtest(免 S1 被 GDAL/PROJ 拖慢)
|
2026-06-07 19:17:11 +08:00 |
gaozheng
|
b219dfeae1
|
build: VTK 改用 9.6.2(对 Qt6.11 兼容更好), 源码/构建放 D:; 冒烟程序用 Release 预设匹配 Release VTK
|
2026-06-07 18:41:24 +08:00 |
gaozheng
|
c76461609a
|
build: 切换为方案②-修订(官方 MSVC Qt + 源码 VTK + vcpkg 仅非Qt依赖)
经双专家评审+实机勘验: 原装 D:\Qt\6.11.1 为 MinGW 版(MSVC 不可链), VTK 无 MSVC 预编译须源码编, VS18=14.51 链官方 Qt(v143) ABI 安全(新链旧)。
- vcpkg.json: 移除 qtbase/qttools/vtk/qtkeychain/qt-advanced-docking-system(凡依赖 Qt 者不走 vcpkg), 仅留非 Qt 依赖
- CMakeLists/CMakePresets: 官方 Qt 经 CMAKE_PREFIX_PATH, VTK 经 VTK_DIR(external/vtk-install), ADS/QtKeychain 走 FetchContent
- 设计 §11/K-8 + ENV_SETUP 改写为方案②-修订; external/ 加入 .gitignore
|
2026-06-07 18:28:30 +08:00 |
gaozheng
|
feab14de85
|
plan: M1 Phase 1 core 纯逻辑层 实现计划(TDD)
|
2026-06-07 17:51:58 +08:00 |
gaozheng
|
308361d935
|
plan: M1 Phase 0 环境引导+Spike预研 实现计划
|
2026-06-07 17:44:28 +08:00 |
gaozheng
|
a55a958e28
|
chore: 添加 .gitattributes 规范行尾(文本 LF, 二进制不转换)
|
2026-06-07 17:41:36 +08:00 |
gaozheng
|
87eba2c5a3
|
scaffold: M1 工程骨架(CMake+vcpkg+分层目录+spike冒烟程序)
- 顶层 CMakeLists / CMakePresets / vcpkg.json(全 vcpkg, Qt+VTK[qt] 共用一份 Qt)
- .clang-format / .clangd / .editorconfig(AI 编码上下文基础设施, 规约 §10.1)
- src 分层目录(core/data/net/render/view/controller/app)+ 各层 README
- src/app: Qt+VTK 冒烟程序(锥体), 作 spike#1/#2 起点
- tests: gtest 冒烟 + ctest 接入
- README
|
2026-06-07 17:41:10 +08:00 |
gaozheng
|
fe7737b175
|
chore: 登录机制核实 + 样本离线渲染验证
- 登录: JSEncrypt RSA-2048, login2(/admin/tenant/auth), token=data.accessToken
- tools/validate_samples.py: 复现 #17 散点/#18 网格等值面, 验证解析+色阶+异常逻辑
- 量化两剖面几何(夹角77.7度,十字支撑), 佐证可信体数据依赖(需>=3线/3D网格)
- spec §8 更新登录细节; _validate 产物已忽略
|
2026-06-07 17:35:38 +08:00 |