From 17af20aa20bb48b50e72ce6ce2cd45d3977c9c4e Mon Sep 17 00:00:00 2001 From: Florian Foinant-Willig Date: Mon, 8 Apr 2024 17:43:54 +0200 Subject: [PATCH] FEM: allow to Suppress the constraints (#12359) * FEM: Introduce suppressible constraints * fix public inheritance --- src/Mod/Fem/App/FemConstraint.cpp | 2 ++ src/Mod/Fem/App/FemConstraint.h | 3 ++- src/Mod/Fem/Gui/ViewProviderFemConstraint.cpp | 2 ++ src/Mod/Fem/Gui/ViewProviderFemConstraint.h | 5 ++++- src/Mod/Fem/femtools/membertools.py | 5 ++++- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Mod/Fem/App/FemConstraint.cpp b/src/Mod/Fem/App/FemConstraint.cpp index 756b8ab1ac..6034569f68 100644 --- a/src/Mod/Fem/App/FemConstraint.cpp +++ b/src/Mod/Fem/App/FemConstraint.cpp @@ -109,6 +109,8 @@ Constraint::Constraint() Normals.setValues(std::vector()); References.setScope(App::LinkScope::Global); + + App::SuppressibleExtension::initExtension(this); } Constraint::~Constraint() = default; diff --git a/src/Mod/Fem/App/FemConstraint.h b/src/Mod/Fem/App/FemConstraint.h index 9542f00f43..6ebc3ff374 100644 --- a/src/Mod/Fem/App/FemConstraint.h +++ b/src/Mod/Fem/App/FemConstraint.h @@ -30,6 +30,7 @@ #include #include #include +#include namespace Fem @@ -57,7 +58,7 @@ namespace Fem * and @ref Scale and the protected method @ref getPoints(points&, normals&, * scale&). */ -class FemExport Constraint: public App::DocumentObject +class FemExport Constraint: public App::DocumentObject, public App::SuppressibleExtension { PROPERTY_HEADER_WITH_OVERRIDE(Fem::Constraint); diff --git a/src/Mod/Fem/Gui/ViewProviderFemConstraint.cpp b/src/Mod/Fem/Gui/ViewProviderFemConstraint.cpp index 30323d0961..8000d55004 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemConstraint.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemConstraint.cpp @@ -84,6 +84,8 @@ ViewProviderFemConstraint::ViewProviderFemConstraint() wizardWidget = nullptr; wizardSubLayout = nullptr; constraintDialog = nullptr; + + Gui::ViewProviderSuppressibleExtension::initExtension(this); } ViewProviderFemConstraint::~ViewProviderFemConstraint() diff --git a/src/Mod/Fem/Gui/ViewProviderFemConstraint.h b/src/Mod/Fem/Gui/ViewProviderFemConstraint.h index 6f157b9d62..73c572629d 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemConstraint.h +++ b/src/Mod/Fem/Gui/ViewProviderFemConstraint.h @@ -31,6 +31,8 @@ #include #include +#include + class SoFontStyle; class SoText2; @@ -44,7 +46,8 @@ namespace FemGui class TaskFemConstraint; -class FemGuiExport ViewProviderFemConstraint: public Gui::ViewProviderGeometryObject +class FemGuiExport ViewProviderFemConstraint: public Gui::ViewProviderGeometryObject, + public Gui::ViewProviderSuppressibleExtension { PROPERTY_HEADER_WITH_OVERRIDE(FemGui::ViewProviderFemConstraint); diff --git a/src/Mod/Fem/femtools/membertools.py b/src/Mod/Fem/femtools/membertools.py index 6afb1c92ef..e75ce7d593 100644 --- a/src/Mod/Fem/femtools/membertools.py +++ b/src/Mod/Fem/femtools/membertools.py @@ -59,7 +59,10 @@ def get_member(analysis, t): for m in analysis.Group: # since is _derived_from is used the father could be used # to test too (ex. "Fem::FemMeshObject") - if femutils.is_derived_from(m, t): + if (femutils.is_derived_from(m, t) + and not (m.hasExtension("App::SuppressibleExtension") + and m.Suppressed) + ): matching.append(m) return matching