diff --git a/src/app/main.cpp b/src/app/main.cpp index 2d316a4..8b71a02 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -500,14 +500,17 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re const ri::Vec3 e2{{p2[0] - o[0], p2[1] - o[1], p2[2] - o[2]}}; const ri::Vec3 normal = ri::normalize(ri::cross(e1, e2)); const std::string volId = sceneView->currentVolumeDsId(); + // 异常归属(spec §8):当前选中切片已保存(selectedSliceDsId 非空)→挂该切片;临时切片→挂体。 + const std::string savedSliceId = interactionMgr->selectedSliceDsId(); anomalyDrawTool->start( o, normal, [&window, sceneView, scene3dRepo, renderWindowPtr, refreshAnomalies, volId, - normal, o](const std::vector& worldPts) { + savedSliceId, normal, o](const std::vector& worldPts) { // 草稿异常:先临时渲染(让用户在对话框前看到所画,且截图含异常)。 geopro::core::Anomaly a; a.markType = geopro::core::AnomalyMarkType::Polygon; - a.remarkSourceId = volId; // Step1 暂挂体;Step3 按所在切片是否已保存改 resolveAnomalyMount + a.remarkSourceId = + geopro::core::resolveAnomalyMount(!savedSliceId.empty(), savedSliceId, volId); a.lineColor = "#ff3030"; a.lineWidth = 2.0; a.dashed = false;