From 0f74a58447aa50847ea2637a014055a592a5c442 Mon Sep 17 00:00:00 2001 From: EulalieCoevoet Date: Fri, 27 Mar 2026 18:36:28 +0100 Subject: [PATCH 1/2] [visual] VisualModelImpl: adds resetMaterial variable --- .../Visual/src/sofa/component/visual/VisualModelImpl.cpp | 3 ++- .../Visual/src/sofa/component/visual/VisualModelImpl.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp index 5698776ff6c..8f5e6e3a6e0 100644 --- a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp +++ b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp @@ -788,8 +788,9 @@ void VisualModelImpl::init() d_translation.setValue(Vec3Real()); d_rotation.setValue(Vec3Real()); d_scale.setValue(Vec3Real(1, 1, 1)); -} + m_resetMaterial = d_material.getValue(); +} void VisualModelImpl::initPositionFromVertices() { diff --git a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.h b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.h index ef92f77d03c..2b5b6062988 100644 --- a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.h +++ b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.h @@ -156,6 +156,7 @@ class SOFA_COMPONENT_VISUAL_API VisualModelImpl : public core::visual::VisualMod sofa::type::Vec3f bbox[2]; Data< sofa::type::Material > d_material; + sofa::type::Material m_resetMaterial; Data< bool > d_putOnlyTexCoords; Data< bool > d_srgbTexturing; From 7bdcbdb80df628ef5b50e1189d8f9a2816c30d04 Mon Sep 17 00:00:00 2001 From: EulalieCoevoet Date: Mon, 13 Apr 2026 14:36:28 +0200 Subject: [PATCH 2/2] implement requested changes (rename, protected, getter) --- .../Visual/src/sofa/component/visual/VisualModelImpl.cpp | 2 +- .../Visual/src/sofa/component/visual/VisualModelImpl.h | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp index 8f5e6e3a6e0..c6f0a176dd7 100644 --- a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp +++ b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp @@ -789,7 +789,7 @@ void VisualModelImpl::init() d_rotation.setValue(Vec3Real()); d_scale.setValue(Vec3Real(1, 1, 1)); - m_resetMaterial = d_material.getValue(); + m_savedMaterial = d_material.getValue(); } void VisualModelImpl::initPositionFromVertices() diff --git a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.h b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.h index 2b5b6062988..959f4e314b7 100644 --- a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.h +++ b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.h @@ -156,7 +156,6 @@ class SOFA_COMPONENT_VISUAL_API VisualModelImpl : public core::visual::VisualMod sofa::type::Vec3f bbox[2]; Data< sofa::type::Material > d_material; - sofa::type::Material m_resetMaterial; Data< bool > d_putOnlyTexCoords; Data< bool > d_srgbTexturing; @@ -347,6 +346,8 @@ class SOFA_COMPONENT_VISUAL_API VisualModelImpl : public core::visual::VisualMod d_edges.setValue(*e); } + const sofa::type::Material& getSavedMaterial() {return m_savedMaterial;} + virtual void computePositions(); virtual void computeMesh(); virtual void computeNormals(); @@ -400,6 +401,9 @@ class SOFA_COMPONENT_VISUAL_API VisualModelImpl : public core::visual::VisualMod /// Internal buffer similar to @sa m_dirtyTriangles but to be used by topolgy Data @sa d_quads callback when points are removed. std::set< sofa::core::topology::BaseMeshTopology::QuadID> m_dirtyQuads; + + /// Store the material information, to restore it after rendering with a specific material for selection (GUI related). + sofa::type::Material m_savedMaterial; };