Commit Graph

120 Commits

Author SHA1 Message Date
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 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 96fac3313b wip(render): 深度方向修正(取负) + 离屏渲染验证工具(render_verify->PNG)
诚实记录: 经离屏PNG肉眼核对, 帘面渲染仍不正确(扭曲飘带/俯视空白), '2D=俯视帘面'模型不成立(竖直帘面俯视仅一条发丝线), 需独立的地图线actor。色阶偏蓝(线性LUT)。详见后续 STATUS。
之前几版'已验证'仅进程级冒烟, 未看像素 -> 漏掉剖面倒置等问题。
2026-06-07 23:08:15 +08:00
gaozheng c9d0d90433 feat(render): GeoLocalFrame(经纬→局部米) + CurtainActor(测线竖直帘面) 2026-06-07 22:47:41 +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 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 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 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 238faff56e feat(core): LocalFrame 坐标系(原点偏移+东北轴向+Z基准) 2026-06-07 19:40:23 +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 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