Skip to content

Commit 5b468ea

Browse files
th-skamepernod
andauthored
[src] Apply new factory registration method (#69)
* [src][algorithm] Apply new factory registration mechanism * [src][broadphase] Apply new factory registration mechanism * [src][CollisionPipeline] Apply new factory registration mechanism * [src][filters] Apply new factory registration mechanism * [src][geometry] Apply new factory registration mechanism * [src] Wrap up new factory registration mechanism in initPlugin.cpp --------- Co-authored-by: epernod <erik.pernod@gmail.com>
1 parent af5cb2e commit 5b468ea

13 files changed

+198
-146
lines changed
Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
#include <sofa/collisionAlgorithm/CollisionPipeline.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa::collisionAlgorithm {
5-
6-
int CollisionLoopClass = core::RegisterObject("CollisionLoop")
7-
.add< CollisionLoop >();
8-
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerCollisionLoop(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(
9+
sofa::core::ObjectRegistrationData(
10+
"A collision pipeline customized for proximity detection during needle insertion")
11+
.add<CollisionLoop>());
912
}
13+
} // namespace sofa::collisionAlgorithm
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
#include <sofa/collisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa::collisionAlgorithm {
5-
6-
int Find2DClosestProximityAlgorithmClass = core::RegisterObject("Find2DClosestProximityAlgorithm")
7-
.add< Find2DClosestProximityAlgorithm >();
8-
9-
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerFind2DClosestProximityAlgorithm(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(
9+
sofa::core::ObjectRegistrationData(
10+
"An algorithm to find the closest proximity between two BaseGeometry types in 2D")
11+
.add<Find2DClosestProximityAlgorithm>());
1012
}
11-
12-
13-
13+
} // namespace sofa::collisionAlgorithm
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
#include <sofa/collisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa::collisionAlgorithm {
5-
6-
int FindClosestProximityAlgorithmClass = core::RegisterObject("FindClosestProximityAlgorithm")
7-
.add< FindClosestProximityAlgorithm >();
8-
9-
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerFindClosestProximityAlgorithm(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(
9+
sofa::core::ObjectRegistrationData(
10+
"An algorithm to find the closest proximity between two BaseGeometry types")
11+
.add<FindClosestProximityAlgorithm>());
1012
}
11-
12-
13-
13+
} // namespace sofa::collisionAlgorithm
Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
#include <sofa/collisionAlgorithm/algorithm/InsertionAlgorithm.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa::collisionAlgorithm {
5-
6-
int InsertionAlgorithmClass = core::RegisterObject("InsertionAlgorithm")
7-
.add< InsertionAlgorithm >();
8-
9-
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerInsertionAlgorithm(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(sofa::core::ObjectRegistrationData(
9+
"A class implementing a customized needle insertion algorithm")
10+
.add<InsertionAlgorithm>());
1011
}
11-
12-
13-
12+
} // namespace sofa::collisionAlgorithm
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
#include <sofa/collisionAlgorithm/broadphase/AABBBroadPhase.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa::collisionAlgorithm {
5-
6-
int AABBBroadPhaseClass = core::RegisterObject(R"(
7-
**AABBBroadPhase** is a real-time collision detection component that uses the Axis-Aligned Bounding Box (AABB) approach for broad-phase collision handling.
8-
9-
It organizes elements into a 3D spatial grid, efficiently indexing and retrieving them to identify potential collisions, optimizing the process of narrowing down collision checks for more precise detection in 3D simulations.
10-
)")
11-
.add< AABBBroadPhase >();
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerAABBBroadPhase(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(sofa::core::ObjectRegistrationData(R"(
9+
**AABBBroadPhase** is a real-time collision detection component that uses the
10+
Axis-Aligned Bounding Box (AABB) approach for broad-phase collision handling.
1211
12+
It organizes elements into a 3D spatial grid, efficiently indexing and retrieving them
13+
to identify potential collisions, optimizing the process of narrowing down collision
14+
checks for more precise detection in 3D simulations.
15+
)")
16+
.add<AABBBroadPhase>());
1317
}
18+
} // namespace sofa::collisionAlgorithm
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#include <sofa/collisionAlgorithm/broadphase/FullAABBBroadPhase.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa::collisionAlgorithm {
5-
6-
int FullAABBBroadPhaseClass = core::RegisterObject("FullAABBBroadPhase")
7-
.add< FullAABBBroadPhase >();
8-
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerFullAABBBroadPhase(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(sofa::core::ObjectRegistrationData("").add<FullAABBBroadPhase>());
99
}
10+
} // namespace sofa::collisionAlgorithm
Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
#include <sofa/collisionAlgorithm/filters/DistanceFilter.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa::collisionAlgorithm {
5-
6-
int DistanceFilterClass = core::RegisterObject("DistanceFilter")
7-
.add< DistanceFilter >();
8-
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerDistanceFilter(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(
9+
sofa::core::ObjectRegistrationData(
10+
"This class filters detected proximities based on their distance from source")
11+
.add<DistanceFilter>());
912
}
13+
} // namespace sofa::collisionAlgorithm
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
#include <sofa/collisionAlgorithm/geometry/EdgeGeometry.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa {
5-
6-
namespace collisionAlgorithm {
7-
8-
int EdgeGeometryClass = core::RegisterObject("EdgeGeometry")
9-
.add< EdgeGeometry<sofa::defaulttype::Vec3dTypes> >();
10-
11-
}
12-
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerEdgeGeometry(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(
9+
sofa::core::ObjectRegistrationData(
10+
"A class bridging edge topological information with the proximity detection algorithm")
11+
.add<EdgeGeometry<sofa::defaulttype::Vec3dTypes> >());
1312
}
13+
} // namespace sofa::collisionAlgorithm
Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
#include <sofa/collisionAlgorithm/geometry/PointGeometry.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa {
5-
6-
namespace collisionAlgorithm {
7-
8-
int PointGeometryClass = core::RegisterObject("PointGeometry")
9-
.add< PointGeometry<sofa::defaulttype::Vec3dTypes> >();
10-
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerPointGeometry(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(
9+
sofa::core::ObjectRegistrationData(
10+
"A class bridging point topological information with the proximity detection algorithm")
11+
.add<PointGeometry<sofa::defaulttype::Vec3dTypes> >());
1112
}
12-
13-
}
14-
15-
13+
} // namespace sofa::collisionAlgorithm
Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
#include <sofa/collisionAlgorithm/geometry/SubsetGeometry.h>
22
#include <sofa/core/ObjectFactory.h>
33

4-
namespace sofa {
5-
6-
namespace collisionAlgorithm {
7-
8-
int SubsetGeometryClass = core::RegisterObject("SubsetGeometry")
9-
.add< SubsetGeometry<sofa::defaulttype::Vec3dTypes> >();
10-
4+
namespace sofa::collisionAlgorithm
5+
{
6+
void registerSubsetGeometry(sofa::core::ObjectFactory* factory)
7+
{
8+
factory->registerObjects(
9+
sofa::core::ObjectRegistrationData("")
10+
.add<SubsetGeometry<sofa::defaulttype::Vec3dTypes> >());
1111
}
12-
13-
}
14-
15-
12+
} // namespace sofa::collisionAlgorithm

0 commit comments

Comments
 (0)