From e680d3ed7db70fa57f26f7e8f4df4383a26d7ef6 Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Wed, 17 Sep 2025 16:55:31 +0200 Subject: [PATCH 01/11] [src] *_API macro for CollisionPipeline --- src/CollisionAlgorithm/CollisionPipeline.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/CollisionAlgorithm/CollisionPipeline.h b/src/CollisionAlgorithm/CollisionPipeline.h index d86aa9c7..75b3f65b 100644 --- a/src/CollisionAlgorithm/CollisionPipeline.h +++ b/src/CollisionAlgorithm/CollisionPipeline.h @@ -17,21 +17,21 @@ namespace sofa ::collisionalgorithm { -class CollisionComponent : public core::objectmodel::BaseObject { +class SOFA_COLLISIONALGORITHM_API CollisionComponent : public core::objectmodel::BaseObject { public: virtual void prepareDetection() = 0; }; -class CollisionAlgorithm : public core::objectmodel::BaseObject { +class SOFA_COLLISIONALGORITHM_API CollisionAlgorithm : public core::objectmodel::BaseObject { public: virtual void doDetection() = 0; }; -class CollisionLoop : public core::objectmodel::BaseObject { +class SOFA_COLLISIONALGORITHM_API CollisionLoop : public core::objectmodel::BaseObject { public: SOFA_ABSTRACT_CLASS(CollisionLoop,core::objectmodel::BaseObject); From f20f89bc36b27e3042d3aec0332b0daf80e2cfa4 Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Wed, 17 Sep 2025 17:00:11 +0200 Subject: [PATCH 02/11] [src] *_API macro for InternalData --- src/CollisionAlgorithm/InternalData.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/CollisionAlgorithm/InternalData.h b/src/CollisionAlgorithm/InternalData.h index 51563d9a..31bc62bd 100644 --- a/src/CollisionAlgorithm/InternalData.h +++ b/src/CollisionAlgorithm/InternalData.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -14,7 +15,7 @@ namespace sofa ::collisionalgorithm { -class InternalDataContainer { +class SOFA_COLLISIONALGORITHM_API InternalDataContainer { public: From 80876f03802672908ad543896e88ba6a1ee557ab Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Tue, 16 Sep 2025 22:57:19 +0200 Subject: [PATCH 03/11] [src][proximity] *_API macro for proximity classes --- src/CollisionAlgorithm/BaseProximity.h | 3 ++- src/CollisionAlgorithm/proximity/EdgeProximity.h | 3 ++- src/CollisionAlgorithm/proximity/FixedProximity.h | 3 ++- src/CollisionAlgorithm/proximity/MechanicalProximity.h | 1 + src/CollisionAlgorithm/proximity/MultiProximity.h | 3 ++- src/CollisionAlgorithm/proximity/PointProximity.h | 3 ++- src/CollisionAlgorithm/proximity/TetrahedronProximity.h | 3 ++- src/CollisionAlgorithm/proximity/TriangleProximity.h | 3 ++- 8 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/CollisionAlgorithm/BaseProximity.h b/src/CollisionAlgorithm/BaseProximity.h index e40a532d..0d15f316 100644 --- a/src/CollisionAlgorithm/BaseProximity.h +++ b/src/CollisionAlgorithm/BaseProximity.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -31,7 +32,7 @@ class BaseBaseProximity { const std::type_info & getTypeInfo() { return typeid(*this); } }; -class BaseProximity : public virtual BaseBaseProximity { +class SOFA_COLLISIONALGORITHM_API BaseProximity : public virtual BaseBaseProximity { public: typedef std::shared_ptr SPtr; diff --git a/src/CollisionAlgorithm/proximity/EdgeProximity.h b/src/CollisionAlgorithm/proximity/EdgeProximity.h index 45d33281..b47a490b 100644 --- a/src/CollisionAlgorithm/proximity/EdgeProximity.h +++ b/src/CollisionAlgorithm/proximity/EdgeProximity.h @@ -1,11 +1,12 @@ #pragma once +#include #include #include namespace sofa::collisionalgorithm { -class EdgeProximity : public BaseProximity { +class SOFA_COLLISIONALGORITHM_API EdgeProximity : public BaseProximity { public: typedef std::shared_ptr SPtr; diff --git a/src/CollisionAlgorithm/proximity/FixedProximity.h b/src/CollisionAlgorithm/proximity/FixedProximity.h index 3c27fca4..45ff79eb 100644 --- a/src/CollisionAlgorithm/proximity/FixedProximity.h +++ b/src/CollisionAlgorithm/proximity/FixedProximity.h @@ -1,10 +1,11 @@ #pragma once +#include #include namespace sofa::collisionalgorithm { -class FixedProximity : public BaseProximity{ +class SOFA_COLLISIONALGORITHM_API FixedProximity : public BaseProximity{ public: typedef std::shared_ptr SPtr; typedef typename collisionalgorithm::BaseProximity Inherits; diff --git a/src/CollisionAlgorithm/proximity/MechanicalProximity.h b/src/CollisionAlgorithm/proximity/MechanicalProximity.h index 915430d9..6a3bd194 100644 --- a/src/CollisionAlgorithm/proximity/MechanicalProximity.h +++ b/src/CollisionAlgorithm/proximity/MechanicalProximity.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include diff --git a/src/CollisionAlgorithm/proximity/MultiProximity.h b/src/CollisionAlgorithm/proximity/MultiProximity.h index 3a2433ed..80ee03f4 100644 --- a/src/CollisionAlgorithm/proximity/MultiProximity.h +++ b/src/CollisionAlgorithm/proximity/MultiProximity.h @@ -1,10 +1,11 @@ #pragma once +#include #include namespace sofa::collisionalgorithm { -class MultiProximity : public BaseProximity { +class SOFA_COLLISIONALGORITHM_API MultiProximity : public BaseProximity { public: typedef std::shared_ptr SPtr; diff --git a/src/CollisionAlgorithm/proximity/PointProximity.h b/src/CollisionAlgorithm/proximity/PointProximity.h index d0d3d198..70f74ee7 100644 --- a/src/CollisionAlgorithm/proximity/PointProximity.h +++ b/src/CollisionAlgorithm/proximity/PointProximity.h @@ -1,10 +1,11 @@ #pragma once +#include #include namespace sofa::collisionalgorithm { -class PointProximity : public BaseProximity { +class SOFA_COLLISIONALGORITHM_API PointProximity : public BaseProximity { public: typedef std::shared_ptr SPtr; diff --git a/src/CollisionAlgorithm/proximity/TetrahedronProximity.h b/src/CollisionAlgorithm/proximity/TetrahedronProximity.h index fbe3a7fb..9fe3a4ca 100644 --- a/src/CollisionAlgorithm/proximity/TetrahedronProximity.h +++ b/src/CollisionAlgorithm/proximity/TetrahedronProximity.h @@ -1,12 +1,13 @@ #pragma once +#include #include #include #include namespace sofa::collisionalgorithm { -class TetrahedronProximity : public BaseProximity { +class SOFA_COLLISIONALGORITHM_API TetrahedronProximity : public BaseProximity { public: typedef std::shared_ptr SPtr; diff --git a/src/CollisionAlgorithm/proximity/TriangleProximity.h b/src/CollisionAlgorithm/proximity/TriangleProximity.h index b5ba63de..9da42110 100644 --- a/src/CollisionAlgorithm/proximity/TriangleProximity.h +++ b/src/CollisionAlgorithm/proximity/TriangleProximity.h @@ -1,12 +1,13 @@ #pragma once +#include #include #include #include namespace sofa::collisionalgorithm { -class TriangleProximity : public BaseProximity { +class SOFA_COLLISIONALGORITHM_API TriangleProximity : public BaseProximity { public: typedef std::shared_ptr SPtr; From 618939461ccbaad2ba02798d74a5e94dd70f30f7 Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Tue, 16 Sep 2025 22:59:33 +0200 Subject: [PATCH 04/11] [src][geometry] *_API macro for geometry classes --- src/CollisionAlgorithm/BaseGeometry.h | 3 ++- src/CollisionAlgorithm/geometry/EdgeGeometry.cpp | 4 ++++ src/CollisionAlgorithm/geometry/PointGeometry.cpp | 4 ++++ src/CollisionAlgorithm/geometry/SubsetGeometry.cpp | 4 ++++ src/CollisionAlgorithm/geometry/TetrahedronGeometry.cpp | 4 ++++ src/CollisionAlgorithm/geometry/TriangleGeometry.cpp | 4 ++++ 6 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/CollisionAlgorithm/BaseGeometry.h b/src/CollisionAlgorithm/BaseGeometry.h index a051435e..0c2c2f3f 100644 --- a/src/CollisionAlgorithm/BaseGeometry.h +++ b/src/CollisionAlgorithm/BaseGeometry.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -20,7 +21,7 @@ namespace sofa ::collisionalgorithm { * \brief The BaseGeometry class is an abstract class defining a basic geometry * iterates through Proximity elements and draws them */ -class BaseGeometry : public CollisionComponent { +class SOFA_COLLISIONALGORITHM_API BaseGeometry : public CollisionComponent { public: class BroadPhase : public sofa::core::objectmodel::BaseObject { diff --git a/src/CollisionAlgorithm/geometry/EdgeGeometry.cpp b/src/CollisionAlgorithm/geometry/EdgeGeometry.cpp index e62e758d..909580de 100644 --- a/src/CollisionAlgorithm/geometry/EdgeGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/EdgeGeometry.cpp @@ -1,8 +1,12 @@ +#include #include #include namespace sofa::collisionalgorithm { + +template class SOFA_COLLISIONALGORITHM_API EdgeGeometry; + void registerEdgeGeometry(sofa::core::ObjectFactory* factory) { factory->registerObjects( diff --git a/src/CollisionAlgorithm/geometry/PointGeometry.cpp b/src/CollisionAlgorithm/geometry/PointGeometry.cpp index eb17719a..27da1992 100644 --- a/src/CollisionAlgorithm/geometry/PointGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/PointGeometry.cpp @@ -1,8 +1,12 @@ +#include #include #include namespace sofa::collisionalgorithm { + +template class SOFA_COLLISIONALGORITHM_API PointGeometry; + void registerPointGeometry(sofa::core::ObjectFactory* factory) { factory->registerObjects( diff --git a/src/CollisionAlgorithm/geometry/SubsetGeometry.cpp b/src/CollisionAlgorithm/geometry/SubsetGeometry.cpp index 2a30ca15..36c7e468 100644 --- a/src/CollisionAlgorithm/geometry/SubsetGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/SubsetGeometry.cpp @@ -1,8 +1,12 @@ +#include #include #include namespace sofa::collisionalgorithm { + +template class SOFA_COLLISIONALGORITHM_API SubsetGeometry; + void registerSubsetGeometry(sofa::core::ObjectFactory* factory) { factory->registerObjects( diff --git a/src/CollisionAlgorithm/geometry/TetrahedronGeometry.cpp b/src/CollisionAlgorithm/geometry/TetrahedronGeometry.cpp index 156c2b16..03929325 100644 --- a/src/CollisionAlgorithm/geometry/TetrahedronGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/TetrahedronGeometry.cpp @@ -1,8 +1,12 @@ +#include #include #include namespace sofa::collisionalgorithm { + +template class SOFA_COLLISIONALGORITHM_API TetrahedronGeometry; + void registerTetrahedronGeometry(sofa::core::ObjectFactory* factory) { factory->registerObjects(sofa::core::ObjectRegistrationData( diff --git a/src/CollisionAlgorithm/geometry/TriangleGeometry.cpp b/src/CollisionAlgorithm/geometry/TriangleGeometry.cpp index b6fadbf1..abc648e3 100644 --- a/src/CollisionAlgorithm/geometry/TriangleGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/TriangleGeometry.cpp @@ -1,8 +1,12 @@ +#include #include #include namespace sofa::collisionalgorithm { + +template class SOFA_COLLISIONALGORITHM_API TriangleGeometry; + void registerTriangleGeometry(sofa::core::ObjectFactory* factory) { factory->registerObjects( From 7973c4c121aaa6ab9583f896f08cf5c9ee8823b5 Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Tue, 16 Sep 2025 23:04:26 +0200 Subject: [PATCH 05/11] [src][element] *_API macro for element classes including iterators --- src/CollisionAlgorithm/BaseElement.h | 3 ++- src/CollisionAlgorithm/ElementIterator.h | 5 +++-- src/CollisionAlgorithm/elements/EdgeElement.h | 2 +- src/CollisionAlgorithm/elements/PointElement.h | 2 +- src/CollisionAlgorithm/elements/TetrahedronElement.h | 2 +- src/CollisionAlgorithm/elements/TriangleElement.h | 2 +- 6 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/CollisionAlgorithm/BaseElement.h b/src/CollisionAlgorithm/BaseElement.h index b3d5196f..864dc3ad 100644 --- a/src/CollisionAlgorithm/BaseElement.h +++ b/src/CollisionAlgorithm/BaseElement.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include @@ -45,7 +46,7 @@ class ElementContainer { std::vector m_data; }; -class BaseElement { +class SOFA_COLLISIONALGORITHM_API BaseElement { public: typedef std::shared_ptr SPtr; diff --git a/src/CollisionAlgorithm/ElementIterator.h b/src/CollisionAlgorithm/ElementIterator.h index 2e1418c4..2354c8f2 100644 --- a/src/CollisionAlgorithm/ElementIterator.h +++ b/src/CollisionAlgorithm/ElementIterator.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include @@ -7,7 +8,7 @@ namespace sofa::collisionalgorithm { class BaseGeometry; -class ElementIterator { +class SOFA_COLLISIONALGORITHM_API ElementIterator { public: typedef std::shared_ptr SPtr; @@ -43,7 +44,7 @@ static inline void operator ++ (ElementIterator::SPtr & it, int /*NB*/) { it->next(); } -class EmptyIterator : public ElementIterator { +class SOFA_COLLISIONALGORITHM_API EmptyIterator : public ElementIterator { public: friend class ElementIterator; diff --git a/src/CollisionAlgorithm/elements/EdgeElement.h b/src/CollisionAlgorithm/elements/EdgeElement.h index b095003a..f2f45d23 100644 --- a/src/CollisionAlgorithm/elements/EdgeElement.h +++ b/src/CollisionAlgorithm/elements/EdgeElement.h @@ -5,7 +5,7 @@ namespace sofa::collisionalgorithm { -class EdgeElement : public BaseElement { +class SOFA_COLLISIONALGORITHM_API EdgeElement : public BaseElement { public: typedef std::shared_ptr SPtr; diff --git a/src/CollisionAlgorithm/elements/PointElement.h b/src/CollisionAlgorithm/elements/PointElement.h index 4b2bf2be..5f94f020 100644 --- a/src/CollisionAlgorithm/elements/PointElement.h +++ b/src/CollisionAlgorithm/elements/PointElement.h @@ -5,7 +5,7 @@ namespace sofa::collisionalgorithm { -class PointElement : public BaseElement { +class SOFA_COLLISIONALGORITHM_API PointElement : public BaseElement { public: typedef std::shared_ptr SPtr; diff --git a/src/CollisionAlgorithm/elements/TetrahedronElement.h b/src/CollisionAlgorithm/elements/TetrahedronElement.h index a7c74bbf..b3e97c87 100644 --- a/src/CollisionAlgorithm/elements/TetrahedronElement.h +++ b/src/CollisionAlgorithm/elements/TetrahedronElement.h @@ -5,7 +5,7 @@ namespace sofa::collisionalgorithm { -class TetrahedronElement : public BaseElement { +class SOFA_COLLISIONALGORITHM_API TetrahedronElement : public BaseElement { public: typedef std::shared_ptr SPtr; diff --git a/src/CollisionAlgorithm/elements/TriangleElement.h b/src/CollisionAlgorithm/elements/TriangleElement.h index 65010b69..04082a41 100644 --- a/src/CollisionAlgorithm/elements/TriangleElement.h +++ b/src/CollisionAlgorithm/elements/TriangleElement.h @@ -5,7 +5,7 @@ namespace sofa::collisionalgorithm { -class TriangleElement : public BaseElement { +class SOFA_COLLISIONALGORITHM_API TriangleElement : public BaseElement { public: typedef std::shared_ptr SPtr; From e5ed91208b18afcf06a2c85a44593923494e7125 Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Tue, 16 Sep 2025 23:04:43 +0200 Subject: [PATCH 06/11] [src][algorithm] *_API macro for algorithm classes --- src/CollisionAlgorithm/BaseAlgorithm.h | 3 ++- .../algorithm/Find2DClosestProximityAlgorithm.h | 2 +- .../algorithm/FindClosestProximityAlgorithm.h | 2 +- src/CollisionAlgorithm/algorithm/InsertionAlgorithm.h | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/CollisionAlgorithm/BaseAlgorithm.h b/src/CollisionAlgorithm/BaseAlgorithm.h index f4fc0838..7c242eee 100644 --- a/src/CollisionAlgorithm/BaseAlgorithm.h +++ b/src/CollisionAlgorithm/BaseAlgorithm.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -12,7 +13,7 @@ namespace sofa::collisionalgorithm { * \brief The BaseAlgorithm abstract class defines an interface of * algorithms to be wrapped in sofa components */ -class BaseAlgorithm : public CollisionAlgorithm +class SOFA_COLLISIONALGORITHM_API BaseAlgorithm : public CollisionAlgorithm { public : diff --git a/src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h b/src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h index 4af1aa54..530f437b 100644 --- a/src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h +++ b/src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h @@ -9,7 +9,7 @@ namespace sofa::collisionalgorithm { -class Find2DClosestProximityAlgorithm : public BaseAlgorithm { +class SOFA_COLLISIONALGORITHM_API Find2DClosestProximityAlgorithm : public BaseAlgorithm { public: SOFA_CLASS(Find2DClosestProximityAlgorithm, BaseAlgorithm); diff --git a/src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h b/src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h index c776cf7b..fe830bf8 100644 --- a/src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h +++ b/src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h @@ -9,7 +9,7 @@ namespace sofa::collisionalgorithm { -class FindClosestProximityAlgorithm : public BaseAlgorithm { +class SOFA_COLLISIONALGORITHM_API FindClosestProximityAlgorithm : public BaseAlgorithm { public: SOFA_CLASS(FindClosestProximityAlgorithm, BaseAlgorithm); diff --git a/src/CollisionAlgorithm/algorithm/InsertionAlgorithm.h b/src/CollisionAlgorithm/algorithm/InsertionAlgorithm.h index ab95a71b..522e1a23 100644 --- a/src/CollisionAlgorithm/algorithm/InsertionAlgorithm.h +++ b/src/CollisionAlgorithm/algorithm/InsertionAlgorithm.h @@ -15,7 +15,7 @@ namespace sofa::collisionalgorithm { -class InsertionAlgorithm : public BaseAlgorithm +class SOFA_COLLISIONALGORITHM_API InsertionAlgorithm : public BaseAlgorithm { public: SOFA_CLASS(InsertionAlgorithm, BaseAlgorithm); From 9a9dfae4c105e78993efca897f28ae458a3e0c9c Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Tue, 16 Sep 2025 23:29:31 +0200 Subject: [PATCH 07/11] [src][operations] *_API macro for operations classes --- src/CollisionAlgorithm/operations/ContainsPoint.h | 5 +++-- src/CollisionAlgorithm/operations/CreateCenterProximity.h | 3 ++- src/CollisionAlgorithm/operations/FindClosestProximity.h | 3 ++- src/CollisionAlgorithm/operations/NeedleOperations.h | 3 ++- src/CollisionAlgorithm/operations/Project.h | 3 ++- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/CollisionAlgorithm/operations/ContainsPoint.h b/src/CollisionAlgorithm/operations/ContainsPoint.h index e4edf11e..500913da 100644 --- a/src/CollisionAlgorithm/operations/ContainsPoint.h +++ b/src/CollisionAlgorithm/operations/ContainsPoint.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include @@ -8,7 +9,7 @@ namespace sofa::collisionalgorithm::Operations::ContainsPointInElement typedef bool Result; -class Operation : public GenericOperation @@ -33,7 +34,7 @@ namespace sofa::collisionalgorithm::Operations::ContainsPointInProximity typedef bool Result; -class Operation +class SOFA_COLLISIONALGORITHM_API Operation : public GenericOperation #include #include #include @@ -9,7 +10,7 @@ namespace sofa::collisionalgorithm::Operations::CreateCenterProximity { typedef BaseProximity::SPtr Result; -class Operation : public GenericOperation { diff --git a/src/CollisionAlgorithm/operations/FindClosestProximity.h b/src/CollisionAlgorithm/operations/FindClosestProximity.h index e446ba6a..c6a32d05 100644 --- a/src/CollisionAlgorithm/operations/FindClosestProximity.h +++ b/src/CollisionAlgorithm/operations/FindClosestProximity.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -11,7 +12,7 @@ typedef BaseProximity::SPtr Result; typedef std::function FilterFUNC; //Specific operation to find the closest point on a geometry (the code is in the c++ class) -class Operation : public Operations::GenericOperation { diff --git a/src/CollisionAlgorithm/operations/NeedleOperations.h b/src/CollisionAlgorithm/operations/NeedleOperations.h index 4466e22f..184677a4 100644 --- a/src/CollisionAlgorithm/operations/NeedleOperations.h +++ b/src/CollisionAlgorithm/operations/NeedleOperations.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -7,7 +8,7 @@ namespace sofa::collisionalgorithm::Operations::Needle { -class PrunePointsAheadOfTip +class SOFA_COLLISIONALGORITHM_API PrunePointsAheadOfTip : public GenericOperation&, diff --git a/src/CollisionAlgorithm/operations/Project.h b/src/CollisionAlgorithm/operations/Project.h index e5e82cd1..e0e94e38 100644 --- a/src/CollisionAlgorithm/operations/Project.h +++ b/src/CollisionAlgorithm/operations/Project.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -15,7 +16,7 @@ struct Result { BaseProximity::SPtr prox; }; -class Operation : public GenericOperation { From ae0b364b004ffa520996e9f0f2eed4e6c5d4b90b Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Wed, 17 Sep 2025 16:45:42 +0200 Subject: [PATCH 08/11] [src][filters] *_API macro for filters classes --- src/CollisionAlgorithm/BaseAlgorithm.h | 2 +- src/CollisionAlgorithm/filters/DistanceFilter.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/CollisionAlgorithm/BaseAlgorithm.h b/src/CollisionAlgorithm/BaseAlgorithm.h index 7c242eee..1106e53e 100644 --- a/src/CollisionAlgorithm/BaseAlgorithm.h +++ b/src/CollisionAlgorithm/BaseAlgorithm.h @@ -24,7 +24,7 @@ public : /*! * \brief The BaseFilter class provides an interface to create proximity filter components */ - class BaseFilter : public sofa::core::objectmodel::BaseObject { + class SOFA_COLLISIONALGORITHM_API BaseFilter : public sofa::core::objectmodel::BaseObject { public: SOFA_ABSTRACT_CLASS(BaseFilter, sofa::core::objectmodel::BaseObject); diff --git a/src/CollisionAlgorithm/filters/DistanceFilter.h b/src/CollisionAlgorithm/filters/DistanceFilter.h index abcaa917..76602d6b 100644 --- a/src/CollisionAlgorithm/filters/DistanceFilter.h +++ b/src/CollisionAlgorithm/filters/DistanceFilter.h @@ -1,5 +1,6 @@ #pragma once +#include #include namespace sofa::collisionalgorithm { @@ -8,7 +9,7 @@ namespace sofa::collisionalgorithm { * \brief The DistanceFilter class * accepts proximities which positions are within a limited distance from each other */ -class DistanceFilter : public BaseAlgorithm::BaseFilter { +class SOFA_COLLISIONALGORITHM_API DistanceFilter : public BaseAlgorithm::BaseFilter { public: SOFA_CLASS(DistanceFilter, BaseFilter); From 2d2ae8f7df0cc038e99ec5356e57adb6d65a4069 Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Wed, 17 Sep 2025 16:48:10 +0200 Subject: [PATCH 09/11] [src][broadphase] *_API macro for broadphase classes --- src/CollisionAlgorithm/BaseAABBBroadPhase.h | 2 +- src/CollisionAlgorithm/broadphase/AABBBroadPhase.h | 2 +- src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/CollisionAlgorithm/BaseAABBBroadPhase.h b/src/CollisionAlgorithm/BaseAABBBroadPhase.h index b801da9a..3a65ba4d 100644 --- a/src/CollisionAlgorithm/BaseAABBBroadPhase.h +++ b/src/CollisionAlgorithm/BaseAABBBroadPhase.h @@ -9,7 +9,7 @@ namespace sofa::collisionalgorithm { -class BaseAABBBroadPhase : public BaseGeometry::BroadPhase { +class SOFA_COLLISIONALGORITHM_API BaseAABBBroadPhase : public BaseGeometry::BroadPhase { public: SOFA_ABSTRACT_CLASS(BaseAABBBroadPhase,BaseGeometry::BroadPhase); diff --git a/src/CollisionAlgorithm/broadphase/AABBBroadPhase.h b/src/CollisionAlgorithm/broadphase/AABBBroadPhase.h index 686bc702..ebfb264e 100644 --- a/src/CollisionAlgorithm/broadphase/AABBBroadPhase.h +++ b/src/CollisionAlgorithm/broadphase/AABBBroadPhase.h @@ -16,7 +16,7 @@ namespace sofa::collisionalgorithm { * The class is part of the broader collision detection system and is used to quickly narrow down * potential collisions before more detailed, computationally expensive checks are performed. */ -class AABBBroadPhase : public BaseAABBBroadPhase { +class SOFA_COLLISIONALGORITHM_API AABBBroadPhase : public BaseAABBBroadPhase { public: /** diff --git a/src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.h b/src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.h index 11081202..3d7b0b76 100644 --- a/src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.h +++ b/src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.h @@ -7,7 +7,7 @@ namespace sofa::collisionalgorithm { -class FullAABBBroadPhase : public BaseAABBBroadPhase { +class SOFA_COLLISIONALGORITHM_API FullAABBBroadPhase : public BaseAABBBroadPhase { public: SOFA_CLASS(FullAABBBroadPhase,BaseAABBBroadPhase); From 7a965159f567c74736065adae4bcf5f3c4ccbc1a Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Wed, 17 Sep 2025 17:06:21 +0200 Subject: [PATCH 10/11] [src][toolbox] *_API macro for toolbox classes --- src/CollisionAlgorithm/toolbox/EdgeToolBox.h | 3 ++- src/CollisionAlgorithm/toolbox/PointToolBox.h | 3 ++- src/CollisionAlgorithm/toolbox/TetrahedronToolBox.h | 3 ++- src/CollisionAlgorithm/toolbox/TriangleToolBox.h | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/CollisionAlgorithm/toolbox/EdgeToolBox.h b/src/CollisionAlgorithm/toolbox/EdgeToolBox.h index 520d9158..231c336e 100644 --- a/src/CollisionAlgorithm/toolbox/EdgeToolBox.h +++ b/src/CollisionAlgorithm/toolbox/EdgeToolBox.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -7,7 +8,7 @@ namespace sofa::collisionalgorithm::toolbox { -class EdgeToolBox { +class SOFA_COLLISIONALGORITHM_API EdgeToolBox { public: static Operations::CreateCenterProximity::Result createCenterProximity(const EdgeElement::SPtr & edge); diff --git a/src/CollisionAlgorithm/toolbox/PointToolBox.h b/src/CollisionAlgorithm/toolbox/PointToolBox.h index 6b3a03c3..d88ddf0a 100644 --- a/src/CollisionAlgorithm/toolbox/PointToolBox.h +++ b/src/CollisionAlgorithm/toolbox/PointToolBox.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -7,7 +8,7 @@ namespace sofa::collisionalgorithm::toolbox { -class PointToolBox { +class SOFA_COLLISIONALGORITHM_API PointToolBox { public: static Operations::CreateCenterProximity::Result createCenterProximity(const PointElement::SPtr & point); diff --git a/src/CollisionAlgorithm/toolbox/TetrahedronToolBox.h b/src/CollisionAlgorithm/toolbox/TetrahedronToolBox.h index 542dc833..d15fcd41 100644 --- a/src/CollisionAlgorithm/toolbox/TetrahedronToolBox.h +++ b/src/CollisionAlgorithm/toolbox/TetrahedronToolBox.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -8,7 +9,7 @@ namespace sofa::collisionalgorithm::toolbox { -class TetrahedronToolBox { +class SOFA_COLLISIONALGORITHM_API TetrahedronToolBox { public: static Operations::CreateCenterProximity::Result createCenterProximity(const TetrahedronElement::SPtr & tetra); diff --git a/src/CollisionAlgorithm/toolbox/TriangleToolBox.h b/src/CollisionAlgorithm/toolbox/TriangleToolBox.h index 9fef9f69..d8eb59bf 100644 --- a/src/CollisionAlgorithm/toolbox/TriangleToolBox.h +++ b/src/CollisionAlgorithm/toolbox/TriangleToolBox.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -8,7 +9,7 @@ namespace sofa::collisionalgorithm::toolbox { -class TriangleToolBox { +class SOFA_COLLISIONALGORITHM_API TriangleToolBox { public: static Operations::CreateCenterProximity::Result createCenterProximity(const TriangleElement::SPtr & tri); From ec08409a27b16ae8daf030d2e9dc06f3a504b6fd Mon Sep 17 00:00:00 2001 From: Themis Skamagkis Date: Wed, 24 Sep 2025 13:46:06 +0200 Subject: [PATCH 11/11] [src] Use *_API mechanism to export ElementContainer instantiations --- src/CollisionAlgorithm/elements/EdgeElement.cpp | 2 ++ src/CollisionAlgorithm/elements/PointElement.cpp | 2 ++ src/CollisionAlgorithm/elements/TetrahedronElement.cpp | 2 ++ src/CollisionAlgorithm/elements/TriangleElement.cpp | 2 ++ 4 files changed, 8 insertions(+) diff --git a/src/CollisionAlgorithm/elements/EdgeElement.cpp b/src/CollisionAlgorithm/elements/EdgeElement.cpp index 748840d1..ef37b891 100644 --- a/src/CollisionAlgorithm/elements/EdgeElement.cpp +++ b/src/CollisionAlgorithm/elements/EdgeElement.cpp @@ -6,6 +6,8 @@ namespace sofa::collisionalgorithm { +template class SOFA_COLLISIONALGORITHM_API ElementContainer; + EdgeElement::SPtr EdgeElement::create(const PointElement::SPtr & p0, const PointElement::SPtr & p1) { EdgeElement::SPtr res = EdgeElement::SPtr(new EdgeElement()); diff --git a/src/CollisionAlgorithm/elements/PointElement.cpp b/src/CollisionAlgorithm/elements/PointElement.cpp index eca1d6e6..41768122 100644 --- a/src/CollisionAlgorithm/elements/PointElement.cpp +++ b/src/CollisionAlgorithm/elements/PointElement.cpp @@ -6,6 +6,8 @@ namespace sofa::collisionalgorithm { +template class SOFA_COLLISIONALGORITHM_API ElementContainer; + PointElement::SPtr PointElement::create(const BaseProximity::SPtr &prox) { return PointElement::SPtr(new PointElement(prox)); } diff --git a/src/CollisionAlgorithm/elements/TetrahedronElement.cpp b/src/CollisionAlgorithm/elements/TetrahedronElement.cpp index 1a0e7fee..9a51376e 100644 --- a/src/CollisionAlgorithm/elements/TetrahedronElement.cpp +++ b/src/CollisionAlgorithm/elements/TetrahedronElement.cpp @@ -6,6 +6,8 @@ namespace sofa::collisionalgorithm { +template class SOFA_COLLISIONALGORITHM_API ElementContainer; + TetrahedronElement::SPtr TetrahedronElement::create(PointElement::SPtr p0,PointElement::SPtr p1,PointElement::SPtr p2,PointElement::SPtr p3, EdgeElement::SPtr e0, EdgeElement::SPtr e1, EdgeElement::SPtr e2, EdgeElement::SPtr e3,EdgeElement::SPtr e4,EdgeElement::SPtr e5, TriangleElement::SPtr tri0, TriangleElement::SPtr tri1, TriangleElement::SPtr tri2, TriangleElement::SPtr tri3) { diff --git a/src/CollisionAlgorithm/elements/TriangleElement.cpp b/src/CollisionAlgorithm/elements/TriangleElement.cpp index 7356fbb2..d577906e 100644 --- a/src/CollisionAlgorithm/elements/TriangleElement.cpp +++ b/src/CollisionAlgorithm/elements/TriangleElement.cpp @@ -6,6 +6,8 @@ namespace sofa::collisionalgorithm { +template class SOFA_COLLISIONALGORITHM_API ElementContainer; + TriangleElement::SPtr TriangleElement::create(BaseProximity::SPtr prox0, BaseProximity::SPtr prox1,BaseProximity::SPtr prox2) { PointElement::SPtr p0 = PointElement::create(prox0); PointElement::SPtr p1 = PointElement::create(prox1);