gaozheng
|
652b37b672
|
fix(vtk): 修创建切片/异常清空体·切片选择(issue1)+异常副标题补时间+新切片自动勾选
- issue1 真因:voxel(三维体)段数据来自 mock voxelTree,但 setBuckets 用 splitByCategory 的空桶
(对象树 ds 里无 dd_voxel→必空)先 setDatasets(空) 清掉其勾选,随后 section("voxel")->setDatasets
(voxelTree) 重填时勾选已丢→「创建切片/异常后体/切片选择被清空」。修:setBuckets 跳过 voxel 段
- 异常副标题没时间:saveAnomaly 没设 createTime(main 构建 Anomaly 也没设)→补当前时间(mock)
- 新切片自动勾选:CategorySection::setChecked(dsId) + 保存切片回调在 refreshAnalysis 后勾选新切片
(恢复旧行为,避免刚存的切片因未勾被 syncSlices 隐藏)
未解(下轮):issue2 选第二个体时第一个体切片消失=单"当前体"模型固有限制(syncSlices 只显示
volumeDsId==currentVolumeDsId 的切片),需多体并发切片渲染改造
构建:app 链接通过
|
2026-06-25 19:21:55 +08:00 |
gaozheng
|
09a48d846b
|
fix(ui): 栏位勾选增量保留 + tab去箭头 + 缩进 + 滑块跳位 + 清日志警告
- 栏位状态增量(最关键):CategorySection::rebuildList 记住已勾选 ds、重建后复原;之前每次刷新
(勾选对象/建体/存切片/建异常都触发)清空全部勾选→渲染被重置。复原后 emitChecked 上抛同集,
控制器据 diff 增量保留已渲染图元
- #1 tab 左右滚动箭头:上轮宽度算法没扣 padding 致溢出。扣开销(~42)稍欠宽 + setUsesScrollButtons(false) 兜底
- #6 缩进:容器文本左缘对齐子级复选框列起点(pad 12,非整列36),「容器→带框子级」缩进=树级(14),
与「带框→带框」一致,且名称仍紧邻展开图标(无 #2 大留白)
- 5.5 滑块点轨道跳位:ClickJumpSlider 用 QStyle::sliderValueFromPosition 点哪跳哪(点手柄正常拖动)
- 日志 201× QFont pointSize<=0(-1) 警告:ObjectRowDelegate 去掉多余 setPointSizeF(-1)(setPixelSize 直接生效)
构建:app 链接通过
|
2026-06-25 18:46:06 +08:00 |
gaozheng
|
63fe99dba5
|
docs: 新增全局待优化清单 OPTIMIZATION-BACKLOG.md
后续所有「能用但不够理想、需更大改造」的优化点登记于此并随进展更新状态(区别于当场修的bug)。
首条 OPT-001=放大系数(VE)完全无重绘的即时缩放(当前保留相机重建仍有一次重绘,纯actor缩放待办)。
|
2026-06-25 18:15:41 +08:00 |
gaozheng
|
961af652d7
|
fix(ui): #1 两 tab 平分抽屉宽度,消除旧3栏遗留的右侧空白第三栏位
旧布局 3 栏(三维数据集/二维数据集/三维分析)三分横向空间;重构成 2 tab 后全局 QSS 让 tab 取
内容宽度左对齐,宽抽屉右侧留出约一栏空白(用户感知为"空着的第三栏位")。带样式表的 tab 不响应
setExpanding,故在 ColumnDrawer::resizeEvent 按 barWidth/n 给每个 tab 显式宽度,两 tab 平分填满。
构建:app 链接通过
|
2026-06-25 17:41:55 +08:00 |
gaozheng
|
a6cdd2ff80
|
feat(3d): createSlice 打印 SliceGenerateRequest 请求体到 log(供后端联调)
createVolume(req) 已打印 [volreq] 请求体;补 createSlice 打印 [slicereq] registerSlice 请求体
(对齐 SliceGenerateRequest / POST /business/dsObject/slice/generate):volumeDsId/name/axis/
三点位姿 origin·point1·point2/colorScaleId。projectId 由真实请求层据当前项目填(mock 无上下文留空)。
构建:app 链接通过
|
2026-06-25 17:36:48 +08:00 |
gaozheng
|
7ff6f184e9
|
fix(vtk): 坐标轴/树/筛选跟进修复 + VE保留相机重建 + 异常删除刷actor
坐标轴(5.4/5.5):
- 放大系数改回「点应用才生效」(不再实时):VE 回 applied 信号一并下发;滑块 setPageStep(1)
修「点轨道直接跳到10」;放大系数组与上方留间距
- 5.4 改VE不再先跳远视角:setVerticalExaggeration 走保留相机重建(preserveCameraOnRebuild)→
render(resetCamera=false) 不 ResetCamera、fitOnArrival=false,异步到场数据在当前相机下重绘
树:
- #2 撤销 #6 容器复选框列预留(它造成容器名与展开图标间大留白);容器名紧跟展开图标(小留白)
- #3 时间下拉 chevron 跑左上角:`right 8px center` 是CSS偏移语法Qt不认→改 `right center`+origin
异常:
- 右键删除异常只刷列表没刷actor(场景仍渲染)→ deleteAnomaly 成功回调加 refreshAnomalies(技术债)
CLAUDE.md:新增「发现技术债务必须修,不以'非本轮引入'为由搁置」绑定规则
构建:app 链接通过
|
2026-06-25 17:31:55 +08:00 |
gaozheng
|
6a371c9fa9
|
fix(ui): 筛选行+分析tab滚动重构(批3/#3#7)
- #3 时间筛选下拉:QToolButton 套与 QComboBox 一致的 box(同高/边框/圆角/padding)+右侧统一
SVG chevron(:/icons/chevron-down.svg),去掉手写粗糙的「▾」字符;修高度比装置下拉矮
- #7 分析tab滚动:各段在 tab 内 stretch=1(内容都少时四段平分高度填满、与VTK区等高不出滚动条);
段体 list 关内层纵/横滚动条 + 最小高度=可见项内容总高(有副标题52/否则30,同delegate sizeHint),
内容多则整段拉长、超视口由外层 QScrollArea 统一出单滚动条;去掉末尾 addStretch
构建:app 链接通过
|
2026-06-25 16:55:15 +08:00 |
gaozheng
|
b497fe547c
|
fix(ui): 分段树修复(批2)-选中高亮统一对象树+结构还原TM挂载+缩进一致
- #2 DatasetCardDelegate 选中/hover 改与对象树(ObjectRowDelegate)一致:整行方角填充
(去圆角卡)+左2px accent竖条满高+选中标题加粗;保留双行卡片(创建时间·类型副标题)
- #4 CategorySection 树结构:派生 ds(反演剖面)带派生父指向已被筛掉/属别段的原始 ds 时,
按 parentId 挂载失败→ds 浮到根平铺。改:派生父在本段保留嵌套(体>切片),否则回退挂
结构容器 structParentId(TM),还原 项目/GS/TM/DS 真实层级
- #6 三维体段体相对TM缩进过大:容器节点(项目/GS/TM)不画复选框但保留同宽复选框列,使
各级缩进只差一个树级(原先容器无列宽→子级带框缩进多撑出复选框列宽),与对象树一致
构建:app 链接通过
|
2026-06-25 16:46:32 +08:00 |
gaozheng
|
a2770ba49d
|
fix(vtk): 坐标轴设置交互修复(批1/#5)-增量渲染+VE滑块+隐藏轴全隐+关闭按钮
- 5.1 关闭按钮空白:全局 QPushButton padding(6px14px) 挤掉 ×,显式 setStyleSheet padding:0
- 5.2 取消某轴「显示」时禁用其 min/max 编辑框(show toggled→lo/hi setEnabled,回灌同步)
- 5.3 隐藏轴后刻度数字仍在:SetXAxisVisibility 只关线,补 SetXAxisLabelVisibility/TickVisibility
- 5.4 应用即全量重绘→改增量:setAxesConfig 不再 rebuildInternal(clear场景),改
view_.setAxes+setAxesRanges+renderIncremental(仅重建坐标轴 prop,不动数据/相机)
- 5.5 放大系数下拉→滑块(1~10×,恢复重构前交互):拖动实时改标签,sliderReleased 才发
verticalExaggerationChanged 触发一次重建(VE 改几何须重建但不在拖动中连续重建)
main.cpp 接 applied(去scale) + verticalExaggerationChanged(→控制器+底图)
构建:app 链接通过
|
2026-06-25 16:39:48 +08:00 |
gaozheng
|
70f77c1736
|
refactor(vtk): 退役旧三维数据集/三维分析栏(Task 12 #6)-删 Column3D* 及全部死接线
旧 col3D_/colAnalysis_ 自分段重构后已 hide() 不入 tab、运行时不发信号,其 18 处
connect 全为死接线。本次彻底退役:
- 删 main.cpp 中 10 个 c3(Column3DDataset)+7 个 ca(Column3DAnalysis)+1 个 col3D() VE 接线
- 删 ColumnDrawer 的 col3D_/colAnalysis_ 成员/访问器/实例化/include/前向声明
- 删 4 个源文件 Column3DDataset.{hpp,cpp} / Column3DAnalysis.{hpp,cpp} + CMake 条目
唯一运行时仍在跑的 ca 消费是 refreshAnomalies(读 anomalyFilterMode 写 setAnomalies):
档位改恒「全部显示」(=隐藏 ca 的当前等效行为),异常列表已由 refreshAnalysis 经
voxelTree 全量注入新分段 tab,故去掉 ca->setAnomalies。零可见回归。
已知遗留(旧栏退役暴露,均非本次引入,待新分段段补 API):
- 新建/关闭切片不再自动勾选/取消列表(CategorySection 无 setItemChecked)
- 异常显示过滤档位、列表选中→VTK高亮(R84)随 ca 信号退役,待新段补信号
构建:configure+app 链接通过;测试 isolated 全绿(AsyncRegionBuilder 预取测试满载 flaky,
隔离复跑 3/3 过,属 GPR 域与本次无关)
|
2026-06-25 15:52:14 +08:00 |
gaozheng
|
7de221ddce
|
perf(gpr_poc): view-all 拖动中只视锥裁剪不重建,修转动/缩放thrash卡死
拖动中 viewAllOnInteracting 原每次都提交20条体引擎目标→反复异步重建+上传GPU→
GPU100% thrash→转一下卡死. 改为拖动中只做视锥裁剪(切可见性,便宜)、绝不重建;
重建只在松手EndInteraction触发一次(异步+supersede,快速缩放自动只建最后目标).
|
2026-06-25 15:40:24 +08:00 |
gaozheng
|
f52d38d97b
|
perf(gpr_poc): view-all 概览每线单体 LOD,40 体→20 体修 1fps 卡顿
P11 cmdViewAll 每条线把 baseVolume(常驻底图)+hiresVolume(高清)两层都加进
renderer,20 线=40 体每帧 ray-cast,概览全可见(culled 0)→1.1fps。
改为每线只渲一个体:起步喂 baseImage()(粗 whole,小且不空,≤16384),引擎
按相机备好更合适 LOD 单图(currentImages)后整图换上 → 任何时刻每线 ≤1 体,
最多 20 体。视锥裁剪 toggle 唯一体可见性,拖动降采样保留,静止只渲就绪纹理
不重建。复用 ViewAdaptiveVolumeSource 引擎,未改库。
概览 1.1fps→42.98fps;体数 40→20(20 visible/0 culled);拉近 22.85fps
(17 visible/3 culled,视锥裁剪生效);无纹理维度错误,满帧非空白。
|
2026-06-25 15:20:14 +08:00 |
gaozheng
|
46f0144287
|
perf(vtk): view-all 每条体接入视野自适应引擎修拉近纹理墙
每条线改用 ViewAdaptiveVolumeSource(LOD+视锥裁剪+异步重组,复用未重写),
恒产 ≤16384 单纹理 → 根除拉近时 GL MAX_3D_TEXTURE_SIZE 纹理维度错误。
相机逐线逆变换到局部帧喂引擎选层选区;按世界 AABB 与相机视锥面比对裁屏外线
(base+hires 两层皆隐);mapper 开 Auto/InteractiveAdjustSampleDistances 拖动降采样。
世界摆放 T(Scale-RotateZ-Translate) 与原 makePlacedVolume 同口径,CGCS2000 定位不变。
实测(20条全分辨率,exagg=8):spread 60 线条分离时拉近裁掉 13/20、提速 1.72x
(概览 29.7fps→拉近 50.9fps);两场景纹理维度错误均消除。
|
2026-06-25 14:57:41 +08:00 |
gaozheng
|
572fbf8d7b
|
fix(ui): 容器节点紧凑卡(矮+居中+小留白)+所有段从项目根树形(自剪枝)+体/切片创建时间+筛选行去采集(日期前装置后)
|
2026-06-25 14:47:58 +08:00 |
gaozheng
|
6c8069b87d
|
feat(vtk): 坐标轴设置真正生效-单位(米/英尺)换算+每轴显示开关+自定义刻度范围 打通 render→controller→view→面板
|
2026-06-25 14:16:27 +08:00 |
gaozheng
|
0cfa1ad352
|
feat(ui): 坐标轴设置改抽屉面板(工具条右侧滑出)+补坐标轴单位/放大系数(按原型图)
|
2026-06-25 14:01:45 +08:00 |
gaozheng
|
1b13caa75f
|
fix(vtk): 连续勾选两个 ds 不渲染(取景意图按'是否已有数据到场'判定,非 checkedDs_ 空)
|
2026-06-25 14:01:44 +08:00 |
gaozheng
|
7bdb291fb4
|
fix(gpr): 修世界网格路径短线建体失败(007 深度0 网格无效)
根因:CGCS easting 含带号约 4.0e7 米,存入 QVector3D(float32)后该量级
ULP 约 4 米;近正北短线 007 的东向跨度仅 0.81 米被浮点量化抹平成同值,
CScanGridder 内 maxX<=minX 判退,返回空网格触发「深度0 网格无效」。
桥接层修法(不碰 verbatim 算法):存入 float 轨迹前先平移到局部原点
(首点 floor 到整米),坐标降到约 10^2 米量级,float 亚毫米精度无损;
CScanGridder/TrajectoryCalculator 全程仅用差分/距离/IDW,对常量平移不变,
输出与未平移一致;最后把平移量加回 built.origin 还原真实 CGCS2000 世界米。
007 建成 23x347x195(东x北x深,78.5% 填充);001 不回归(18x1451x199,
world origin 与基线 sub-meter 一致);external/gpr3dviewer 算法文件零改动。
|
2026-06-25 13:43:55 +08:00 |
gaozheng
|
778ffe88c0
|
feat(ui): 三维体段右键全接旧栏操作-体(生成切片/色阶) 切片(保存/另存/导出图片dat/色阶/删除) 异常(显隐/删除)
|
2026-06-25 12:33:22 +08:00 |
gaozheng
|
eb50a87694
|
fix(ui): 右键菜单限三维体段+容器节点去复选框+容器树剪枝(只展示有体路径)
|
2026-06-25 12:17:50 +08:00 |
gaozheng
|
72e82be63c
|
feat(gpr_poc): view-all 摆放升级到精确 CGCS2000(密实立方体+测绘级坐标)
view-all 起点投影从 lonLatToLocalM(简化等距)换成 CoordinateTransform::wgs84ToCgcs2000
(CGCS2000 高斯克吕格3°带,与P8桥接同口径);公共带号+公共原点,每条密实立方体刚体
摆放(平移CGCS2000起点+绕Z航向+Z-only exagg)→ 密实+精确坐标一起渲。
|
2026-06-25 12:08:06 +08:00 |
gaozheng
|
888a63081b
|
feat(ui): 三维体段从项目根完整层级树(容器节点+体挂归属)+段体右键菜单(详情/删除切片异常)(界面修复 4/5)
|
2026-06-25 11:50:17 +08:00 |
gaozheng
|
c2f2b1f94c
|
feat(ui): 日期范围筛选控件(双日历面板/可清空/默认今天)替代单 QDateEdit(界面修复 1/2/3)
|
2026-06-25 11:41:23 +08:00 |
gaozheng
|
2e4e4b24e4
|
fix(login): 验证码图原尺寸清晰显示(去放大缩放,避免糊导致看错字符)
|
2026-06-25 11:18:44 +08:00 |
gaozheng
|
4f205528ad
|
fix(login): 删多余 verifyCodeCheck 步(原版实测=getImageCode→login2 直连)修 verificationCodeExpired + AuthLive 跳过(验证码改图片)
|
2026-06-25 10:51:04 +08:00 |
gaozheng
|
f713c15366
|
feat(gpr3dv): 移植精确坐标/轨迹/世界网格(CGCS2000)+测绘级逐线世界对齐建体
复制 CoordinateTransform/TrajectoryCalculator/CScanGridder/PosParser(逐字节一致)进
external/gpr3dviewer;新增 Gpr3dvSurveyVolumeBridge 按 CGCS2000+逐道GPS轨迹建世界对齐体;
gpr_poc 加 build-survey-all/view-survey-all(各体自带世界origin,精确就位跟GPS弯)。
|
2026-06-25 10:41:02 +08:00 |
gaozheng
|
ccd3040a67
|
fix(login): login2 补 checkCode=用户输入验证码 + codeId(修 checkCodeNotNull)
|
2026-06-25 10:30:20 +08:00 |
gaozheng
|
289b83cd35
|
fix(login): 验证码改为显示后端 getImageCode 的 base64 图(data.image),客户端不再自画(后端已不回明文 code)
|
2026-06-25 10:21:14 +08:00 |
gaozheng
|
0a0d3ba017
|
feat(gpr_poc): 加 view-all 子命令——20 条独立体按真实 GPS 位置/航向摆进同一 3D 场景一起渲
发现 storesDir 下所有 明星路_NNN 体;公共世界原点取全体 .gps 最小经纬;
每条线按其 .gps 起点平移 + 起→止航向绕 Z 旋转定 vtkTransform,整卷体套
UserTransform 全加进同一 renderer 一起渲;仅 Z 方向 exagg 夸张;传函复用 P4
默认醒目版(var4)逐体 2/98 分位标定。--preview 出俯视+斜视两图。
真实位置下同路多趟会重叠成一带,加 --spread M 可沿垂直航向铺开成可分辨测区。
复用 geopro::io::gpr::GpsTrack(parseGps/lonLatToLocalM)。
|
2026-06-25 09:52:17 +08:00 |
gaozheng
|
df25836cbd
|
fix(ui): VtkViewToolbar 重做-三段(设置|视图|缩放)+图标(Gear/Plus/Minus/Fit)+悬浮画布(界面修复 2 一版)
|
2026-06-25 09:47:21 +08:00 |
gaozheng
|
a990f2ea90
|
fix(ui): 左面板 QSplitter 可拖改宽(min180/max560)+禁横向滚动条(界面修复 1)
|
2026-06-25 09:41:06 +08:00 |
gaozheng
|
beb398d478
|
fix(ui): 生成按钮移标题行+采集时间改时间段(不限)+切片不单列段(挂三维体树)(界面修复 3/4/5)
|
2026-06-25 09:34:19 +08:00 |
gaozheng
|
d70590cbef
|
feat(data): 逐线 GPR 体反量化适配器 + GprVolumeRepository
新增数据层方案A纯数据通道,把逐线 GPR 处理后 int16 量化体(io::gpr
buildLineVolumeFromGpr3dv 产 BuiltI16)反量化成 app 渲染链吃的稠密 float 体
(data::VolumeGrid),使真实雷达三维体可经现成 loadVolume->addVolume->buildVoxel
显示(替 mock),零碰并行会话 UI/树/异常热文件。
- builtI16ToVolumeGrid:纯函数适配器,逐体素 Quant::toPhys 反量化,
kBlank 空值哨兵->NaN(下游 buildVoxel 映射透明),origin/spacing/vmin-vmax 搬运。
- createGprVolumeGrid(lineDir,linePrefix,coarse=4):走 P1/P2 链建逐线体->适配。
- 单测:适配器逐值反量化/维度/spacing/origin/kBlank->NaN;全链合成多通道
.iprb 走真链产出有效 VolumeGrid;缺线抛异常。434 测试全过,无回归。
|
2026-06-25 09:06:15 +08:00 |
gaozheng
|
4e2bdc3b81
|
feat(gpr): build-line 健壮支持任意测线 + 新增 build-all 批量建体(磁盘守护/coarse 下采样)
- 桥接 buildLineVolumeFromGpr3dv 增 coarse 参数:沿测线(道/X 轴)按步长下采样,
spacing.x ×stride 保持真实世界尺度;通道/样本保留全分辨率。默认 coarse=1 全分辨率,
对现有调用与测试零影响。
- build-line 增 --coarse F;单线建体核心抽出 buildOneLine,加体维度退化守护
(短桩线 nx<2 等报因跳过不落盘),整条 try/catch 不崩。
- 新增 build-all <lineDir> --outBase <baseDir> [--levels N] [--coarse F]
[--minFreeGB G]:扫 *_A<NN>.iprh 发现全部测线,逐条建到 baseDir/<line>/;
每条建前查磁盘剩余,低于阈值(默认 3G)停并报已建哪些;单条异常捕获跳过不中断批量;
末尾打印各线状态(成功/跳过+因/维度/大小)与合计占用。
- 通道/道/样本全从数据读,不写死;不破坏现有 gpr/bridge 测试(12/12 通过)。
|
2026-06-25 08:42:31 +08:00 |
gaozheng
|
4330e12c3e
|
feat(vtk): 逐线三维体调亮调清晰(gallery 4 组对照)
P3 默认(seismic+严格梯度门+低 ambient)整体偏暗、均匀层被门全透成空。
本次只调视觉(配色/不透明度/梯度门松弛/光照),不动建体/桥接/异步/LOD:
- 新增调亮版 seismic、增强灰度两套配色
- GalleryVariant 加 gradGateRelax(梯度门松弛 0~1)与 ambient 字段
- makeVariantProperty 按松弛度抬低梯度地板+左移阈值,保留弱结构;ambient 由变体控
- 4 组对照重排:var1 暗版基线 / var2 提亮 seismic / var3 jet 高对比 / var4 增强灰度(默认)
- gallery --out 让出图落在 store 目录(tmp/line001_proc),便于就地对照
- 端点仍按该体 2/98 分位自适应,非写死
实测(tmp/line001_proc):默认 var4 平均亮度 21.97→43.28、结构像素 3.9%→23.1%,
明显更亮更清晰;fps 约 51(交互级)。
|
2026-06-25 07:36:40 +08:00 |
gaozheng
|
c94992a8d5
|
docs: #2/#4/异常详情完成,仅剩 #6 退役旧栏(需补 VE 迁移+setItemChecked)
|
2026-06-24 21:47:50 +08:00 |
gaozheng
|
b9a655126f
|
feat: 装置类型枚举接口 listArrayTypes→填字典→段头装置下拉显示+过滤(Task12 #2)
|
2026-06-24 21:45:38 +08:00 |
gaozheng
|
a41b428b09
|
feat: VolumeParamsDialog 扩展-左侧源列表(可增删)+生成位置下拉(GS/TM)+req归属(Task12 #4)
|
2026-06-24 21:37:33 +08:00 |
gaozheng
|
7a294e13ab
|
fix(vtk): 逐线处理后三维体修可见性(传函2/98分位标定+段落取景+段直读)
P2 逐线处理后体(tmp/line001_proc 45305x14x796)渲染近黑。根因:处理后值多集中±360窄带、少量离群±9000,view传函按meta全量化域(±9249)映射→窄带信号近透明→全黑。
修:① 新增 sampleScalarPercentiles 扫该体实际值取2%/98%分位作色阶/不透明度物理端点(裁离群),wired 进 cmdView(底图基准)与 runGalleryVariant(局部段基准);② 默认取景:viewSetupDefaultFrame 直读 level0 沿线中段子体喂高清 mapper(绕开异步LOD在框一段视距下仍选最粗整条细带层),并只框该段包围盒,相机改从+Y正对X-Z宽面(B-scan墙)、小角度取景;梯度不透明度+光照(var4)与exagg仅深度均保留。
效果(tmp/line001_proc --preview):结构像素 0.07%→2.7%(level0),清晰可见GPR内部分层(横向层叠+通道竖纹+基底强反射),fps~78/127(静/交互态)。431 测试全过。
|
2026-06-24 21:37:10 +08:00 |
gaozheng
|
cfd242c106
|
feat: 异常双击详情接入三级树(anomalyById→AnomalyPropertiesDialog)(Task11 Step4b)
|
2026-06-24 21:24:48 +08:00 |
gaozheng
|
7a41fb0f33
|
docs: 续会话第二批进度(工具条/confType/三级树/异常归属完成)+剩余4项真实状态
|
2026-06-24 21:16:10 +08:00 |
gaozheng
|
1d744bab81
|
feat(app): 对象树拉取改 checkedSourcesChanged+confType 分流(支持 GS 直挂 ds)(Task12 #1)
|
2026-06-24 21:13:28 +08:00 |
gaozheng
|
6edfad9a2f
|
feat(app): VtkViewToolbar 接入中央画布(view/zoom/fit + axesSettings 弹窗)(Task12 工具条)
|
2026-06-24 21:10:09 +08:00 |
gaozheng
|
2f07e605c8
|
feat(app): 三维体段「体→切片/异常」三级树注入 + 异常排除渲染勾选 + 创建异常即时进树(Task11 Step4a)
|
2026-06-24 20:59:21 +08:00 |
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 |
gaozheng
|
8b57dd9679
|
feat(app): 创建异常按所在切片是否已保存挂体/切片(resolveAnomalyMount, Task11 Step3)
|
2026-06-24 20:49:19 +08:00 |
gaozheng
|
07be3aef21
|
feat(data): Api3dRepository.anomalyRows 按 remarkSourceId 供三级树注入(Task11 Step2)
|
2026-06-24 20:45:55 +08:00 |
gaozheng
|
52830bbcb0
|
feat(core): Anomaly volumeDsId→remarkSourceId(挂体/切片)+resolveAnomalyMount+修正spec/plan命名(Task11 Step1)
|
2026-06-24 20:37:45 +08:00 |
gaozheng
|
6e3c810dcc
|
docs: 异常归属设计修订-取消独立异常区,异常按归属挂体/切片+三级树(spec+plan Task11+HANDOFF)
|
2026-06-24 20:24:24 +08:00 |
gaozheng
|
0efd84544c
|
feat(gpr3dv): 拷入 3DGPRViewer 数据生成链(geopro_gpr3dv 静态库)+冒烟
把参考实现的"多通道测线→GPRDataModel立方体→RadarProcessor处理"链
原样 vendored 进 external/gpr3dviewer/(算法零改动),生产管线A地基。
- 拷入: GPRDataModel.h/SurveyGeometry.h/RadarTypes.h/IprhParser/
ImpulseMultiChannelConverter/Rd3Parser/RadarProcessor/PerformanceLogger
+ third_party/kissfft/*(逐字复制,未动算法体)。
- CMake: geopro_gpr3dv 静态库,链 Qt6::Core+Gui(QVector3D)+OpenMP+kissfft;
enable_language(C)使kissfft .c入编;接进根构建。
- .gitignore: /external/* + 例外 !/external/gpr3dviewer/ 使 vendored 入库,
qwt-src/vtk-install 仍忽略。
- 冒烟 tools/gpr3dv_smoke: 走原版 API loadImpulseMultiChannel→buildVolumeData
→runPipeline(默认流水线)。线001冒烟: 通道数=14(读自数据)、立方体
14x45305x821、处理前后平均绝对幅值 393.58→360.34(处理生效)。
- 全量构建通过,425/425 测试通过。
|
2026-06-24 20:19:24 +08:00 |