From 5c412eedfaef2f61d860a4008c75105752cfe5b5 Mon Sep 17 00:00:00 2001 From: gaozheng Date: Thu, 25 Jun 2026 20:45:05 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20OPT-002=20=E5=85=A8=E7=B0=87=E5=AE=8C?= =?UTF-8?q?=E6=88=90-=E2=91=A3=E6=8B=BE=E5=8F=96=E4=B8=B2=E9=80=89?= =?UTF-8?q?=E5=B7=B2=E4=BF=AE(63cda56,=E4=BD=93PickableOff)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/OPTIMIZATION-BACKLOG.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/OPTIMIZATION-BACKLOG.md b/docs/OPTIMIZATION-BACKLOG.md index 4555012..efadcd9 100644 --- a/docs/OPTIMIZATION-BACKLOG.md +++ b/docs/OPTIMIZATION-BACKLOG.md @@ -36,7 +36,7 @@ --- ## OPT-002 · 多三维体并发的切片渲染 -- **状态**:🟢 Done(issue2/③/反向②,commit `69e8790`);④ 切片拾取串选仍 🔴 Open(见下) +- **状态**:🟢 Done(issue2/③/反向② `69e8790`;④ 拾取串选 `63cda56`,体 PickableOff,逻辑修复待 live 复核) - **记录日期**:2026-06-25 - **背景/现状**:切片渲染绑定单一「当前体」——`syncSlices` 只显示 `sp.volumeDsId == currentVolumeDsId()` 的切片,`currentVolumeDsId` = 最后添加的体(`VtkSceneView::volumeOwnerDs_`)。勾选第二个三维体后它 @@ -50,9 +50,8 @@ - **同簇问题(一并改造)**: - **③ 右键体却把切片建到 current 体**:右键三维体 A「生成切片」时仍用 `currentVolumeDsId()`(=最后渲染的 体)创建切片。需把目标体 dsId 随右键带下来,并让 addSlice 用 A 的 image(依赖多体 image 管理)。 - - **④ 切片拾取串选(仍 Open)**:点任意切片却选中上下切片。根因是重叠切片下 VTK 的事件路由「最前 - 平面优先」+ `nearestSlice` 启发式:多张切片在屏幕投影重叠时,最前/最近的那张被选中。 - `vtkImagePlaneWidget`(VTK9.6) 不暴露 texture-plane actor,pick-list 精确化方案已试→回退。 - **须在可交互点击的运行环境里实地调试**(点击重叠的 3D 切片才能验证),盲改会破坏现有可用的选择。 - 候选方案:自管切片 actor 做精确 pick / 重叠时让用户循环切换 / 调 widget 优先级。 -- **更新**:2026-06-25 issue2+③+反向② 已实现(`69e8790`);④ 留待能 live 调试的会话单独做。 + - **④ 切片拾取串选**:已修(`63cda56`)。根因=点击落体内部时 picker 命中体、worldPoint 落体内 → + `nearestSlice` 按平面距离选错切片。修法=体 actor `PickableOff`,光标拾取只落切片平面 → worldPoint + 落在光标下那张切片 → 选对(`onPick` 仅命中时触发,未命中不误选)。重叠切片仍按最前优先(合理)。 + 逻辑闭合但**未 live 点击验证**(工具无法交互点击 3D 切片);若仍有偏差需 live 复核(重叠循环切换等)。 +- **更新**:2026-06-25 issue2+③+反向²(`69e8790`)+④(`63cda56`) 全部实现。