From 900afce86fe97d3fbeafb9242678e5e77ee1922f Mon Sep 17 00:00:00 2001 From: hlorus <64740362+hlorus@users.noreply.github.com> Date: Thu, 15 May 2025 07:53:20 +0200 Subject: [PATCH] Measure: Add MeasureElementType::Surface --- src/App/MeasureManager.h | 3 ++- src/Mod/Measure/App/MeasureArea.cpp | 4 ++-- src/Mod/Part/App/MeasureClient.cpp | 7 +++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/App/MeasureManager.h b/src/App/MeasureManager.h index 66379c21a4..a628648efb 100644 --- a/src/App/MeasureManager.h +++ b/src/App/MeasureManager.h @@ -51,7 +51,8 @@ enum class MeasureElementType CURVE, // Has a length but no radius or axis PLANE, CYLINDER, - Volume, + VOLUME, + SURFACE, }; diff --git a/src/Mod/Measure/App/MeasureArea.cpp b/src/Mod/Measure/App/MeasureArea.cpp index 091467f963..e7b5d2f271 100644 --- a/src/Mod/Measure/App/MeasureArea.cpp +++ b/src/Mod/Measure/App/MeasureArea.cpp @@ -68,8 +68,8 @@ bool MeasureArea::isValidSelection(const App::MeasureSelection& selection) return false; } - // TODO: Also support Cylinder & Volume? - if ((type != App::MeasureElementType::PLANE && type != App::MeasureElementType::CYLINDER)) { + if ((type != App::MeasureElementType::PLANE && type != App::MeasureElementType::CYLINDER + && type != App::MeasureElementType::SURFACE)) { return false; } } diff --git a/src/Mod/Part/App/MeasureClient.cpp b/src/Mod/Part/App/MeasureClient.cpp index 35230ee242..594297ee99 100644 --- a/src/Mod/Part/App/MeasureClient.cpp +++ b/src/Mod/Part/App/MeasureClient.cpp @@ -157,11 +157,12 @@ App::MeasureElementType PartMeasureTypeCb(App::DocumentObject* ob, const char* s switch (surface.GetType()) { case GeomAbs_Cylinder: { return App::MeasureElementType::CYLINDER; } case GeomAbs_Plane: { return App::MeasureElementType::PLANE; } - default: { return App::MeasureElementType::INVALID; } + default: { + return App::MeasureElementType::SURFACE; } } } case TopAbs_SOLID: { - return App::MeasureElementType::Volume; + return App::MeasureElementType::VOLUME; } default: { return App::MeasureElementType::INVALID; @@ -461,5 +462,3 @@ Part::CallbackRegistrationList Part::MeasureClient::reportRadiusCB() callbacks.emplace_back("Sketcher", "Radius", MeasureRadiusHandler); return callbacks; } - -