diff --git a/CMakeLists.txt b/CMakeLists.txt index e430f2b2..37ba1ed4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,47 +1,107 @@ cmake_minimum_required(VERSION 3.12) project(CollisionAlgorithm VERSION 0.1 LANGUAGES CXX) -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +find_package(Sofa.Simulation.Core REQUIRED) +find_package(Sofa.Component.StateContainer REQUIRED) +find_package(Sofa.Component.Constraint.Lagrangian.Solver REQUIRED) +find_package(Sofa.GL REQUIRED) -file(GLOB_RECURSE HEADER_FILES - "src/*.h" - "src/*.inl" -) +set(COLLISIONALGORITHM_SRC "src/${PROJECT_NAME}") -file(GLOB_RECURSE SOURCE_FILES - "src/*.cpp" -) +set(HEADER_FILES + ${COLLISIONALGORITHM_SRC}/config.h.in + ${COLLISIONALGORITHM_SRC}/initCollisionAlgorithm.h -file(GLOB_RECURSE SCENES_FILES - "scenes/*.scn" - "*.xml" -) + ${COLLISIONALGORITHM_SRC}/BaseAABBBroadPhase.h + ${COLLISIONALGORITHM_SRC}/BaseAlgorithm.h + ${COLLISIONALGORITHM_SRC}/BaseElement.h + ${COLLISIONALGORITHM_SRC}/BaseGeometry.h + ${COLLISIONALGORITHM_SRC}/BaseOperation.h + ${COLLISIONALGORITHM_SRC}/BaseProximity.h + ${COLLISIONALGORITHM_SRC}/CollisionPipeline.h + ${COLLISIONALGORITHM_SRC}/DataDetectionOutput.h + ${COLLISIONALGORITHM_SRC}/ElementIterator.h + ${COLLISIONALGORITHM_SRC}/InternalData.h -file(GLOB_RECURSE IGNORED_FILES - "ignored/*.h" - "ignored/*.inl" - "ignored/*.cpp" -) + ${COLLISIONALGORITHM_SRC}/algorithm/Find2DClosestProximityAlgorithm.h + ${COLLISIONALGORITHM_SRC}/algorithm/FindClosestProximityAlgorithm.h + ${COLLISIONALGORITHM_SRC}/algorithm/InsertionAlgorithm.h + + ${COLLISIONALGORITHM_SRC}/broadphase/AABBBroadPhase.h + ${COLLISIONALGORITHM_SRC}/broadphase/FullAABBBroadPhase.h + + ${COLLISIONALGORITHM_SRC}/elements/EdgeElement.h + ${COLLISIONALGORITHM_SRC}/elements/PointElement.h + ${COLLISIONALGORITHM_SRC}/elements/TetrahedronElement.h + ${COLLISIONALGORITHM_SRC}/elements/TriangleElement.h + + ${COLLISIONALGORITHM_SRC}/filters/DistanceFilter.h + + ${COLLISIONALGORITHM_SRC}/geometry/EdgeGeometry.h + ${COLLISIONALGORITHM_SRC}/geometry/PointGeometry.h + ${COLLISIONALGORITHM_SRC}/geometry/SubsetGeometry.h + ${COLLISIONALGORITHM_SRC}/geometry/TetrahedronGeometry.h + ${COLLISIONALGORITHM_SRC}/geometry/TriangleGeometry.h + + ${COLLISIONALGORITHM_SRC}/operations/CreateCenterProximity.h + ${COLLISIONALGORITHM_SRC}/operations/FindClosestProximity.h + ${COLLISIONALGORITHM_SRC}/operations/Project.h + ${COLLISIONALGORITHM_SRC}/operations/ContainsPoint.h + ${COLLISIONALGORITHM_SRC}/operations/NeedleOperations.h -file(GLOB_RECURSE DEPRECATED_FILES - "deprecated/*.h" - "deprecated/*.inl" - "deprecated/*.cpp" + ${COLLISIONALGORITHM_SRC}/proximity/EdgeProximity.h + ${COLLISIONALGORITHM_SRC}/proximity/FixedProximity.h + ${COLLISIONALGORITHM_SRC}/proximity/MechanicalProximity.h + ${COLLISIONALGORITHM_SRC}/proximity/MultiProximity.h + ${COLLISIONALGORITHM_SRC}/proximity/PointProximity.h + ${COLLISIONALGORITHM_SRC}/proximity/TetrahedronProximity.h + ${COLLISIONALGORITHM_SRC}/proximity/TriangleProximity.h + + ${COLLISIONALGORITHM_SRC}/toolbox/EdgeToolBox.h + ${COLLISIONALGORITHM_SRC}/toolbox/PointToolBox.h + ${COLLISIONALGORITHM_SRC}/toolbox/TetrahedronToolBox.h + ${COLLISIONALGORITHM_SRC}/toolbox/TriangleToolBox.h ) -find_package(Sofa.Simulation.Core REQUIRED) -find_package(Sofa.Component.StateContainer REQUIRED) -find_package(Sofa.Component.Constraint.Lagrangian.Solver REQUIRED) -find_package(Sofa.GL REQUIRED) +set(SOURCE_FILES + ${COLLISIONALGORITHM_SRC}/initCollisionAlgorithm.cpp + + ${COLLISIONALGORITHM_SRC}/CollisionPipeline.cpp + + ${COLLISIONALGORITHM_SRC}/algorithm/Find2DClosestProximityAlgorithm.cpp + ${COLLISIONALGORITHM_SRC}/algorithm/FindClosestProximityAlgorithm.cpp + ${COLLISIONALGORITHM_SRC}/algorithm/InsertionAlgorithm.cpp + ${COLLISIONALGORITHM_SRC}/broadphase/AABBBroadPhase.cpp + ${COLLISIONALGORITHM_SRC}/broadphase/FullAABBBroadPhase.cpp -include_directories("${CMAKE_CURRENT_SOURCE_DIR}/ignored") -#include_directories("${CMAKE_CURRENT_SOURCE_DIR}/deprecated") + ${COLLISIONALGORITHM_SRC}/elements/EdgeElement.cpp + ${COLLISIONALGORITHM_SRC}/elements/PointElement.cpp + ${COLLISIONALGORITHM_SRC}/elements/TetrahedronElement.cpp + ${COLLISIONALGORITHM_SRC}/elements/TriangleElement.cpp + + ${COLLISIONALGORITHM_SRC}/filters/DistanceFilter.cpp + + ${COLLISIONALGORITHM_SRC}/geometry/EdgeGeometry.cpp + ${COLLISIONALGORITHM_SRC}/geometry/PointGeometry.cpp + ${COLLISIONALGORITHM_SRC}/geometry/SubsetGeometry.cpp + ${COLLISIONALGORITHM_SRC}/geometry/TetrahedronGeometry.cpp + ${COLLISIONALGORITHM_SRC}/geometry/TriangleGeometry.cpp + + ${COLLISIONALGORITHM_SRC}/operations/CreateCenterProximity.cpp + ${COLLISIONALGORITHM_SRC}/operations/FindClosestProximity.cpp + ${COLLISIONALGORITHM_SRC}/operations/Project.cpp + ${COLLISIONALGORITHM_SRC}/operations/ContainsPoint.cpp + ${COLLISIONALGORITHM_SRC}/operations/NeedleOperations.cpp + + ${COLLISIONALGORITHM_SRC}/toolbox/EdgeToolBox.cpp + ${COLLISIONALGORITHM_SRC}/toolbox/PointToolBox.cpp + ${COLLISIONALGORITHM_SRC}/toolbox/TetrahedronToolBox.cpp + ${COLLISIONALGORITHM_SRC}/toolbox/TriangleToolBox.cpp +) -set_source_files_properties(${IGNORED_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) +add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${HEADER_FILES} ${README_FILES}) -add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${HEADER_FILES} ${SCENES_FILES} ${IGNORED_FILES} ${DEPRECATED_FILES} ${README_FILES}) -set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-DPLUGIN_DATA_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/\"") target_link_libraries(${PROJECT_NAME} Sofa.Simulation.Core Sofa.Component.StateContainer @@ -49,8 +109,12 @@ target_link_libraries(${PROJECT_NAME} Sofa.GL ) -## Install rules for the library and headers; CMake package configurations files -set(${PROJECT_NAME}_INCLUDE_DIRS "include/${PROJECT_NAME}") -target_include_directories(${PROJECT_NAME} PUBLIC "$") -target_include_directories(${PROJECT_NAME} PUBLIC "$") -sofa_create_package_with_targets(PACKAGE_NAME ${PROJECT_NAME} PACKAGE_VERSION 0.1 TARGETS ${PROJECT_NAME} INCLUDE_INSTALL_DIR ${${PROJECT_NAME}_INCLUDE_DIRS}) +sofa_create_package_with_targets( + PACKAGE_NAME ${PROJECT_NAME} + PACKAGE_VERSION ${PROJECT_VERSION} + TARGETS ${PROJECT_NAME} AUTO_SET_TARGET_PROPERTIES + INCLUDE_SOURCE_DIR "src" + INCLUDE_INSTALL_DIR ${PROJECT_NAME} + EXAMPLE_INSTALL_DIR "scenes" + RELOCATABLE "plugins" + ) diff --git a/CollisionAlgorithmConfig.cmake.in b/CollisionAlgorithmConfig.cmake.in index 68a93934..0e15df71 100644 --- a/CollisionAlgorithmConfig.cmake.in +++ b/CollisionAlgorithmConfig.cmake.in @@ -4,6 +4,8 @@ @PACKAGE_INIT@ find_package(Sofa.Simulation.Core QUIET REQUIRED) +find_package(Sofa.Component.StateContainer QUIET REQUIRED) +find_package(Sofa.Component.Constraint.Lagrangian.Solver QUIET REQUIRED) find_package(Sofa.GL QUIET REQUIRED) if(NOT TARGET @PROJECT_NAME@) diff --git a/src/sofa/collisionAlgorithm/BaseAABBBroadPhase.h b/src/CollisionAlgorithm/BaseAABBBroadPhase.h similarity index 98% rename from src/sofa/collisionAlgorithm/BaseAABBBroadPhase.h rename to src/CollisionAlgorithm/BaseAABBBroadPhase.h index cee5c088..b801da9a 100644 --- a/src/sofa/collisionAlgorithm/BaseAABBBroadPhase.h +++ b/src/CollisionAlgorithm/BaseAABBBroadPhase.h @@ -1,13 +1,13 @@ #pragma once #include -#include -#include -#include -#include +#include +#include +#include +#include #include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class BaseAABBBroadPhase : public BaseGeometry::BroadPhase { public: diff --git a/src/sofa/collisionAlgorithm/BaseAlgorithm.h b/src/CollisionAlgorithm/BaseAlgorithm.h similarity index 92% rename from src/sofa/collisionAlgorithm/BaseAlgorithm.h rename to src/CollisionAlgorithm/BaseAlgorithm.h index 7cb256c3..f4fc0838 100644 --- a/src/sofa/collisionAlgorithm/BaseAlgorithm.h +++ b/src/CollisionAlgorithm/BaseAlgorithm.h @@ -1,11 +1,11 @@ #pragma once -#include +#include #include -#include -#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { /*! * \class BaseAlgorithm diff --git a/src/sofa/collisionAlgorithm/BaseElement.h b/src/CollisionAlgorithm/BaseElement.h similarity index 95% rename from src/sofa/collisionAlgorithm/BaseElement.h rename to src/CollisionAlgorithm/BaseElement.h index 065a1b9d..b3d5196f 100644 --- a/src/sofa/collisionAlgorithm/BaseElement.h +++ b/src/CollisionAlgorithm/BaseElement.h @@ -1,9 +1,9 @@ #pragma once -#include +#include #include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class PointElement; class EdgeElement; diff --git a/src/sofa/collisionAlgorithm/BaseGeometry.h b/src/CollisionAlgorithm/BaseGeometry.h similarity index 94% rename from src/sofa/collisionAlgorithm/BaseGeometry.h rename to src/CollisionAlgorithm/BaseGeometry.h index 842042ab..a051435e 100644 --- a/src/sofa/collisionAlgorithm/BaseGeometry.h +++ b/src/CollisionAlgorithm/BaseGeometry.h @@ -1,19 +1,19 @@ #pragma once -#include -#include -#include -#include +#include +#include +#include +#include #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -namespace sofa ::collisionAlgorithm { +namespace sofa ::collisionalgorithm { /*! diff --git a/src/sofa/collisionAlgorithm/BaseOperation.h b/src/CollisionAlgorithm/BaseOperation.h similarity index 98% rename from src/sofa/collisionAlgorithm/BaseOperation.h rename to src/CollisionAlgorithm/BaseOperation.h index e4d83401..1b0e9fcf 100644 --- a/src/sofa/collisionAlgorithm/BaseOperation.h +++ b/src/CollisionAlgorithm/BaseOperation.h @@ -1,10 +1,10 @@ #pragma once -#include +#include #include #include -namespace sofa::collisionAlgorithm::Operations { +namespace sofa::collisionalgorithm::Operations { template class REAL_TYPE_CHECK { diff --git a/src/sofa/collisionAlgorithm/BaseProximity.h b/src/CollisionAlgorithm/BaseProximity.h similarity index 98% rename from src/sofa/collisionAlgorithm/BaseProximity.h rename to src/CollisionAlgorithm/BaseProximity.h index 1e6d280f..e40a532d 100644 --- a/src/sofa/collisionAlgorithm/BaseProximity.h +++ b/src/CollisionAlgorithm/BaseProximity.h @@ -8,7 +8,7 @@ #include #include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { /*! * \brief The BaseProximity class is the basic abstract proximity class diff --git a/src/sofa/collisionAlgorithm/CollisionPipeline.cpp b/src/CollisionAlgorithm/CollisionPipeline.cpp similarity index 70% rename from src/sofa/collisionAlgorithm/CollisionPipeline.cpp rename to src/CollisionAlgorithm/CollisionPipeline.cpp index a7f0603d..0c35145a 100644 --- a/src/sofa/collisionAlgorithm/CollisionPipeline.cpp +++ b/src/CollisionAlgorithm/CollisionPipeline.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerCollisionLoop(sofa::core::ObjectFactory* factory) { @@ -10,4 +10,4 @@ void registerCollisionLoop(sofa::core::ObjectFactory* factory) "A collision pipeline customized for proximity detection during needle insertion") .add()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/CollisionPipeline.h b/src/CollisionAlgorithm/CollisionPipeline.h similarity index 92% rename from src/sofa/collisionAlgorithm/CollisionPipeline.h rename to src/CollisionAlgorithm/CollisionPipeline.h index 8ccf04a7..d86aa9c7 100644 --- a/src/sofa/collisionAlgorithm/CollisionPipeline.h +++ b/src/CollisionAlgorithm/CollisionPipeline.h @@ -1,9 +1,9 @@ #pragma once -//#include +//#include #include -#include -#include +#include +#include #include #include #include @@ -11,11 +11,11 @@ #include #include #include -#include +#include #include #include -namespace sofa ::collisionAlgorithm { +namespace sofa ::collisionalgorithm { class CollisionComponent : public core::objectmodel::BaseObject { public: diff --git a/src/sofa/collisionAlgorithm/DataDetectionOutput.h b/src/CollisionAlgorithm/DataDetectionOutput.h similarity index 92% rename from src/sofa/collisionAlgorithm/DataDetectionOutput.h rename to src/CollisionAlgorithm/DataDetectionOutput.h index 57080b6d..5201fbcd 100644 --- a/src/sofa/collisionAlgorithm/DataDetectionOutput.h +++ b/src/CollisionAlgorithm/DataDetectionOutput.h @@ -1,11 +1,11 @@ #pragma once -#include +#include namespace sofa { -namespace collisionAlgorithm +namespace collisionalgorithm { template @@ -130,7 +130,7 @@ struct DetectionOutputTypeInfo }; template<> -struct DataTypeInfo< collisionAlgorithm::DetectionOutput > : public DetectionOutputTypeInfo< collisionAlgorithm::DetectionOutput > +struct DataTypeInfo< collisionalgorithm::DetectionOutput > : public DetectionOutputTypeInfo< collisionalgorithm::DetectionOutput > { static std::string name() { std::ostringstream o; o << "DetectionOutput"; return o.str(); } }; diff --git a/src/sofa/collisionAlgorithm/ElementIterator.h b/src/CollisionAlgorithm/ElementIterator.h similarity index 95% rename from src/sofa/collisionAlgorithm/ElementIterator.h rename to src/CollisionAlgorithm/ElementIterator.h index effdb70d..2e1418c4 100644 --- a/src/sofa/collisionAlgorithm/ElementIterator.h +++ b/src/CollisionAlgorithm/ElementIterator.h @@ -1,9 +1,9 @@ #pragma once -#include -#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class BaseGeometry; diff --git a/src/sofa/collisionAlgorithm/InternalData.h b/src/CollisionAlgorithm/InternalData.h similarity index 79% rename from src/sofa/collisionAlgorithm/InternalData.h rename to src/CollisionAlgorithm/InternalData.h index f493fa7c..51563d9a 100644 --- a/src/sofa/collisionAlgorithm/InternalData.h +++ b/src/CollisionAlgorithm/InternalData.h @@ -1,17 +1,17 @@ #pragma once -#include -#include -#include -#include +#include +#include +#include +#include #include #include -#include -#include -#include -#include +#include +#include +#include +#include -namespace sofa ::collisionAlgorithm { +namespace sofa ::collisionalgorithm { class InternalDataContainer { diff --git a/src/sofa/collisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.cpp b/src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.cpp similarity index 69% rename from src/sofa/collisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.cpp rename to src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.cpp index 7d56c241..33c286f5 100644 --- a/src/sofa/collisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.cpp +++ b/src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerFind2DClosestProximityAlgorithm(sofa::core::ObjectFactory* factory) { @@ -10,4 +10,4 @@ void registerFind2DClosestProximityAlgorithm(sofa::core::ObjectFactory* factory) "An algorithm to find the closest proximity between two BaseGeometry types in 2D") .add()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h b/src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h similarity index 92% rename from src/sofa/collisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h rename to src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h index faf3b791..4af1aa54 100644 --- a/src/sofa/collisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h +++ b/src/CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h @@ -1,13 +1,13 @@ #pragma once -#include -#include -#include -#include -#include -#include - -namespace sofa::collisionAlgorithm { +#include +#include +#include +#include +#include +#include + +namespace sofa::collisionalgorithm { class Find2DClosestProximityAlgorithm : public BaseAlgorithm { public: diff --git a/src/sofa/collisionAlgorithm/algorithm/FindClosestProximityAlgorithm.cpp b/src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.cpp similarity index 68% rename from src/sofa/collisionAlgorithm/algorithm/FindClosestProximityAlgorithm.cpp rename to src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.cpp index 397d6aee..1761699b 100644 --- a/src/sofa/collisionAlgorithm/algorithm/FindClosestProximityAlgorithm.cpp +++ b/src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerFindClosestProximityAlgorithm(sofa::core::ObjectFactory* factory) { @@ -10,4 +10,4 @@ void registerFindClosestProximityAlgorithm(sofa::core::ObjectFactory* factory) "An algorithm to find the closest proximity between two BaseGeometry types") .add()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h b/src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h similarity index 88% rename from src/sofa/collisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h rename to src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h index 2a3888f7..c776cf7b 100644 --- a/src/sofa/collisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h +++ b/src/CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h @@ -1,13 +1,13 @@ #pragma once -#include -#include -#include -#include -#include -#include - -namespace sofa::collisionAlgorithm { +#include +#include +#include +#include +#include +#include + +namespace sofa::collisionalgorithm { class FindClosestProximityAlgorithm : public BaseAlgorithm { public: diff --git a/src/sofa/collisionAlgorithm/algorithm/InsertionAlgorithm.cpp b/src/CollisionAlgorithm/algorithm/InsertionAlgorithm.cpp similarity index 70% rename from src/sofa/collisionAlgorithm/algorithm/InsertionAlgorithm.cpp rename to src/CollisionAlgorithm/algorithm/InsertionAlgorithm.cpp index 6bce8091..8b1736f1 100644 --- a/src/sofa/collisionAlgorithm/algorithm/InsertionAlgorithm.cpp +++ b/src/CollisionAlgorithm/algorithm/InsertionAlgorithm.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerInsertionAlgorithm(sofa::core::ObjectFactory* factory) { @@ -9,4 +9,4 @@ void registerInsertionAlgorithm(sofa::core::ObjectFactory* factory) "A class implementing a customized needle insertion algorithm") .add()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/algorithm/InsertionAlgorithm.h b/src/CollisionAlgorithm/algorithm/InsertionAlgorithm.h similarity index 95% rename from src/sofa/collisionAlgorithm/algorithm/InsertionAlgorithm.h rename to src/CollisionAlgorithm/algorithm/InsertionAlgorithm.h index 5ff49be3..694acd4b 100644 --- a/src/sofa/collisionAlgorithm/algorithm/InsertionAlgorithm.h +++ b/src/CollisionAlgorithm/algorithm/InsertionAlgorithm.h @@ -1,19 +1,18 @@ #pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { class InsertionAlgorithm : public BaseAlgorithm @@ -326,4 +325,4 @@ class InsertionAlgorithm : public BaseAlgorithm } }; -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/broadphase/AABBBroadPhase.cpp b/src/CollisionAlgorithm/broadphase/AABBBroadPhase.cpp similarity index 83% rename from src/sofa/collisionAlgorithm/broadphase/AABBBroadPhase.cpp rename to src/CollisionAlgorithm/broadphase/AABBBroadPhase.cpp index 5eb097bf..3d2011ff 100644 --- a/src/sofa/collisionAlgorithm/broadphase/AABBBroadPhase.cpp +++ b/src/CollisionAlgorithm/broadphase/AABBBroadPhase.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerAABBBroadPhase(sofa::core::ObjectFactory* factory) { @@ -15,4 +15,4 @@ void registerAABBBroadPhase(sofa::core::ObjectFactory* factory) )") .add()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/broadphase/AABBBroadPhase.h b/src/CollisionAlgorithm/broadphase/AABBBroadPhase.h similarity index 96% rename from src/sofa/collisionAlgorithm/broadphase/AABBBroadPhase.h rename to src/CollisionAlgorithm/broadphase/AABBBroadPhase.h index 92943aad..686bc702 100644 --- a/src/sofa/collisionAlgorithm/broadphase/AABBBroadPhase.h +++ b/src/CollisionAlgorithm/broadphase/AABBBroadPhase.h @@ -1,11 +1,11 @@ #pragma once #include -#include -#include -#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { /** * @brief A class for broad-phase collision detection using Axis-Aligned Bounding Boxes (AABB). @@ -170,4 +170,4 @@ class AABBBroadPhase : public BaseAABBBroadPhase { type::Vec<2, size_t> m_offset; }; -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/broadphase/FullAABBBroadPhase.cpp b/src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.cpp similarity index 59% rename from src/sofa/collisionAlgorithm/broadphase/FullAABBBroadPhase.cpp rename to src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.cpp index e19aef85..5e5399c0 100644 --- a/src/sofa/collisionAlgorithm/broadphase/FullAABBBroadPhase.cpp +++ b/src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.cpp @@ -1,10 +1,10 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerFullAABBBroadPhase(sofa::core::ObjectFactory* factory) { factory->registerObjects(sofa::core::ObjectRegistrationData("").add()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/broadphase/FullAABBBroadPhase.h b/src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.h similarity index 87% rename from src/sofa/collisionAlgorithm/broadphase/FullAABBBroadPhase.h rename to src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.h index 87e5ddab..11081202 100644 --- a/src/sofa/collisionAlgorithm/broadphase/FullAABBBroadPhase.h +++ b/src/CollisionAlgorithm/broadphase/FullAABBBroadPhase.h @@ -1,11 +1,11 @@ #pragma once #include -#include -#include -#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class FullAABBBroadPhase : public BaseAABBBroadPhase { public: diff --git a/src/CollisionAlgorithm/config.h.in b/src/CollisionAlgorithm/config.h.in new file mode 100644 index 00000000..6410d2b9 --- /dev/null +++ b/src/CollisionAlgorithm/config.h.in @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +#define COLLISIONALGORITHM_VERSION @PROJECT_VERSION@ + +#ifdef SOFA_BUILD_COLLISIONALGORITHM +# define SOFA_TARGET @PROJECT_NAME@ +# define SOFA_COLLISIONALGORITHM_API SOFA_EXPORT_DYNAMIC_LIBRARY +#else +# define SOFA_COLLISIONALGORITHM_API SOFA_IMPORT_DYNAMIC_LIBRARY +#endif + +namespace sofa::collisionalgorithm +{ + constexpr const char* MODULE_NAME = "@PROJECT_NAME@"; + constexpr const char* MODULE_VERSION = "@PROJECT_VERSION@"; +} diff --git a/src/sofa/collisionAlgorithm/elements/EdgeElement.cpp b/src/CollisionAlgorithm/elements/EdgeElement.cpp similarity index 60% rename from src/sofa/collisionAlgorithm/elements/EdgeElement.cpp rename to src/CollisionAlgorithm/elements/EdgeElement.cpp index 0b093004..748840d1 100644 --- a/src/sofa/collisionAlgorithm/elements/EdgeElement.cpp +++ b/src/CollisionAlgorithm/elements/EdgeElement.cpp @@ -1,10 +1,10 @@ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { EdgeElement::SPtr EdgeElement::create(const PointElement::SPtr & p0, const PointElement::SPtr & p1) { EdgeElement::SPtr res = EdgeElement::SPtr(new EdgeElement()); diff --git a/src/sofa/collisionAlgorithm/elements/EdgeElement.h b/src/CollisionAlgorithm/elements/EdgeElement.h similarity index 91% rename from src/sofa/collisionAlgorithm/elements/EdgeElement.h rename to src/CollisionAlgorithm/elements/EdgeElement.h index 682074c4..b095003a 100644 --- a/src/sofa/collisionAlgorithm/elements/EdgeElement.h +++ b/src/CollisionAlgorithm/elements/EdgeElement.h @@ -1,9 +1,9 @@ #pragma once -#include -#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class EdgeElement : public BaseElement { public: diff --git a/src/CollisionAlgorithm/elements/PointElement.cpp b/src/CollisionAlgorithm/elements/PointElement.cpp new file mode 100644 index 00000000..eca1d6e6 --- /dev/null +++ b/src/CollisionAlgorithm/elements/PointElement.cpp @@ -0,0 +1,13 @@ +#include +#include +#include +#include +#include + +namespace sofa::collisionalgorithm { + +PointElement::SPtr PointElement::create(const BaseProximity::SPtr &prox) { + return PointElement::SPtr(new PointElement(prox)); +} + +} diff --git a/src/sofa/collisionAlgorithm/elements/PointElement.h b/src/CollisionAlgorithm/elements/PointElement.h similarity index 95% rename from src/sofa/collisionAlgorithm/elements/PointElement.h rename to src/CollisionAlgorithm/elements/PointElement.h index b90d8776..4b2bf2be 100644 --- a/src/sofa/collisionAlgorithm/elements/PointElement.h +++ b/src/CollisionAlgorithm/elements/PointElement.h @@ -1,9 +1,9 @@ #pragma once -#include +#include #include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class PointElement : public BaseElement { public: diff --git a/src/sofa/collisionAlgorithm/elements/TetrahedronElement.cpp b/src/CollisionAlgorithm/elements/TetrahedronElement.cpp similarity index 87% rename from src/sofa/collisionAlgorithm/elements/TetrahedronElement.cpp rename to src/CollisionAlgorithm/elements/TetrahedronElement.cpp index d3eddf4c..1a0e7fee 100644 --- a/src/sofa/collisionAlgorithm/elements/TetrahedronElement.cpp +++ b/src/CollisionAlgorithm/elements/TetrahedronElement.cpp @@ -1,10 +1,10 @@ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { 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, diff --git a/src/sofa/collisionAlgorithm/elements/TetrahedronElement.h b/src/CollisionAlgorithm/elements/TetrahedronElement.h similarity index 96% rename from src/sofa/collisionAlgorithm/elements/TetrahedronElement.h rename to src/CollisionAlgorithm/elements/TetrahedronElement.h index ccc6697f..a7c74bbf 100644 --- a/src/sofa/collisionAlgorithm/elements/TetrahedronElement.h +++ b/src/CollisionAlgorithm/elements/TetrahedronElement.h @@ -1,9 +1,9 @@ #pragma once -#include -#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class TetrahedronElement : public BaseElement { public: diff --git a/src/sofa/collisionAlgorithm/elements/TriangleElement.cpp b/src/CollisionAlgorithm/elements/TriangleElement.cpp similarity index 78% rename from src/sofa/collisionAlgorithm/elements/TriangleElement.cpp rename to src/CollisionAlgorithm/elements/TriangleElement.cpp index dcc3a44f..7356fbb2 100644 --- a/src/sofa/collisionAlgorithm/elements/TriangleElement.cpp +++ b/src/CollisionAlgorithm/elements/TriangleElement.cpp @@ -1,10 +1,10 @@ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { TriangleElement::SPtr TriangleElement::create(BaseProximity::SPtr prox0, BaseProximity::SPtr prox1,BaseProximity::SPtr prox2) { PointElement::SPtr p0 = PointElement::create(prox0); diff --git a/src/sofa/collisionAlgorithm/elements/TriangleElement.h b/src/CollisionAlgorithm/elements/TriangleElement.h similarity index 96% rename from src/sofa/collisionAlgorithm/elements/TriangleElement.h rename to src/CollisionAlgorithm/elements/TriangleElement.h index 5271f5df..65010b69 100644 --- a/src/sofa/collisionAlgorithm/elements/TriangleElement.h +++ b/src/CollisionAlgorithm/elements/TriangleElement.h @@ -1,9 +1,9 @@ #pragma once -#include -#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class TriangleElement : public BaseElement { public: diff --git a/src/sofa/collisionAlgorithm/filters/DistanceFilter.cpp b/src/CollisionAlgorithm/filters/DistanceFilter.cpp similarity index 69% rename from src/sofa/collisionAlgorithm/filters/DistanceFilter.cpp rename to src/CollisionAlgorithm/filters/DistanceFilter.cpp index 57043729..6fbeca89 100644 --- a/src/sofa/collisionAlgorithm/filters/DistanceFilter.cpp +++ b/src/CollisionAlgorithm/filters/DistanceFilter.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerDistanceFilter(sofa::core::ObjectFactory* factory) { @@ -10,4 +10,4 @@ void registerDistanceFilter(sofa::core::ObjectFactory* factory) "This class filters detected proximities based on their distance from source") .add()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/filters/DistanceFilter.h b/src/CollisionAlgorithm/filters/DistanceFilter.h similarity index 87% rename from src/sofa/collisionAlgorithm/filters/DistanceFilter.h rename to src/CollisionAlgorithm/filters/DistanceFilter.h index 2432e6af..abcaa917 100644 --- a/src/sofa/collisionAlgorithm/filters/DistanceFilter.h +++ b/src/CollisionAlgorithm/filters/DistanceFilter.h @@ -1,8 +1,8 @@ #pragma once -#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { /*! * \brief The DistanceFilter class diff --git a/src/sofa/collisionAlgorithm/geometry/EdgeGeometry.cpp b/src/CollisionAlgorithm/geometry/EdgeGeometry.cpp similarity index 71% rename from src/sofa/collisionAlgorithm/geometry/EdgeGeometry.cpp rename to src/CollisionAlgorithm/geometry/EdgeGeometry.cpp index a4ec0755..e62e758d 100644 --- a/src/sofa/collisionAlgorithm/geometry/EdgeGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/EdgeGeometry.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerEdgeGeometry(sofa::core::ObjectFactory* factory) { @@ -10,4 +10,4 @@ void registerEdgeGeometry(sofa::core::ObjectFactory* factory) "A class bridging edge topological information with the proximity detection algorithm") .add >()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/geometry/EdgeGeometry.h b/src/CollisionAlgorithm/geometry/EdgeGeometry.h similarity index 85% rename from src/sofa/collisionAlgorithm/geometry/EdgeGeometry.h rename to src/CollisionAlgorithm/geometry/EdgeGeometry.h index e66d0c1b..8391cc14 100644 --- a/src/sofa/collisionAlgorithm/geometry/EdgeGeometry.h +++ b/src/CollisionAlgorithm/geometry/EdgeGeometry.h @@ -1,10 +1,10 @@ #pragma once -#include -#include -#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { template class EdgeGeometry : public PointGeometry { diff --git a/src/sofa/collisionAlgorithm/geometry/PointGeometry.cpp b/src/CollisionAlgorithm/geometry/PointGeometry.cpp similarity index 72% rename from src/sofa/collisionAlgorithm/geometry/PointGeometry.cpp rename to src/CollisionAlgorithm/geometry/PointGeometry.cpp index 24b54f66..eb17719a 100644 --- a/src/sofa/collisionAlgorithm/geometry/PointGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/PointGeometry.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerPointGeometry(sofa::core::ObjectFactory* factory) { @@ -10,4 +10,4 @@ void registerPointGeometry(sofa::core::ObjectFactory* factory) "A class bridging point topological information with the proximity detection algorithm") .add >()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/geometry/PointGeometry.h b/src/CollisionAlgorithm/geometry/PointGeometry.h similarity index 76% rename from src/sofa/collisionAlgorithm/geometry/PointGeometry.h rename to src/CollisionAlgorithm/geometry/PointGeometry.h index db94e7bb..59de30ab 100644 --- a/src/sofa/collisionAlgorithm/geometry/PointGeometry.h +++ b/src/CollisionAlgorithm/geometry/PointGeometry.h @@ -1,14 +1,14 @@ #pragma once -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include namespace sofa { -namespace collisionAlgorithm { +namespace collisionalgorithm { template class PointGeometry : public TBaseGeometry { diff --git a/src/sofa/collisionAlgorithm/geometry/SubsetGeometry.cpp b/src/CollisionAlgorithm/geometry/SubsetGeometry.cpp similarity index 64% rename from src/sofa/collisionAlgorithm/geometry/SubsetGeometry.cpp rename to src/CollisionAlgorithm/geometry/SubsetGeometry.cpp index 90143a4f..2a30ca15 100644 --- a/src/sofa/collisionAlgorithm/geometry/SubsetGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/SubsetGeometry.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerSubsetGeometry(sofa::core::ObjectFactory* factory) { @@ -9,4 +9,4 @@ void registerSubsetGeometry(sofa::core::ObjectFactory* factory) sofa::core::ObjectRegistrationData("") .add >()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/geometry/SubsetGeometry.h b/src/CollisionAlgorithm/geometry/SubsetGeometry.h similarity index 89% rename from src/sofa/collisionAlgorithm/geometry/SubsetGeometry.h rename to src/CollisionAlgorithm/geometry/SubsetGeometry.h index 26b56bbe..3f08cf73 100644 --- a/src/sofa/collisionAlgorithm/geometry/SubsetGeometry.h +++ b/src/CollisionAlgorithm/geometry/SubsetGeometry.h @@ -1,10 +1,10 @@ #pragma once -#include -#include -#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { template class SubsetGeometry : public TBaseGeometry { diff --git a/src/sofa/collisionAlgorithm/geometry/TetrahedronGeometry.cpp b/src/CollisionAlgorithm/geometry/TetrahedronGeometry.cpp similarity index 75% rename from src/sofa/collisionAlgorithm/geometry/TetrahedronGeometry.cpp rename to src/CollisionAlgorithm/geometry/TetrahedronGeometry.cpp index aac4b8d5..156c2b16 100644 --- a/src/sofa/collisionAlgorithm/geometry/TetrahedronGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/TetrahedronGeometry.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerTetrahedronGeometry(sofa::core::ObjectFactory* factory) { @@ -10,4 +10,4 @@ void registerTetrahedronGeometry(sofa::core::ObjectFactory* factory) "the proximity detection algorithm") .add >()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/geometry/TetrahedronGeometry.h b/src/CollisionAlgorithm/geometry/TetrahedronGeometry.h similarity index 88% rename from src/sofa/collisionAlgorithm/geometry/TetrahedronGeometry.h rename to src/CollisionAlgorithm/geometry/TetrahedronGeometry.h index 4be0fae6..dad4e4a3 100644 --- a/src/sofa/collisionAlgorithm/geometry/TetrahedronGeometry.h +++ b/src/CollisionAlgorithm/geometry/TetrahedronGeometry.h @@ -1,11 +1,11 @@ #pragma once -#include -#include -#include +#include +#include +#include #include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { template class TetrahedronGeometry : public TriangleGeometry { diff --git a/src/sofa/collisionAlgorithm/geometry/TriangleGeometry.cpp b/src/CollisionAlgorithm/geometry/TriangleGeometry.cpp similarity index 73% rename from src/sofa/collisionAlgorithm/geometry/TriangleGeometry.cpp rename to src/CollisionAlgorithm/geometry/TriangleGeometry.cpp index 7790b145..b6fadbf1 100644 --- a/src/sofa/collisionAlgorithm/geometry/TriangleGeometry.cpp +++ b/src/CollisionAlgorithm/geometry/TriangleGeometry.cpp @@ -1,7 +1,7 @@ -#include +#include #include -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { void registerTriangleGeometry(sofa::core::ObjectFactory* factory) { @@ -10,4 +10,4 @@ void registerTriangleGeometry(sofa::core::ObjectFactory* factory) "the proximity detection algorithm") .add >()); } -} // namespace sofa::collisionAlgorithm +} // namespace sofa::collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/geometry/TriangleGeometry.h b/src/CollisionAlgorithm/geometry/TriangleGeometry.h similarity index 84% rename from src/sofa/collisionAlgorithm/geometry/TriangleGeometry.h rename to src/CollisionAlgorithm/geometry/TriangleGeometry.h index 6bab6515..dc20bcce 100644 --- a/src/sofa/collisionAlgorithm/geometry/TriangleGeometry.h +++ b/src/CollisionAlgorithm/geometry/TriangleGeometry.h @@ -1,11 +1,11 @@ #pragma once -#include -#include -#include -#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { template class TriangleGeometry : public EdgeGeometry { diff --git a/src/sofa/collisionAlgorithm/initPlugin.cpp b/src/CollisionAlgorithm/initCollisionAlgorithm.cpp similarity index 78% rename from src/sofa/collisionAlgorithm/initPlugin.cpp rename to src/CollisionAlgorithm/initCollisionAlgorithm.cpp index 94288219..ba5b0849 100644 --- a/src/sofa/collisionAlgorithm/initPlugin.cpp +++ b/src/CollisionAlgorithm/initCollisionAlgorithm.cpp @@ -1,3 +1,5 @@ +#include + #include #include #include @@ -10,7 +12,7 @@ #define Q(x) #x #define QUOTE(x) Q(x) -namespace sofa::collisionAlgorithm +namespace sofa::collisionalgorithm { // CollisionPipeline @@ -34,21 +36,15 @@ extern void registerPointGeometry(sofa::core::ObjectFactory* factory); extern void registerEdgeGeometry(sofa::core::ObjectFactory* factory); extern void registerTriangleGeometry(sofa::core::ObjectFactory* factory); extern void registerTetrahedronGeometry(sofa::core::ObjectFactory* factory); -} // namespace sofa::collisionAlgorithm - -namespace sofa::component -{ - -// Here are just several convenient functions to help user to know what contains the plugin extern "C" { - void initExternalModule(); - const char* getModuleName(); - const char* getModuleVersion(); - const char* getModuleLicense(); - const char* getModuleDescription(); - void registerObjects(sofa::core::ObjectFactory* factory); + SOFA_COLLISIONALGORITHM_API void initExternalModule(); + SOFA_COLLISIONALGORITHM_API const char* getModuleName(); + SOFA_COLLISIONALGORITHM_API const char* getModuleVersion(); + SOFA_COLLISIONALGORITHM_API const char* getModuleLicense(); + SOFA_COLLISIONALGORITHM_API const char* getModuleDescription(); + SOFA_COLLISIONALGORITHM_API void registerObjects(sofa::core::ObjectFactory* factory); } void initCollisionAlgorithm() @@ -56,6 +52,9 @@ void initCollisionAlgorithm() static bool first = true; if (first) { + // make sure that this plugin is registered into the PluginManager + sofa::helper::system::PluginManager::getInstance().registerPlugin(MODULE_NAME); + first = false; #ifdef PLUGIN_DATA_DIR sofa::helper::system::DataRepository.addLastPath(std::string(QUOTE(PLUGIN_DATA_DIR))); @@ -70,7 +69,7 @@ void initExternalModule() initCollisionAlgorithm(); } -const char* getModuleName() { return "CollisionAlgorithm"; } +const char* getModuleName() { return MODULE_NAME; } const char* getModuleVersion() { @@ -87,7 +86,6 @@ const char* getModuleDescription() { return "Plugin for collision detection"; } void registerObjects(sofa::core::ObjectFactory* factory) { - using namespace sofa::collisionAlgorithm; // Register CollisionPipeline registerCollisionLoop(factory); // Register Algorithms @@ -107,4 +105,4 @@ void registerObjects(sofa::core::ObjectFactory* factory) registerTetrahedronGeometry(factory); } -} // namespace sofa::component +} // namespace collisionalgorithm diff --git a/src/CollisionAlgorithm/initCollisionAlgorithm.h b/src/CollisionAlgorithm/initCollisionAlgorithm.h new file mode 100644 index 00000000..d6a9e848 --- /dev/null +++ b/src/CollisionAlgorithm/initCollisionAlgorithm.h @@ -0,0 +1,7 @@ +#pragma once +#include + +namespace collisionalgorithm +{ + void SOFA_COLLISIONALGORITHM_API initCollisionAlgorithm(); +} // namespace collisionalgorithm diff --git a/src/sofa/collisionAlgorithm/operations/ContainsPoint.cpp b/src/CollisionAlgorithm/operations/ContainsPoint.cpp similarity index 56% rename from src/sofa/collisionAlgorithm/operations/ContainsPoint.cpp rename to src/CollisionAlgorithm/operations/ContainsPoint.cpp index b6147edb..a171ebe5 100644 --- a/src/sofa/collisionAlgorithm/operations/ContainsPoint.cpp +++ b/src/CollisionAlgorithm/operations/ContainsPoint.cpp @@ -1,8 +1,8 @@ -#include -#include -#include +#include +#include +#include -namespace sofa::collisionAlgorithm::Operations::ContainsPointInElement +namespace sofa::collisionalgorithm::Operations::ContainsPointInElement { int register_ContainsPoint_Triangle = @@ -11,9 +11,9 @@ int register_ContainsPoint_Triangle = int register_ContainsPoint_Tetrahedron = Operation::register_func(&toolbox::TetrahedronToolBox::containsPoint); -} // namespace sofa::collisionAlgorithm::Operations::ContainsPointInElement +} // namespace sofa::collisionalgorithm::Operations::ContainsPointInElement -namespace sofa::collisionAlgorithm::Operations::ContainsPointInProximity +namespace sofa::collisionalgorithm::Operations::ContainsPointInProximity { int register_ContainsPointInProximity_Triangle = @@ -22,4 +22,4 @@ int register_ContainsPointInProximity_Triangle = int register_ContainsPointInProximity_Tetrahedron = Operation::register_func(&containsPoint); -} // namespace sofa::collisionAlgorithm::Operations::ContainsPointInProximity +} // namespace sofa::collisionalgorithm::Operations::ContainsPointInProximity diff --git a/src/sofa/collisionAlgorithm/operations/ContainsPoint.h b/src/CollisionAlgorithm/operations/ContainsPoint.h similarity index 82% rename from src/sofa/collisionAlgorithm/operations/ContainsPoint.h rename to src/CollisionAlgorithm/operations/ContainsPoint.h index e03407a9..e4edf11e 100644 --- a/src/sofa/collisionAlgorithm/operations/ContainsPoint.h +++ b/src/CollisionAlgorithm/operations/ContainsPoint.h @@ -1,9 +1,9 @@ #pragma once -#include -#include +#include +#include -namespace sofa::collisionAlgorithm::Operations::ContainsPointInElement +namespace sofa::collisionalgorithm::Operations::ContainsPointInElement { typedef bool Result; @@ -26,9 +26,9 @@ class Operation : public GenericOperation& auto elem = prox->element(); auto containsPointInElem = - sofa::collisionAlgorithm::Operations::ContainsPointInElement::Operation::get(elem); + sofa::collisionalgorithm::Operations::ContainsPointInElement::Operation::get(elem); return containsPointInElem(P, elem); } typedef Operation::FUNC FUNC; -} // namespace sofa::collisionAlgorithm::Operations::ContainsPointInProximity +} // namespace sofa::collisionalgorithm::Operations::ContainsPointInProximity diff --git a/src/sofa/collisionAlgorithm/operations/CreateCenterProximity.cpp b/src/CollisionAlgorithm/operations/CreateCenterProximity.cpp similarity index 58% rename from src/sofa/collisionAlgorithm/operations/CreateCenterProximity.cpp rename to src/CollisionAlgorithm/operations/CreateCenterProximity.cpp index 4456712d..0ea11073 100644 --- a/src/sofa/collisionAlgorithm/operations/CreateCenterProximity.cpp +++ b/src/CollisionAlgorithm/operations/CreateCenterProximity.cpp @@ -1,10 +1,10 @@ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm::Operations::CreateCenterProximity { +namespace sofa::collisionalgorithm::Operations::CreateCenterProximity { int register_CenterProximity_Point = Operation::register_func(&toolbox::PointToolBox::createCenterProximity); diff --git a/src/sofa/collisionAlgorithm/operations/CreateCenterProximity.h b/src/CollisionAlgorithm/operations/CreateCenterProximity.h similarity index 71% rename from src/sofa/collisionAlgorithm/operations/CreateCenterProximity.h rename to src/CollisionAlgorithm/operations/CreateCenterProximity.h index e567b76a..bcaf53b4 100644 --- a/src/sofa/collisionAlgorithm/operations/CreateCenterProximity.h +++ b/src/CollisionAlgorithm/operations/CreateCenterProximity.h @@ -1,11 +1,11 @@ #pragma once -#include -#include -#include -#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm::Operations::CreateCenterProximity { +namespace sofa::collisionalgorithm::Operations::CreateCenterProximity { typedef BaseProximity::SPtr Result; diff --git a/src/CollisionAlgorithm/operations/FindClosestProximity.cpp b/src/CollisionAlgorithm/operations/FindClosestProximity.cpp new file mode 100644 index 00000000..cd7d38a9 --- /dev/null +++ b/src/CollisionAlgorithm/operations/FindClosestProximity.cpp @@ -0,0 +1,10 @@ +#include +#include +#include +#include +#include + +namespace sofa::collisionalgorithm::Operations { + +} + diff --git a/src/sofa/collisionAlgorithm/operations/FindClosestProximity.h b/src/CollisionAlgorithm/operations/FindClosestProximity.h similarity index 97% rename from src/sofa/collisionAlgorithm/operations/FindClosestProximity.h rename to src/CollisionAlgorithm/operations/FindClosestProximity.h index 4e76c272..e446ba6a 100644 --- a/src/sofa/collisionAlgorithm/operations/FindClosestProximity.h +++ b/src/CollisionAlgorithm/operations/FindClosestProximity.h @@ -1,11 +1,11 @@ #pragma once -#include -#include +#include +#include #include -#include +#include -namespace sofa::collisionAlgorithm::Operations::FindClosestProximity { +namespace sofa::collisionalgorithm::Operations::FindClosestProximity { typedef BaseProximity::SPtr Result; typedef std::function FilterFUNC; diff --git a/src/sofa/collisionAlgorithm/operations/NeedleOperations.cpp b/src/CollisionAlgorithm/operations/NeedleOperations.cpp similarity index 83% rename from src/sofa/collisionAlgorithm/operations/NeedleOperations.cpp rename to src/CollisionAlgorithm/operations/NeedleOperations.cpp index dbde50a2..1cf2cb54 100644 --- a/src/sofa/collisionAlgorithm/operations/NeedleOperations.cpp +++ b/src/CollisionAlgorithm/operations/NeedleOperations.cpp @@ -1,6 +1,6 @@ -#include +#include -namespace sofa::collisionAlgorithm::Operations::Needle +namespace sofa::collisionalgorithm::Operations::Needle { bool prunePointsUsingEdges(std::vector& couplingPts, @@ -28,4 +28,4 @@ bool prunePointsUsingEdges(std::vector& couplingPts, int register_PrunePointsAheadOfTip_Edge = PrunePointsAheadOfTip::register_func(&prunePointsUsingEdges); -} // namespace sofa::collisionAlgorithm::Operations::Needle +} // namespace sofa::collisionalgorithm::Operations::Needle diff --git a/src/sofa/collisionAlgorithm/operations/NeedleOperations.h b/src/CollisionAlgorithm/operations/NeedleOperations.h similarity index 77% rename from src/sofa/collisionAlgorithm/operations/NeedleOperations.h rename to src/CollisionAlgorithm/operations/NeedleOperations.h index 8b0b553c..4466e22f 100644 --- a/src/sofa/collisionAlgorithm/operations/NeedleOperations.h +++ b/src/CollisionAlgorithm/operations/NeedleOperations.h @@ -1,10 +1,10 @@ #pragma once -#include -#include -#include +#include +#include +#include -namespace sofa::collisionAlgorithm::Operations::Needle +namespace sofa::collisionalgorithm::Operations::Needle { class PrunePointsAheadOfTip @@ -31,4 +31,4 @@ class PrunePointsAheadOfTip bool prunePointsUsingEdges(std::vector& couplingPts, const EdgeElement::SPtr& edgeProx); -} // namespace sofa::collisionAlgorithm::Operations::Needle +} // namespace sofa::collisionalgorithm::Operations::Needle diff --git a/src/sofa/collisionAlgorithm/operations/Project.cpp b/src/CollisionAlgorithm/operations/Project.cpp similarity index 55% rename from src/sofa/collisionAlgorithm/operations/Project.cpp rename to src/CollisionAlgorithm/operations/Project.cpp index 9bae6a46..8c9762bd 100644 --- a/src/sofa/collisionAlgorithm/operations/Project.cpp +++ b/src/CollisionAlgorithm/operations/Project.cpp @@ -1,10 +1,10 @@ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm::Operations::Project { +namespace sofa::collisionalgorithm::Operations::Project { int register_Project_Point = Operation::register_func(&toolbox::PointToolBox::project); diff --git a/src/sofa/collisionAlgorithm/operations/Project.h b/src/CollisionAlgorithm/operations/Project.h similarity index 80% rename from src/sofa/collisionAlgorithm/operations/Project.h rename to src/CollisionAlgorithm/operations/Project.h index 8010eeb1..e5e82cd1 100644 --- a/src/sofa/collisionAlgorithm/operations/Project.h +++ b/src/CollisionAlgorithm/operations/Project.h @@ -1,11 +1,11 @@ #pragma once -#include -#include -#include +#include +#include +#include #include -namespace sofa::collisionAlgorithm::Operations::Project { +namespace sofa::collisionalgorithm::Operations::Project { struct Result { Result() {} diff --git a/src/sofa/collisionAlgorithm/proximity/EdgeProximity.h b/src/CollisionAlgorithm/proximity/EdgeProximity.h similarity index 94% rename from src/sofa/collisionAlgorithm/proximity/EdgeProximity.h rename to src/CollisionAlgorithm/proximity/EdgeProximity.h index 0c0f87f8..45d33281 100644 --- a/src/sofa/collisionAlgorithm/proximity/EdgeProximity.h +++ b/src/CollisionAlgorithm/proximity/EdgeProximity.h @@ -1,9 +1,9 @@ #pragma once -#include -#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class EdgeProximity : public BaseProximity { public: diff --git a/src/sofa/collisionAlgorithm/proximity/FixedProximity.h b/src/CollisionAlgorithm/proximity/FixedProximity.h similarity index 89% rename from src/sofa/collisionAlgorithm/proximity/FixedProximity.h rename to src/CollisionAlgorithm/proximity/FixedProximity.h index 6681112b..3c27fca4 100644 --- a/src/sofa/collisionAlgorithm/proximity/FixedProximity.h +++ b/src/CollisionAlgorithm/proximity/FixedProximity.h @@ -1,13 +1,13 @@ #pragma once -#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class FixedProximity : public BaseProximity{ public: typedef std::shared_ptr SPtr; - typedef typename collisionAlgorithm::BaseProximity Inherits; + typedef typename collisionalgorithm::BaseProximity Inherits; typedef type::Vec3d Vec3d; FixedProximity(Vec3d P ) : m_position(P) { m_normal = Vec3d(); } diff --git a/src/sofa/collisionAlgorithm/proximity/MechanicalProximity.h b/src/CollisionAlgorithm/proximity/MechanicalProximity.h similarity index 95% rename from src/sofa/collisionAlgorithm/proximity/MechanicalProximity.h rename to src/CollisionAlgorithm/proximity/MechanicalProximity.h index 010a9368..915430d9 100644 --- a/src/sofa/collisionAlgorithm/proximity/MechanicalProximity.h +++ b/src/CollisionAlgorithm/proximity/MechanicalProximity.h @@ -1,9 +1,9 @@ #pragma once -#include -#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { template class MechanicalProximity : public BaseProximity { diff --git a/src/sofa/collisionAlgorithm/proximity/MultiProximity.h b/src/CollisionAlgorithm/proximity/MultiProximity.h similarity index 95% rename from src/sofa/collisionAlgorithm/proximity/MultiProximity.h rename to src/CollisionAlgorithm/proximity/MultiProximity.h index 0f902933..3a2433ed 100644 --- a/src/sofa/collisionAlgorithm/proximity/MultiProximity.h +++ b/src/CollisionAlgorithm/proximity/MultiProximity.h @@ -1,8 +1,8 @@ #pragma once -#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class MultiProximity : public BaseProximity { public: diff --git a/src/sofa/collisionAlgorithm/proximity/PointProximity.h b/src/CollisionAlgorithm/proximity/PointProximity.h similarity index 94% rename from src/sofa/collisionAlgorithm/proximity/PointProximity.h rename to src/CollisionAlgorithm/proximity/PointProximity.h index dbf93aca..d0d3d198 100644 --- a/src/sofa/collisionAlgorithm/proximity/PointProximity.h +++ b/src/CollisionAlgorithm/proximity/PointProximity.h @@ -1,8 +1,8 @@ #pragma once -#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class PointProximity : public BaseProximity { public: diff --git a/src/sofa/collisionAlgorithm/proximity/TetrahedronProximity.h b/src/CollisionAlgorithm/proximity/TetrahedronProximity.h similarity index 94% rename from src/sofa/collisionAlgorithm/proximity/TetrahedronProximity.h rename to src/CollisionAlgorithm/proximity/TetrahedronProximity.h index 8b869361..fbe3a7fb 100644 --- a/src/sofa/collisionAlgorithm/proximity/TetrahedronProximity.h +++ b/src/CollisionAlgorithm/proximity/TetrahedronProximity.h @@ -1,10 +1,10 @@ #pragma once -#include -#include -#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class TetrahedronProximity : public BaseProximity { public: diff --git a/src/sofa/collisionAlgorithm/proximity/TriangleProximity.h b/src/CollisionAlgorithm/proximity/TriangleProximity.h similarity index 94% rename from src/sofa/collisionAlgorithm/proximity/TriangleProximity.h rename to src/CollisionAlgorithm/proximity/TriangleProximity.h index 8198f270..b5ba63de 100644 --- a/src/sofa/collisionAlgorithm/proximity/TriangleProximity.h +++ b/src/CollisionAlgorithm/proximity/TriangleProximity.h @@ -1,10 +1,10 @@ #pragma once -#include -#include -#include +#include +#include +#include -namespace sofa::collisionAlgorithm { +namespace sofa::collisionalgorithm { class TriangleProximity : public BaseProximity { public: diff --git a/src/sofa/collisionAlgorithm/toolbox/EdgeToolBox.cpp b/src/CollisionAlgorithm/toolbox/EdgeToolBox.cpp similarity index 89% rename from src/sofa/collisionAlgorithm/toolbox/EdgeToolBox.cpp rename to src/CollisionAlgorithm/toolbox/EdgeToolBox.cpp index 5702c971..0972f3e4 100644 --- a/src/sofa/collisionAlgorithm/toolbox/EdgeToolBox.cpp +++ b/src/CollisionAlgorithm/toolbox/EdgeToolBox.cpp @@ -1,7 +1,7 @@ -#include -#include +#include +#include -namespace sofa::collisionAlgorithm::toolbox { +namespace sofa::collisionalgorithm::toolbox { Operations::CreateCenterProximity::Result EdgeToolBox::createCenterProximity(const EdgeElement::SPtr & edge) { return EdgeProximity::create(edge,0.5,0.5); diff --git a/src/sofa/collisionAlgorithm/toolbox/EdgeToolBox.h b/src/CollisionAlgorithm/toolbox/EdgeToolBox.h similarity index 64% rename from src/sofa/collisionAlgorithm/toolbox/EdgeToolBox.h rename to src/CollisionAlgorithm/toolbox/EdgeToolBox.h index 829c7da0..520d9158 100644 --- a/src/sofa/collisionAlgorithm/toolbox/EdgeToolBox.h +++ b/src/CollisionAlgorithm/toolbox/EdgeToolBox.h @@ -1,11 +1,11 @@ #pragma once -#include -#include -#include -#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm::toolbox { +namespace sofa::collisionalgorithm::toolbox { class EdgeToolBox { public: diff --git a/src/sofa/collisionAlgorithm/toolbox/PointToolBox.cpp b/src/CollisionAlgorithm/toolbox/PointToolBox.cpp similarity index 71% rename from src/sofa/collisionAlgorithm/toolbox/PointToolBox.cpp rename to src/CollisionAlgorithm/toolbox/PointToolBox.cpp index d9f4fb29..d8534b60 100644 --- a/src/sofa/collisionAlgorithm/toolbox/PointToolBox.cpp +++ b/src/CollisionAlgorithm/toolbox/PointToolBox.cpp @@ -1,7 +1,7 @@ -#include -#include +#include +#include -namespace sofa::collisionAlgorithm::toolbox { +namespace sofa::collisionalgorithm::toolbox { Operations::CreateCenterProximity::Result PointToolBox::createCenterProximity(const PointElement::SPtr & point) { return point->getP0(); diff --git a/src/CollisionAlgorithm/toolbox/PointToolBox.h b/src/CollisionAlgorithm/toolbox/PointToolBox.h new file mode 100644 index 00000000..6b3a03c3 --- /dev/null +++ b/src/CollisionAlgorithm/toolbox/PointToolBox.h @@ -0,0 +1,22 @@ +#pragma once + +#include +#include +#include +#include + +namespace sofa::collisionalgorithm::toolbox { + +class PointToolBox { +public: + + static Operations::CreateCenterProximity::Result createCenterProximity(const PointElement::SPtr & point); + + static Operations::Project::Result project(const type::Vec3 & P, const PointElement::SPtr & point); + +}; + + + +} + diff --git a/src/sofa/collisionAlgorithm/toolbox/TetrahedronToolBox.cpp b/src/CollisionAlgorithm/toolbox/TetrahedronToolBox.cpp similarity index 91% rename from src/sofa/collisionAlgorithm/toolbox/TetrahedronToolBox.cpp rename to src/CollisionAlgorithm/toolbox/TetrahedronToolBox.cpp index 8cb12f9a..0bf65ec1 100644 --- a/src/sofa/collisionAlgorithm/toolbox/TetrahedronToolBox.cpp +++ b/src/CollisionAlgorithm/toolbox/TetrahedronToolBox.cpp @@ -1,10 +1,10 @@ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm::toolbox { +namespace sofa::collisionalgorithm::toolbox { Operations::CreateCenterProximity::Result TetrahedronToolBox::createCenterProximity(const TetrahedronElement::SPtr & tetra) { return TetrahedronProximity::create(tetra, 1.0/4.0,1.0/4.0,1.0/4.0,1.0/4.0); diff --git a/src/sofa/collisionAlgorithm/toolbox/TetrahedronToolBox.h b/src/CollisionAlgorithm/toolbox/TetrahedronToolBox.h similarity index 75% rename from src/sofa/collisionAlgorithm/toolbox/TetrahedronToolBox.h rename to src/CollisionAlgorithm/toolbox/TetrahedronToolBox.h index 75d6e701..542dc833 100644 --- a/src/sofa/collisionAlgorithm/toolbox/TetrahedronToolBox.h +++ b/src/CollisionAlgorithm/toolbox/TetrahedronToolBox.h @@ -1,12 +1,12 @@ #pragma once -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm::toolbox { +namespace sofa::collisionalgorithm::toolbox { class TetrahedronToolBox { public: @@ -27,7 +27,4 @@ class TetrahedronToolBox { }; - - } - diff --git a/src/sofa/collisionAlgorithm/toolbox/TriangleToolBox.cpp b/src/CollisionAlgorithm/toolbox/TriangleToolBox.cpp similarity index 93% rename from src/sofa/collisionAlgorithm/toolbox/TriangleToolBox.cpp rename to src/CollisionAlgorithm/toolbox/TriangleToolBox.cpp index 8af3bc7e..4de047b3 100644 --- a/src/sofa/collisionAlgorithm/toolbox/TriangleToolBox.cpp +++ b/src/CollisionAlgorithm/toolbox/TriangleToolBox.cpp @@ -1,8 +1,8 @@ -#include -#include -#include +#include +#include +#include -namespace sofa::collisionAlgorithm::toolbox { +namespace sofa::collisionalgorithm::toolbox { Operations::CreateCenterProximity::Result TriangleToolBox::createCenterProximity(const TriangleElement::SPtr & tri) { return TriangleProximity::create(tri, 1.0/3.0,1.0/3.0,1.0/3.0); diff --git a/src/sofa/collisionAlgorithm/toolbox/TriangleToolBox.h b/src/CollisionAlgorithm/toolbox/TriangleToolBox.h similarity index 74% rename from src/sofa/collisionAlgorithm/toolbox/TriangleToolBox.h rename to src/CollisionAlgorithm/toolbox/TriangleToolBox.h index f5bc8598..9fef9f69 100644 --- a/src/sofa/collisionAlgorithm/toolbox/TriangleToolBox.h +++ b/src/CollisionAlgorithm/toolbox/TriangleToolBox.h @@ -1,12 +1,12 @@ #pragma once -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -namespace sofa::collisionAlgorithm::toolbox { +namespace sofa::collisionalgorithm::toolbox { class TriangleToolBox { public: @@ -27,7 +27,4 @@ class TriangleToolBox { }; - - } - diff --git a/src/sofa/collisionAlgorithm/elements/PointElement.cpp b/src/sofa/collisionAlgorithm/elements/PointElement.cpp deleted file mode 100644 index 3dffa86d..00000000 --- a/src/sofa/collisionAlgorithm/elements/PointElement.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include -#include - -namespace sofa::collisionAlgorithm { - -PointElement::SPtr PointElement::create(const BaseProximity::SPtr &prox) { - return PointElement::SPtr(new PointElement(prox)); -} - -} diff --git a/src/sofa/collisionAlgorithm/operations/FindClosestProximity.cpp b/src/sofa/collisionAlgorithm/operations/FindClosestProximity.cpp deleted file mode 100644 index 5dd545bb..00000000 --- a/src/sofa/collisionAlgorithm/operations/FindClosestProximity.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include -#include -#include -#include - -namespace sofa::collisionAlgorithm::Operations { - -} - diff --git a/src/sofa/collisionAlgorithm/toolbox/PointToolBox.h b/src/sofa/collisionAlgorithm/toolbox/PointToolBox.h deleted file mode 100644 index 8f9d3386..00000000 --- a/src/sofa/collisionAlgorithm/toolbox/PointToolBox.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -namespace sofa::collisionAlgorithm::toolbox { - -class PointToolBox { -public: - - static Operations::CreateCenterProximity::Result createCenterProximity(const PointElement::SPtr & point); - - static Operations::Project::Result project(const type::Vec3 & P, const PointElement::SPtr & point); - -}; - - - -} -