# ===================================================================== # geopro_gpr3dv —— vendored 3DGPRViewer 数据生成链(原样拷贝,算法零改动) # # 链路:多通道 _Axx.iprh/.iprb # → IprhParser::loadImpulseMultiChannel → GPRDataModel(traces) # → GPRDataModel::buildVolumeData → volumeData[ch][trace][sample] # → RadarProcessor::runPipeline → 处理后 GPRDataModel # # 版权属用户(lanbingtech 自有),可拷入本仓库 vendored 隔离。 # 仅链 Qt6::Core(QVector/QString/QFile/QVector3D/QJson)+ OpenMP + kissfft。 # 不含 UI/Sql/Network(这些在原版属 GPRWidget/mainwindow,未拷)。 # ===================================================================== # 根工程仅 enable CXX;kissfft 是 C 源(kiss_fft.c/kiss_fftr.c),需显式启用 C 语言, # 否则 .c 文件被 CMake 忽略,导致 kiss_fftr/kiss_fftr_alloc 链接缺失。 enable_language(C) find_package(OpenMP) add_library(geopro_gpr3dv STATIC IprhParser.cpp ImpulseMultiChannelConverter.cpp Rd3Parser.cpp RadarProcessor.cpp PerformanceLogger.cpp # P8 测绘级精确坐标:原样拷自 3DGPRViewer(算法零改动,diff 逐字节一致)。 # CoordinateTransform —— CGCS2000 高斯-克吕格 3°带正反算(零 Qt)。 # TrajectoryCalculator —— RTK GPS + 天线几何 → 每通道每道 CGCS 世界坐标。 # CScanGridder —— 世界坐标逐深度 IDW 网格化 C-scan(堆成世界对齐体)。 # PosParser —— .pos / center.ccc GPS 解析。 CoordinateTransform.cpp TrajectoryCalculator.cpp CScanGridder.cpp PosParser.cpp third_party/kissfft/kiss_fft.c third_party/kissfft/kiss_fftr.c ) # 头文件目录:本目录(GPRDataModel.h 等)+ kissfft(RadarProcessor.cpp 内 #include "kiss_fftr.h")。 target_include_directories(geopro_gpr3dv PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/third_party/kissfft ) # Qt6::Gui 为 QVector3D(GPRDataModel.h 的道三维位置)所需;Core 提供 QVector/QString/QFile/QJson。 target_link_libraries(geopro_gpr3dv PUBLIC Qt6::Core Qt6::Gui) if(OpenMP_CXX_FOUND) target_link_libraries(geopro_gpr3dv PUBLIC OpenMP::OpenMP_CXX) endif() target_compile_features(geopro_gpr3dv PRIVATE cxx_std_17) # vendored 第三方代码:关 Qt 自动工具(无 QObject/moc 需求),并放宽告警(不改算法、不为告警动代码)。 set_target_properties(geopro_gpr3dv PROPERTIES AUTOMOC OFF AUTOUIC OFF AUTORCC OFF) if(MSVC) target_compile_options(geopro_gpr3dv PRIVATE /W0) endif()