fix(vtk): ④ 切片拾取串选-体 actor 设 PickableOff,拾取只落切片平面

点击落到体内部时 picker 命中体、worldPoint 落体内 → nearestSlice 按平面距离选错切片(常选最前的
上下切片)。改:addVolume 后 volume->PickableOff() → 光标拾取只命中切片纹理平面(及帘面),worldPoint
落在光标下那张切片 → 选对。onPick 仅在命中时触发(未命中不误选);旋转支点用选中切片不受影响;
widget 直接交互(selectByTool)本就精确、不受影响。重叠切片仍按最前优先(合理)。

构建:app 链接通过;434/434 测试通过
This commit is contained in:
gaozheng 2026-06-25 20:43:49 +08:00
parent 51090962c3
commit 63cda568e5
1 changed files with 3 additions and 0 deletions

View File

@ -164,6 +164,9 @@ void VtkSceneView::addVolume(const std::string& dsId, const geopro::data::Volume
vol.spacing[0], vol.spacing[1], vol.spacing[2] * verticalExaggeration_, vol.vmin, vol.vmax, vol.spacing[0], vol.spacing[1], vol.spacing[2] * verticalExaggeration_, vol.vmin, vol.vmax,
image); image);
if (volume) { if (volume) {
// 体 actor 不参与拾取切片选中靠点中切片平面widget 交互/拾取)。否则点击落到体内部时
// picker 命中体、worldPoint 落体内 → nearestSlice 按平面距离选错切片(用户 ④ 串选)。
volume->PickableOff();
scene_.addViewProp(volume); scene_.addViewProp(volume);
dsProps_[dsId].push_back(volume); dsProps_[dsId].push_back(volume);
currentVolumeImage_ = image; currentVolumeImage_ = image;