geopro/src/render
gaozheng 571a72701d feat(radar): 三维交互精修 + 增益切换 + 视角导航(B#1/#2) + 全链路方案 spec
交互精修(雷达+反演通用):
- 切片拾取精确化: 光标射线 vs 切片真实矩形求交 + 可见数据(alpha)双判定, 去外扩
- 取消选中: 点体/空白/帘面即取消(精确命中判据) + Esc 兜底; 选中后上下拖动方向修正
- 滚轮步长: 按沿法向体素间距 x N(Shift 粗调), 不随体长跳变
- 双击正视: 缩放到切片(面内尺寸+视角框住), 不再又小又远
- 不透明度: 各向异性体用特征尺度(门控; 近立方反演维持原对角线)

视角导航(B 方案):
- #1 绕拾取点旋转: 无选中时绕光标射线穿体中段点(按下捕获/拖动固定), 不甩飞
- #2 沿线位置滑块: 雷达专属, 沿最长轴 dolly 到窗口(focusAlongLongAxis), 仅细长体显示

雷达显示增益: 右键切 AGC/保幅 tpow/关, 纯显示重建不动原始数据

spec: 落地 导入->处理->渲染 全链路方案(结合 POC 评估), 定预渲染可选->混合渲染源(IVolumeRenderSource)决策
2026-06-30 18:58:42 +08:00
..
actors feat(radar): 三维交互精修 + 增益切换 + 视角导航(B#1/#2) + 全链路方案 spec 2026-06-30 18:58:42 +08:00
ground feat(vtk): 底图瓦片坐标数学 TileMath(EPSG:3857 经纬↔z/x/y+瓦片边界)+单测(P5基石) 2026-06-16 21:29:59 +08:00
interact feat(radar): 三维交互精修 + 增益切换 + 视角导航(B#1/#2) + 全链路方案 spec 2026-06-30 18:58:42 +08:00
lod fix(lod): selectLod 最粗层兜底裁剪,保证返回区间恒不超 maxTextureDim 2026-06-24 09:09:01 +08:00
source feat(vtk): 常驻粗底图+局部高清叠加(永不空白) 2026-06-24 12:03:10 +08:00
CMakeLists.txt feat(render): C3-1 AsyncRegionBuilder 后台异步重组 + 双缓冲交接 2026-06-24 09:56:55 +08:00
CameraPreset.cpp feat(3d-view): 二维分析A期(一场景两相机)+视图切换/底图/增量修复 2026-06-26 20:53:53 +08:00
CameraPreset.hpp feat(3d-view): 二维分析A期(一场景两相机)+视图切换/底图/增量修复 2026-06-26 20:53:53 +08:00
ColorLutBuilder.cpp feat(3d): 色阶跨视图同步真源 + 三维体/切片白化与不透明度重做 2026-06-28 22:14:46 +08:00
ColorLutBuilder.hpp feat(3d): 色阶跨视图同步真源 + 三维体/切片白化与不透明度重做 2026-06-28 22:14:46 +08:00
ContourBands.cpp fix(review): 修 cpp-review HIGH/MEDIUM —散点ys越界/colorSvc析构泄漏/QwtPlot autoDelete注释/控制器catch(...)防busy死锁 + 清死代码simplifyInPlace/simplifyTol + 填充等比限幅 + DTO行数校验+枚举钳制 + ContourLine.level默认NaN 2026-06-11 18:59:19 +08:00
ContourBands.hpp fix(review): 修 cpp-review HIGH/MEDIUM —散点ys越界/colorSvc析构泄漏/QwtPlot autoDelete注释/控制器catch(...)防busy死锁 + 清死代码simplifyInPlace/simplifyTol + 填充等比限幅 + DTO行数校验+枚举钳制 + ContourLine.level默认NaN 2026-06-11 18:59:19 +08:00
README.md feat(vtk): P3 三维分析切片交互(核心) — 轴向/任意切片+滚轮+拾取+正视 2026-06-16 08:23:16 +08:00
Scene.cpp feat(vtk): P1 复活中央渲染 — VtkSceneController + I3dSceneRepository + Scene加vtkProp 2026-06-15 21:01:26 +08:00
Scene.hpp feat(vtk): P1 复活中央渲染 — VtkSceneController + I3dSceneRepository + Scene加vtkProp 2026-06-15 21:01:26 +08:00
VoxelFromScatters.cpp fix(render): 切片与体素纵向一致 — 把纵向夸张烤进体素 image(切片穿过体素而非在旁) 2026-06-08 11:46:39 +08:00
VoxelFromScatters.hpp fix(render): 切片与体素纵向一致 — 把纵向夸张烤进体素 image(切片穿过体素而非在旁) 2026-06-08 11:46:39 +08:00

README.md

render — VTK 渲染层

独占 vtkRenderWindow,统一创建/持有所有 actorview 不持有 actor。单一场景 + 相机预设(设计 §4

子目录:

  • Scene — 场景图、项目世界坐标空间、可见性;持有 RenderWindow
  • actors/ — ScatterActor, GridContourActor, VoxelVolumeActor, AnomalyActor, TerrainActor
  • color/ — ColorLutBuildercolorBar → 离散 vtkLookupTable, ScalarBar
  • camera/ — CameraPresetTop2D / Free3D
  • interact/ — SlicePlaneMath纯几何可测+ SliceToolvtkImagePlaneWidget轴向 + 任意 45° reslice 着色剖面)+ PickInteractorStyle拾取/双击正视/滚轮)+ InteractionManager持切片/选中态/分发)。切片走 vtkImageReslice 路线vtkImagePlaneWidget 内部 reslice + 纹理),非 vtkCutterspec §9.1
  • ground/ — IGroundLayer + DemImageGroundLayerM1TileGroundLayerM1.5

网格管线:vtkImageData(+vtkWarpScalar) → vtkDataSetSurfaceFilter → vtkBandedPolyDataContourFilter(GenerateContourEdgesOn)(设计 §4.3)。