From 80eb69234a1fbee497d7bd2cfcf3c19271e404ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Tue, 13 May 2025 10:41:59 +0200 Subject: [PATCH 01/13] feat(sed_sprint): apply template method to Contact --- .../Core/src/sofa/core/collision/Contact.h | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/Sofa/framework/Core/src/sofa/core/collision/Contact.h b/Sofa/framework/Core/src/sofa/core/collision/Contact.h index 8e380b36a92..694e0ba282c 100644 --- a/Sofa/framework/Core/src/sofa/core/collision/Contact.h +++ b/Sofa/framework/Core/src/sofa/core/collision/Contact.h @@ -60,14 +60,26 @@ class SOFA_CORE_API Contact : public virtual objectmodel::BaseObject public: /// Get the pair of collision models which are in contact - virtual std::pair< core::CollisionModel*, core::CollisionModel* > getCollisionModels() = 0; + virtual std::pair< core::CollisionModel*, core::CollisionModel* > getCollisionModels() final + { + return this->doGetCollisionModels(); + }; /// Set the generic description of a contact point - virtual void setDetectionOutputs(DetectionOutputVector* outputs) = 0; + virtual void setDetectionOutputs(DetectionOutputVector* outputs) final + { + this->doSetDetectionOutputs(outputs); + }; - virtual void createResponse(objectmodel::BaseContext* group) = 0; + virtual void createResponse(objectmodel::BaseContext* group) final + { + this->doCreateResponse(group); + }; - virtual void removeResponse() = 0; + virtual void removeResponse() final + { + this->doRemoveResponse(); + }; /// Return true if this contact should be kept alive, even if objects are no longer in collision virtual bool keepAlive() { return false; } @@ -108,5 +120,17 @@ class SOFA_CORE_API Contact : public virtual objectmodel::BaseObject return sofa::core::objectmodel::New(model1, model2, inter); } +protected: + /// Get the pair of collision models which are in contact + virtual std::pair< core::CollisionModel*, core::CollisionModel* > doGetCollisionModels() = 0; + + /// Set the generic description of a contact point + virtual void doSetDetectionOutputs(DetectionOutputVector* outputs) = 0; + + virtual void doCreateResponse(objectmodel::BaseContext* group) = 0; + + virtual void doRemoveResponse() = 0; + + }; } // namespace sofa::core::collision From 4e7e3c89f179fd20460ef431e90abd3dd709bf47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Tue, 13 May 2025 10:46:03 +0200 Subject: [PATCH 02/13] feat(sed_sprint): update child class BarycentricStickContact --- .../contact/BarycentricStickContact.h | 20 +++++++++++-------- .../contact/BarycentricStickContact.inl | 6 +++--- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricStickContact.h b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricStickContact.h index 07da452b284..beadb24f438 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricStickContact.h +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricStickContact.h @@ -74,14 +74,6 @@ class BarycentricStickContact : public core::collision::Contact void cleanup() override; - std::pair getCollisionModels() override { return std::make_pair(model1,model2); } - - void setDetectionOutputs(OutputVector* outputs) override; - - void createResponse(core::objectmodel::BaseContext* group) override; - - void removeResponse() override; - /// Return true if this contact should be kept alive, even if objects are no longer in collision bool keepAlive() override { return d_keepAlive.getValue(); } @@ -89,6 +81,18 @@ class BarycentricStickContact : public core::collision::Contact void setKeepAlive(bool val) override { d_keepAlive.setValue(val); } void draw(const core::visual::VisualParams* vparams) override; + +protected: + std::pair doGetCollisionModels() override + { + return std::make_pair(model1,model2); + } + + void doSetDetectionOutputs(OutputVector* outputs) override; + + void doCreateResponse(core::objectmodel::BaseContext* group) override; + + void doRemoveResponse() override; }; } // namespace sofa::component::collision::response::contact diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricStickContact.inl b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricStickContact.inl index 5a7aa8f3aec..1fd89e38a56 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricStickContact.inl +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricStickContact.inl @@ -57,7 +57,7 @@ void BarycentricStickContact -void BarycentricStickContact::setDetectionOutputs(OutputVector* o) +void BarycentricStickContact::doSetDetectionOutputs(OutputVector* o) { if (o==nullptr) return; TOutputVector& outputs = *static_cast(o); @@ -184,7 +184,7 @@ void BarycentricStickContact -void BarycentricStickContact::createResponse(core::objectmodel::BaseContext* group) +void BarycentricStickContact::doCreateResponse(core::objectmodel::BaseContext* group) { if (ff!=nullptr) { @@ -203,7 +203,7 @@ void BarycentricStickContact -void BarycentricStickContact::removeResponse() +void BarycentricStickContact::doRemoveResponse() { if (ff!=nullptr) { From 1c0c22eed8b96675ff9df2d02ae53edb777e4610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Tue, 13 May 2025 10:48:46 +0200 Subject: [PATCH 03/13] feat(sed_sprint): update child class BarycentricPenaltyContact --- .../response/contact/BarycentricPenalityContact.h | 14 +++++++++----- .../contact/BarycentricPenalityContact.inl | 6 +++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricPenalityContact.h b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricPenalityContact.h index 0ed5e57fbd9..e655dd2f9c0 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricPenalityContact.h +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricPenalityContact.h @@ -79,15 +79,19 @@ class BarycentricPenalityContact : public core::collision::Contact public: void cleanup() override; - std::pair getCollisionModels() override { return std::make_pair(model1,model2); } + void draw(const core::visual::VisualParams* vparams) override; - void setDetectionOutputs(OutputVector* outputs) override; +protected: + std::pair doGetCollisionModels() override + { + return std::make_pair(model1,model2); + } - void createResponse(core::objectmodel::BaseContext* group) override; + void doSetDetectionOutputs(OutputVector* outputs) override; - void removeResponse() override; + void doCreateResponse(core::objectmodel::BaseContext* group) override; - void draw(const core::visual::VisualParams* vparams) override; + void doRemoveResponse() override; }; diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricPenalityContact.inl b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricPenalityContact.inl index 1652a782b3e..97b4258043e 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricPenalityContact.inl +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BarycentricPenalityContact.inl @@ -66,7 +66,7 @@ void BarycentricPenalityContact -void BarycentricPenalityContact::setDetectionOutputs(OutputVector* o) +void BarycentricPenalityContact::doSetDetectionOutputs(OutputVector* o) { TOutputVector& outputs = *static_cast(o); if (ff==nullptr) @@ -188,7 +188,7 @@ void BarycentricPenalityContact -void BarycentricPenalityContact::createResponse(core::objectmodel::BaseContext* group) +void BarycentricPenalityContact::doCreateResponse(core::objectmodel::BaseContext* group) { if (ff!=nullptr) { @@ -207,7 +207,7 @@ void BarycentricPenalityContact -void BarycentricPenalityContact::removeResponse() +void BarycentricPenalityContact::doRemoveResponse() { if (ff!=nullptr) { From f2cf9512063370299bf0771f368b184b4758b1a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Tue, 13 May 2025 10:56:49 +0200 Subject: [PATCH 04/13] feat(sed_sprint): add forgotten comments --- .../Core/src/sofa/core/collision/Contact.h | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/Sofa/framework/Core/src/sofa/core/collision/Contact.h b/Sofa/framework/Core/src/sofa/core/collision/Contact.h index 694e0ba282c..3d2afc32de5 100644 --- a/Sofa/framework/Core/src/sofa/core/collision/Contact.h +++ b/Sofa/framework/Core/src/sofa/core/collision/Contact.h @@ -59,25 +59,63 @@ class SOFA_CORE_API Contact : public virtual objectmodel::BaseObject Contact& operator=(const Contact& n) = delete; public: - /// Get the pair of collision models which are in contact + /** + * !!! WARNING since v25.12 !!! + * + * The template method pattern has been applied to this part of the API. + * This method calls the newly introduced method "doGetCollisionModels" internally, + * which is the method to override from now on. + * + * Get the pair of collision models which are in contact + * + **/ virtual std::pair< core::CollisionModel*, core::CollisionModel* > getCollisionModels() final { + //TODO (SPRINT SED 2025): Component state mechamism return this->doGetCollisionModels(); }; - /// Set the generic description of a contact point + /** + * !!! WARNING since v25.12 !!! + * + * The template method pattern has been applied to this part of the API. + * This method calls the newly introduced method "doSetDetectionOuputs" internally, + * which is the method to override from now on. + * + * Set the generic description of a contact point + * + **/ virtual void setDetectionOutputs(DetectionOutputVector* outputs) final { + //TODO (SPRINT SED 2025): Component state mechamism this->doSetDetectionOutputs(outputs); }; + /** + * !!! WARNING since v25.12 !!! + * + * The template method pattern has been applied to this part of the API. + * This method calls the newly introduced method "doFunctionName" internally, + * which is the method to override from now on. + * + **/ virtual void createResponse(objectmodel::BaseContext* group) final { + //TODO (SPRINT SED 2025): Component state mechamism this->doCreateResponse(group); }; + /** + * !!! WARNING since v25.12 !!! + * + * The template method pattern has been applied to this part of the API. + * This method calls the newly introduced method "doFunctionName" internally, + * which is the method to override from now on. + * + **/ virtual void removeResponse() final { + //TODO (SPRINT SED 2025): Component state mechamism this->doRemoveResponse(); }; From 49243665b48e03b190042945c356656f363b4ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Tue, 13 May 2025 11:00:20 +0200 Subject: [PATCH 05/13] feat(sed_sprint): update child class BaseUnilateralContactResponse --- .../contact/BaseUnilateralContactResponse.h | 19 +++++++++++++------ .../contact/BaseUnilateralContactResponse.inl | 6 +++--- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BaseUnilateralContactResponse.h b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BaseUnilateralContactResponse.h index 514add26c00..9176169a426 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BaseUnilateralContactResponse.h +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BaseUnilateralContactResponse.h @@ -75,19 +75,26 @@ class BaseUnilateralContactResponse : public core::collision::Contact, public Co BaseUnilateralContactResponse(CollisionModel1* model1, CollisionModel2* model2, Intersection* intersectionMethod); ~BaseUnilateralContactResponse() override; + public: void cleanup() override; - std::pair getCollisionModels() override { return std::make_pair(model1,model2); } + virtual ConstraintParameters getParameterFromDatas() const = 0; - void setDetectionOutputs(OutputVector* outputs) override; + virtual void setupConstraint(MechanicalState1 *,MechanicalState2 *) = 0; - void createResponse(core::objectmodel::BaseContext* group) override; +protected: + std::pair doGetCollisionModels() override + { + return std::make_pair(model1,model2); + } - void removeResponse() override; + void doSetDetectionOutputs(OutputVector* outputs) override; - virtual ConstraintParameters getParameterFromDatas() const = 0; - virtual void setupConstraint(MechanicalState1 *,MechanicalState2 *) = 0; + void doCreateResponse(core::objectmodel::BaseContext* group) override; + + void doRemoveResponse() override; + }; } // namespace sofa::component::collision::response::contact diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BaseUnilateralContactResponse.inl b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BaseUnilateralContactResponse.inl index 57c1ef6eccb..8c13dc3821d 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BaseUnilateralContactResponse.inl +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/BaseUnilateralContactResponse.inl @@ -85,7 +85,7 @@ void BaseUnilateralContactResponse -void BaseUnilateralContactResponse::setDetectionOutputs(OutputVector* o) +void BaseUnilateralContactResponse::doSetDetectionOutputs(OutputVector* o) { TOutputVector& outputs = *static_cast(o); // We need to remove duplicate contacts @@ -198,7 +198,7 @@ void BaseUnilateralContactResponse -void BaseUnilateralContactResponse::createResponse(core::objectmodel::BaseContext* group) +void BaseUnilateralContactResponse::doCreateResponse(core::objectmodel::BaseContext* group) { activateMappers(); @@ -238,7 +238,7 @@ void BaseUnilateralContactResponse -void BaseUnilateralContactResponse::removeResponse() +void BaseUnilateralContactResponse::doRemoveResponse() { if (m_constraint) { From 80f161b5459276fcc54f80affd990d8424a1fdae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Tue, 13 May 2025 11:07:33 +0200 Subject: [PATCH 06/13] feat(sed_sprint): update child class RayContact --- .../collision/response/contact/RayContact.h | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/RayContact.h b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/RayContact.h index 293b324f83e..5147490c79c 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/RayContact.h +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/RayContact.h @@ -44,14 +44,17 @@ class SOFA_COMPONENT_COLLISION_RESPONSE_CONTACT_API BaseRayContact : public core BaseRayContact(CollisionModel1* model1, core::collision::Intersection* instersectionMethod); ~BaseRayContact() override; -public: - const sofa::type::vector& getDetectionOutputs() const { return collisions; } - void createResponse(core::objectmodel::BaseContext* /*group*/) override + const sofa::type::vector& doGetDetectionOutputs() const + { + return collisions; + } + + void doCreateResponse(core::objectmodel::BaseContext* /*group*/) override { } - void removeResponse() override + void doRemoveResponse() override { } @@ -68,13 +71,15 @@ class RayContact : public BaseRayContact protected: CollisionModel2* model2; core::objectmodel::BaseContext* parent; + public: RayContact(CollisionModel1* model1, CollisionModel2* model2, Intersection* intersectionMethod) : BaseRayContact(model1, intersectionMethod), model2(model2) { } - void setDetectionOutputs(core::collision::DetectionOutputVector* outputs) override +protected: + void doSetDetectionOutputs(core::collision::DetectionOutputVector* outputs) override { OutputVector* o = static_cast(outputs); //collisions = outputs; @@ -83,7 +88,11 @@ class RayContact : public BaseRayContact collisions[i] = &(*o)[i]; } - std::pair getCollisionModels() override { return std::make_pair(model1,model2); } + std::pair doGetCollisionModels() override + { + return std::make_pair(model1,model2); + } + }; } //namespace sofa::component::collision::response::contact From 4bd3c9d0f64b077ed06d2e5f3c9cc539e485130c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Tue, 13 May 2025 11:09:32 +0200 Subject: [PATCH 07/13] feat(sed_sprint): update child class StickContactConstraint --- .../response/contact/StickContactConstraint.h | 12 ++++++++---- .../response/contact/StickContactConstraint.inl | 6 +++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/StickContactConstraint.h b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/StickContactConstraint.h index c61561238a0..eb0551d05c9 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/StickContactConstraint.h +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/StickContactConstraint.h @@ -81,13 +81,17 @@ class StickContactConstraint : public core::collision::Contact, public ContactId void cleanup() override; - std::pair getCollisionModels() override { return std::make_pair(model1,model2); } +protected: + std::pair doGetCollisionModels() override + { + return std::make_pair(model1,model2); + } - void setDetectionOutputs(OutputVector* outputs) override; + void doSetDetectionOutputs(OutputVector* outputs) override; - void createResponse(core::objectmodel::BaseContext* group) override; + void doCreateResponse(core::objectmodel::BaseContext* group) override; - void removeResponse() override; + void doRemoveResponse() override; }; diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/StickContactConstraint.inl b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/StickContactConstraint.inl index 4a4582f2df6..d03c3234026 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/StickContactConstraint.inl +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/StickContactConstraint.inl @@ -79,7 +79,7 @@ void StickContactConstraint::cleanup() template < class TCollisionModel1, class TCollisionModel2 > -void StickContactConstraint::setDetectionOutputs(OutputVector* o) +void StickContactConstraint::doSetDetectionOutputs(OutputVector* o) { this->f_printLog.setValue(true); msg_info() << "setDetectionOutputs(" << (o == nullptr ? -1 : (int)static_cast(o)->size()) << ")"; @@ -178,7 +178,7 @@ void StickContactConstraint::activateMappers( } template < class TCollisionModel1, class TCollisionModel2 > -void StickContactConstraint::createResponse(core::objectmodel::BaseContext* group) +void StickContactConstraint::doCreateResponse(core::objectmodel::BaseContext* group) { msg_info() << "->createResponse(" << group->getName() << ")"; if (!contacts.empty() || !keepAlive()) @@ -217,7 +217,7 @@ void StickContactConstraint::createResponse(c } template < class TCollisionModel1, class TCollisionModel2 > -void StickContactConstraint::removeResponse() +void StickContactConstraint::doRemoveResponse() { msg_info() << "->removeResponse()"; if (m_constraint) From 952c1b57a1d3ce4ced264d527a34f28d28006500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Tue, 13 May 2025 11:15:59 +0200 Subject: [PATCH 08/13] fix: RayContact getDetectionOutputs should not be doGet --- .../component/collision/response/contact/RayContact.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/RayContact.h b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/RayContact.h index 5147490c79c..fb252642719 100644 --- a/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/RayContact.h +++ b/Sofa/Component/Collision/Response/Contact/src/sofa/component/collision/response/contact/RayContact.h @@ -36,6 +36,11 @@ class SOFA_COMPONENT_COLLISION_RESPONSE_CONTACT_API BaseRayContact : public core public: typedef collision::geometry::RayCollisionModel CollisionModel1; + const sofa::type::vector& getDetectionOutputs() const + { + return collisions; + } + protected: CollisionModel1* model1; sofa::type::vector collisions; @@ -45,11 +50,6 @@ class SOFA_COMPONENT_COLLISION_RESPONSE_CONTACT_API BaseRayContact : public core ~BaseRayContact() override; - const sofa::type::vector& doGetDetectionOutputs() const - { - return collisions; - } - void doCreateResponse(core::objectmodel::BaseContext* /*group*/) override { } From 32d91fcbbc6c4ac0332c4b64ed6c90ca48c5723f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Tue, 13 May 2025 15:23:04 +0200 Subject: [PATCH 09/13] fix: comments --- Sofa/framework/Core/src/sofa/core/collision/Contact.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sofa/framework/Core/src/sofa/core/collision/Contact.h b/Sofa/framework/Core/src/sofa/core/collision/Contact.h index 3d2afc32de5..4d6513f2f27 100644 --- a/Sofa/framework/Core/src/sofa/core/collision/Contact.h +++ b/Sofa/framework/Core/src/sofa/core/collision/Contact.h @@ -95,7 +95,7 @@ class SOFA_CORE_API Contact : public virtual objectmodel::BaseObject * !!! WARNING since v25.12 !!! * * The template method pattern has been applied to this part of the API. - * This method calls the newly introduced method "doFunctionName" internally, + * This method calls the newly introduced method "doCreateResponse" internally, * which is the method to override from now on. * **/ @@ -109,7 +109,7 @@ class SOFA_CORE_API Contact : public virtual objectmodel::BaseObject * !!! WARNING since v25.12 !!! * * The template method pattern has been applied to this part of the API. - * This method calls the newly introduced method "doFunctionName" internally, + * This method calls the newly introduced method "doRemoveResponse" internally, * which is the method to override from now on. * **/ From 839919f0989f1f601b5d054318415bab7987dca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Wed, 14 May 2025 13:29:57 +0200 Subject: [PATCH 10/13] feat(sed_sprint): update child class PersistentFrictionContact --- .../PersistentContact/PersistentFrictionContact.h | 15 ++++++++------- .../PersistentFrictionContact.inl | 6 +++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h b/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h index 6eaf25d9bc3..abf00c4afe9 100644 --- a/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h +++ b/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h @@ -133,20 +133,21 @@ class PersistentFrictionContact : public response::contact::FrictionContact findMappingOrUseMapper(); diff --git a/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.inl b/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.inl index a9a219b805a..19e07fe5e60 100644 --- a/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.inl +++ b/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.inl @@ -307,7 +307,7 @@ void PersistentFrictionContact::resetConstrai template < class TCollisionModel1, class TCollisionModel2 > -void PersistentFrictionContact::setDetectionOutputs(OutputVector* o) +void PersistentFrictionContact::doSetDetectionOutputs(OutputVector* o) { DetectionOutputVector filteredOutputs; @@ -628,7 +628,7 @@ void PersistentFrictionContact::activateConst template < class TCollisionModel1, class TCollisionModel2 > -void PersistentFrictionContact::createResponse(core::objectmodel::BaseContext* group) +void PersistentFrictionContact::doCreateResponse(core::objectmodel::BaseContext* group) { use_mapper_for_state1 = !findMappingOrUseMapper(mstate1, constraintModel1, map1); use_mapper_for_state2 = !findMappingOrUseMapper(mstate2, constraintModel2, map2); @@ -713,7 +713,7 @@ void PersistentFrictionContact::createRespons template < class TCollisionModel1, class TCollisionModel2 > -void PersistentFrictionContact::removeResponse() +void PersistentFrictionContact::doRemoveResponse() { if (this->m_constraint) { From 79dbaf02670511bda95a37cdca1c4d68fd7f2783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Wed, 14 May 2025 13:30:56 +0200 Subject: [PATCH 11/13] feat(sed_sprint): update child class CudaCollisionDistanceGrid --- .../src/SofaDistanceGrid/CUDA/CudaCollisionDistanceGrid.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/applications/plugins/SofaDistanceGrid/extensions/CUDA/src/SofaDistanceGrid/CUDA/CudaCollisionDistanceGrid.cpp b/applications/plugins/SofaDistanceGrid/extensions/CUDA/src/SofaDistanceGrid/CUDA/CudaCollisionDistanceGrid.cpp index de319b296d6..8a8b2de74b7 100644 --- a/applications/plugins/SofaDistanceGrid/extensions/CUDA/src/SofaDistanceGrid/CUDA/CudaCollisionDistanceGrid.cpp +++ b/applications/plugins/SofaDistanceGrid/extensions/CUDA/src/SofaDistanceGrid/CUDA/CudaCollisionDistanceGrid.cpp @@ -49,7 +49,7 @@ namespace sofa::component::collision::response::contact using namespace sofa::gpu::cuda; template <> -void BarycentricPenalityContact::setDetectionOutputs(OutputVector* o) +void BarycentricPenalityContact::doSetDetectionOutputs(OutputVector* o) { GPUDetectionOutputVector& outputs = *dynamic_cast(o); //const bool printLog = this->f_printLog.getValue(); @@ -101,7 +101,7 @@ void BarycentricPenalityContact -void BarycentricPenalityContact::setDetectionOutputs(OutputVector* o) +void BarycentricPenalityContact::doSetDetectionOutputs(OutputVector* o) { GPUDetectionOutputVector& outputs = *dynamic_cast(o); From cd0795b1e07f8e58c70d2b8e5dfd12909023a339 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Wed, 14 May 2025 14:33:14 +0200 Subject: [PATCH 12/13] fix: add forgotten override Co-authored-by: Damien Marchal --- .../src/PersistentContact/PersistentFrictionContact.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h b/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h index abf00c4afe9..5c9dc59e89d 100644 --- a/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h +++ b/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h @@ -147,7 +147,7 @@ class PersistentFrictionContact : public response::contact::FrictionContact findMappingOrUseMapper(); From ac5ac598203e773a71d248eafcf6bd9b1e9928d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BL?= Date: Wed, 14 May 2025 15:53:47 +0200 Subject: [PATCH 13/13] fix: add forgotten override --- .../src/PersistentContact/PersistentFrictionContact.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h b/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h index 5c9dc59e89d..e55a9dbbb32 100644 --- a/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h +++ b/applications/plugins/PersistentContact/src/PersistentContact/PersistentFrictionContact.h @@ -143,9 +143,9 @@ class PersistentFrictionContact : public response::contact::FrictionContact