2026-05-24-20-06-08 修正可见构件映射错位
This commit is contained in:
18
工程分析/经验记录.md
18
工程分析/经验记录.md
@@ -1815,3 +1815,21 @@ C. 解决问题方案
|
||||
D. 后续如何避免问题
|
||||
|
||||
微调控件应把“单击精度”和“长按速度”作为两个参数设计;不要为了长按快而增大最小 step,也不要为了单击精细而让长按只能按最小 step 慢慢跑。调整 repeat 参数后要确认松开、移出和取消 pointer 时定时器会停止。
|
||||
|
||||
## 2026-05-24-20-06-08 可见构件不能改变映射坐标系
|
||||
|
||||
A. 具体问题
|
||||
|
||||
用户反馈不显示 `liver_artery` 时,`liver_segment_S2`、`liver_segment_S3` 不显示或需要跳到更靠后的切片才显示;打开 `liver_artery` 后,`S2/S3` 又回到原先层位附近。
|
||||
|
||||
B. 产生问题原因
|
||||
|
||||
逆向分割映射视图为了减少高面数 STL 加载量,只加载当前眼睛打开的高精度 preview;但绘制前的 `getModelSceneMetrics` 也使用了同一组可见文件计算模型全局 bounds。隐藏 `liver_artery` 后,全局中心、基础缩放和 DICOM Z 轴映射被重新计算,其他肝段构件等于换了一个坐标系,所以出现消失或跳层。
|
||||
|
||||
C. 解决问题方案
|
||||
|
||||
将“绘制用高精度 preview”和“坐标系用全局 bounds preview”拆开:高精度 preview 仍只加载当前可见构件;另行用低抽样 preview 读取全部 STL 的 bounds,并在 `drawVoxelOverlayLayer` 中使用全部 STL bounds 计算统一 `ModelSceneMetrics`。这样关闭 `liver_artery` 只会隐藏它自己,不会让 `liver_segment_S2/S3` 的层位和位置改变。
|
||||
|
||||
D. 后续如何避免问题
|
||||
|
||||
涉及 DICOM/STL 配准的坐标系必须独立于可见性、筛选条件和 UI 状态;性能优化可以只加载可见构件的高精度网格,但全局中心、缩放、slice Z 映射应来自稳定的全部模型边界。凡是用户反馈“隐藏某构件后其他构件位置变了”,优先检查 bounds 是否被可见列表重算。
|
||||
|
||||
Reference in New Issue
Block a user