diff --git a/src/render/interact/SliceTool.cpp b/src/render/interact/SliceTool.cpp index 19b92ce..033fa9a 100644 --- a/src/render/interact/SliceTool.cpp +++ b/src/render/interact/SliceTool.cpp @@ -78,10 +78,15 @@ SliceTool::SliceTool(vtkImageData* image, vtkRenderWindowInteractor* interactor, } } - // 照原型配置(f57291a):左键拖动=移动切面(默认左键是窗位调整,无用);中键=取值光标。 - // 切面边缘(margins)拖动可旋转切面 → 任意切片"可任意调整角度"(F25)。 + // 左键拖动=移动切面(默认左键是窗位调整,无用);中键=取值光标。 widget_->SetLeftButtonAction(vtkImagePlaneWidget::VTK_SLICE_MOTION_ACTION); widget_->SetMiddleButtonAction(vtkImagePlaneWidget::VTK_CURSOR_ACTION); + // 旋转只允许"任意切片"(F25 可任意调整);轴向(上下/前后/左右)角度固定(G22-24 角度不能再调整): + // 把切面边缘(margins, 旋转抓取区)设为 0 → 抓哪里都只移动、不旋转。 + if (axis_ != SliceAxis::Oblique) { + widget_->SetMarginSizeX(0.0); + widget_->SetMarginSizeY(0.0); + } widget_->On(); // 保持 widget 交互开启:任意切片可拖动调整角度/位置(F25 '可任意调整')。