diff --git a/src/render/interact/InteractionManager.cpp b/src/render/interact/InteractionManager.cpp index 61c74fe..33baf68 100644 --- a/src/render/interact/InteractionManager.cpp +++ b/src/render/interact/InteractionManager.cpp @@ -263,6 +263,17 @@ void InteractionManager::closeAll() { PickInteractorStyle* InteractionManager::pickStyle() const { return style_; } void InteractionManager::setMode2D(bool is2D) { + // 进入二维分析:主动取消「三维前视图」的所有选中。否则残留的选中切片会让 onWheel 持续消费滚轮 + // (二维下无法缩放),且切回三维仍残留高亮。清 selected_ + 切片高亮;再经 onSliceSelectionChanged("") + // 联动清三维分析列表选中行与异常高亮(app 层接线)。与 VtkSceneView::setAnalysisMode2D 离开二维时 + // clearMapLineSelection 清足迹选中相对称。 + if (is2D) { + if (selected_ >= 0) { + selected_ = -1; + updateSelectionVisual(); // 清切片高亮(切回三维不残留选中) + } + if (onSliceSelectionChanged) onSliceSelectionChanged(std::string{}); + } // 切片属三维内容:二维分析隐藏(不销毁→切回零重建)、三维分析显示。 for (auto& s : slices_) if (s) s->setVisible(!is2D);