Go to file
gaozheng a32822f7d6 feat(gpr3dv): 桥接处理后立方体→geopro量化/分块/VTK体绘制(P2 渲第一条线真三维体)
把 gpr3dv(P1)处理链产出的处理后立方体桥接到 geopro 已有的量化+ChunkedVolumeStore
+VTK 体绘制,渲出第一条线(明星路_001)的真三维体。算法零改动,仅复用 geopro 量化/
store/渲染。

- 新增桥接 src/io/gpr/Gpr3dvVolumeBridge.{hpp,cpp}(独立 target geopro_gpr3dv_bridge,
  不污染纯 C++17 解析层):走 P1 原版 API load→buildVolumeData→runPipeline(默认链)
  →再 buildVolumeData(处理后),得 volumeData[通道][道][样本];轴映射 X=道/Y=通道/
  Z=样本;扫值域定 Quant(offset=中点);世界 spacing(dx=道距/dy=通道横距/dz=深度采样距)。
- gpr_poc 加子命令 build-line <lineDir> <linePrefix> --out <store> [--levels N]:
  桥接→ChunkedVolumeStore::write+buildPyramid,报维度/量化/spacing/内存/耗时;view 渲。
- 测试 tests/io/gpr/test_gpr3dv_volume_bridge.cpp:合成 2 通道 Impulse 测线走真链,
  校验轴映射/spacing/量化(offset=中点)/稠密体无 kBlank/缺线抛异常。

真实数据验收(明星路_001):体维度 45305×14×796(道×通道×样本,样本由 821 经零时校正
裁至 796),处理后值域[-9249,9206] scale=0.288 offset=-21.5,spacing dx=0.049/dy=0.105/
dz=0.0101m,落盘 845MB 压缩比 1.14x;view --preview/--base 渲出无纹理错、整卷盖全。
全量测试通过。
2026-06-24 20:50:10 +08:00
.superpowers/sdd feat(vtk): 12d 打磨探针-梯度不透明度+光照,出体内部对比3图 2026-06-23 20:53:42 +08:00
cmake feat(core+chart): ColorScale::stops() 暴露断点 + ColorMapService 连续插值色阶服务 2026-06-11 15:40:27 +08:00
docs feat(core): Anomaly volumeDsId→remarkSourceId(挂体/切片)+resolveAnomalyMount+修正spec/plan命名(Task11 Step1) 2026-06-24 20:37:45 +08:00
external/gpr3dviewer feat(gpr3dv): 拷入 3DGPRViewer 数据生成链(geopro_gpr3dv 静态库)+冒烟 2026-06-24 20:19:24 +08:00
installer fix(startup): 样本/PROJ 数据随包+相对定位+启动防护,修复他机登录后无界面崩溃 2026-06-19 17:55:05 +08:00
resources feat(net): RSA 加密器(OpenSSL PKCS1v1.5+base64) + 捕获真实 RSA 公钥 2026-06-07 21:17:38 +08:00
scripts chore(scripts): 本地构建/测试封装(vcvars+VS cmake/ctest, build/release) 2026-06-11 11:30:52 +08:00
spike/ela chore(ela): ElaWidgetTools 评估 spike + 全面迁移计划 + 构建 TEMP 兜底 2026-06-09 21:23:14 +08:00
src feat(gpr3dv): 桥接处理后立方体→geopro量化/分块/VTK体绘制(P2 渲第一条线真三维体) 2026-06-24 20:50:10 +08:00
tests feat(gpr3dv): 桥接处理后立方体→geopro量化/分块/VTK体绘制(P2 渲第一条线真三维体) 2026-06-24 20:50:10 +08:00
tools feat(gpr3dv): 桥接处理后立方体→geopro量化/分块/VTK体绘制(P2 渲第一条线真三维体) 2026-06-24 20:50:10 +08:00
.clang-format scaffold: M1 工程骨架(CMake+vcpkg+分层目录+spike冒烟程序) 2026-06-07 17:41:10 +08:00
.clangd scaffold: M1 工程骨架(CMake+vcpkg+分层目录+spike冒烟程序) 2026-06-07 17:41:10 +08:00
.editorconfig scaffold: M1 工程骨架(CMake+vcpkg+分层目录+spike冒烟程序) 2026-06-07 17:41:10 +08:00
.gitattributes chore: 添加 .gitattributes 规范行尾(文本 LF, 二进制不转换) 2026-06-07 17:41:36 +08:00
.gitignore feat(gpr3dv): 拷入 3DGPRViewer 数据生成链(geopro_gpr3dv 静态库)+冒烟 2026-06-24 20:19:24 +08:00
CLAUDE.md 新增claude.md(karpathy) 2026-06-09 21:24:28 +08:00
CMakeLists.txt feat(gpr3dv): 拷入 3DGPRViewer 数据生成链(geopro_gpr3dv 静态库)+冒烟 2026-06-24 20:19:24 +08:00
CMakePresets.json build: VTK 改用 9.6.2(对 Qt6.11 兼容更好), 源码/构建放 D:; 冒烟程序用 Release 预设匹配 Release VTK 2026-06-07 18:41:24 +08:00
NOTICE.md refactor(ui): 方案A — 移除 ElaWidgetTools,统一为标准 Qt + 单一设计系统 2026-06-10 14:44:59 +08:00
README.md docs(build): 新增 build.bat 一键构建脚本 + README 补充构建与运行说明 2026-06-09 19:07:14 +08:00
build.bat fix(build): build.bat rebuild 块改纯 ASCII(中文注释致 cmd GBK 解析崩 'ld'/'此时不应有 build') 2026-06-16 09:46:01 +08:00
vcpkg.json feat(vtk): P1 复活中央渲染 — VtkSceneController + I3dSceneRepository + Scene加vtkProp 2026-06-15 21:01:26 +08:00

