diff --git a/Sofa/Component/Visual/src/sofa/component/visual/VisualStyle.cpp b/Sofa/Component/Visual/src/sofa/component/visual/VisualStyle.cpp index f8348acb19d..ab223fc899f 100644 --- a/Sofa/Component/Visual/src/sofa/component/visual/VisualStyle.cpp +++ b/Sofa/Component/Visual/src/sofa/component/visual/VisualStyle.cpp @@ -70,13 +70,14 @@ void VisualStyle::bwdInit() applyBackupFlags(sofa::core::visual::VisualParams::defaultInstance()); } -void VisualStyle::updateVisualFlags(VisualParams* vparams) + +void VisualStyle::doUpdateVisualFlags(VisualParams* vparams) { backupFlags = vparams->displayFlags(); vparams->displayFlags() = sofa::core::visual::merge_displayFlags(backupFlags, d_displayFlags.getValue()); } -void VisualStyle::applyBackupFlags(VisualParams* vparams) +void VisualStyle::doApplyBackupFlags(VisualParams* vparams) { vparams->displayFlags() = backupFlags; } diff --git a/Sofa/Component/Visual/src/sofa/component/visual/VisualStyle.h b/Sofa/Component/Visual/src/sofa/component/visual/VisualStyle.h index fa16fd4bbdc..4aa9c54152f 100644 --- a/Sofa/Component/Visual/src/sofa/component/visual/VisualStyle.h +++ b/Sofa/Component/Visual/src/sofa/component/visual/VisualStyle.h @@ -66,10 +66,10 @@ class SOFA_COMPONENT_VISUAL_API VisualStyle : public sofa::core::visual::BaseVis protected: VisualStyle(); public: + void doUpdateVisualFlags(VisualParams* ) override; + void doApplyBackupFlags(VisualParams* ) override; void init() override; void bwdInit() override; - void updateVisualFlags(VisualParams* ) override; - void applyBackupFlags(VisualParams* ) override; bool insertInNode(sofa::core::objectmodel::BaseNode* node) override; bool removeInNode(sofa::core::objectmodel::BaseNode* node) override; diff --git a/Sofa/framework/Core/src/sofa/core/visual/BaseVisualStyle.h b/Sofa/framework/Core/src/sofa/core/visual/BaseVisualStyle.h index a96702893ef..971f1647959 100644 --- a/Sofa/framework/Core/src/sofa/core/visual/BaseVisualStyle.h +++ b/Sofa/framework/Core/src/sofa/core/visual/BaseVisualStyle.h @@ -41,9 +41,35 @@ class SOFA_CORE_API BaseVisualStyle : public sofa::core::objectmodel::BaseCompon BaseVisualStyle() { } ~BaseVisualStyle() override { } + virtual void doUpdateVisualFlags(VisualParams* ) { }; + virtual void doApplyBackupFlags(VisualParams* ) { }; + public: - virtual void updateVisualFlags(VisualParams* ) { }; - virtual void applyBackupFlags(VisualParams* ) { }; + /** + * !!! WARNING since v25.12 !!! + * + * The template method pattern has been applied to this part of the API. + * This method calls the newly introduced method "doUpdateVisualFlags" internally, + * which is the method to override from now on. + * + **/ + virtual void updateVisualFlags(VisualParams* vparams) final { + //TODO (SPRINT SED 2025): Component state mechamism + return this->doUpdateVisualFlags(vparams); + }; + + /** + * !!! WARNING since v25.12 !!! + * + * The template method pattern has been applied to this part of the API. + * This method calls the newly introduced method "doApplyBackupFlags" internally, + * which is the method to override from now on. + * + **/ + virtual void applyBackupFlags(VisualParams* vparams) final { + //TODO (SPRINT SED 2025): Component state mechamism + return this->doApplyBackupFlags(vparams); + }; };