README.md

Geopro 3.0 桌面客户端

地球物理勘探数据可视化桌面客户端Qt 6 + VTK 9C++)。复刻 Geopro 3.0 核心「项目分析视图」。

M1 范围、架构与决策见 docs/superpowers/specs/2026-06-07-geopro-desktop-m1-design.md。 上位技术基线见 docs/Geopro3.0_技术选型与架构规约.md。 环境搭建见 docs/ENV_SETUP_Windows.md

技术栈

Qt 6.11QtWidgets+ VTK 9.6 · CMake + Ninja · 官方 MSVC 预编译 Qt + vcpkg仅非 Qt 依赖)· MSVCVS 2022/2026/ C++17 · ADS 停靠 · GDAL/PROJ · OpenSSL · QtKeychain。

目录(设计 §3

src/core/        纯业务,零 Qt/VTK
src/data/        Repository + 解析器
src/net/         ApiClient / AuthService / Credential
src/render/      VTK 场景与 actor单一场景 + 相机预设)
src/view/        QtWidgets 面板
src/controller/  联动编排
src/app/         入口 + 主窗M1 spikeQt+VTK 冒烟程序)
tests/           gtest / Qt Test
tools/           离线验证脚本validate_samples.py
docs/            规约、API、样本数据、设计文档

构建与运行

前置:Visual Studio 2022/2026(勾选「使用 C++ 的桌面开发」工作负载,自带 CMake + Ninja、Git、vcpkg 并设环境变量 VCPKG_ROOT。构建方案②:单一官方 MSVC 预编译 QtCMAKE_PREFIX_PATHD:/Qt/6.11.1/msvc2022_64、VTK 预编译于 external/vtk-install、ADS/QtKeychain 经 FetchContent 对接同一份 Qt、仅非 Qt 依赖GDAL/PROJ/OpenSSL/…)走 vcpkg。详见 docs/ENV_SETUP_Windows.md

⚠️ 本机 cmake / ninja / cl 默认不在 PATH,必须在已激活 MSVC 环境的终端里构建。下面三种方式都已处理好这一点。

方式一:一键脚本(推荐)

项目根的 build.bat 自动用 vswhere 定位 VS、激活 MSVC 环境、按需配置并编译。在 cmd 里于项目根执行 build <命令>

命令 作用
build(或 build app 编译主程序 geopro_desktop(默认)
build run 编译并运行主程序
build test 编译并跑单元测试ctest
build all 编译全部目标
build configure 改了 CMakeLists / 新增源文件后,强制重新配置

方式二Visual Studio 打开文件夹

VS →「打开本地文件夹」→ 选仓库根 → 自动识别 CMakePresets.json → 选配置 MSVC Release → 菜单「生成 → 全部生成」;运行/调试目标选 geopro_desktop

方式三:手动命令行

开始菜单打开「x64 Native Tools Command Prompt for VS」(已带 MSVC 环境在仓库根CMake 用 VS 自带的全路径,因其不在 PATH

set CMAKE="%VSINSTALLDIR%Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe"
%CMAKE% --preset msvc-release                          :: 配置(首次 / 改 CMakeLists 后)
%CMAKE% --build build/release --target geopro_desktop  :: 编译主程序
build\release\src\app\geopro_desktop.exe               :: 运行
%CMAKE% --build build/release --target geopro_tests    :: 编译测试
ctest --test-dir build/release --output-on-failure     :: 跑测试

Debug 用 --preset msvc-debug,对应 build/debug%VSINSTALLDIR% 在 Native Tools 提示符里已设好。)

构建目标与产物

  • geopro_desktop — 主程序,产物 build/release/src/app/geopro_desktop.exe
  • geopro_tests — 单元测试,配 ctest
  • 不带 --target 编译全部

改了已有 .cpp/.hpp 直接 --buildNinja 增量);改了 CMakeLists.txt 或新增源文件需先 --preset / build configure。链接报 LNK1104(文件被占用)时,先关掉运行中的 geopro_desktop.exe

当前状态

M1 设计完成v2经双专家评审。进入 spike 预研(设计 §15① 全 vcpkg 构建/部署 ② ADS + QVTKOpenGLStereoWidget 停靠稳定 ③ 真实样本跑通 banded contour。spike 通过后展开完整实现计划。