Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 16 additions & 34 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,54 +3,36 @@ project(CollisionAlgorithm VERSION 0.1 LANGUAGES CXX)

set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

file(GLOB_RECURSE HEADER_FILES
"src/*.h"
"src/*.inl"
)

file(GLOB_RECURSE SOURCE_FILES
"src/*.cpp"
)

file(GLOB_RECURSE SCENES_FILES
"scenes/*.scn"
"*.xml"
)

file(GLOB_RECURSE IGNORED_FILES
"ignored/*.h"
"ignored/*.inl"
"ignored/*.cpp"
)

file(GLOB_RECURSE DEPRECATED_FILES
"deprecated/*.h"
"deprecated/*.inl"
"deprecated/*.cpp"
)
file(GLOB_RECURSE HEADER_FILES "src/*.h" "src/*.inl")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is not really advised to use GLOB_RECURSE for sources files
https://cmake.org/cmake/help/latest/command/file.html#glob



Note

We do not recommend using GLOB to collect a list of source files from your source tree. If no CMakeLists.txt file changes when a source is added or removed then the generated build system cannot know when to ask CMake to regenerate. The CONFIGURE_DEPENDS flag may not work reliably on all generators, or if a new generator is added in the future that cannot support it, projects using it will be stuck. Even if CONFIGURE_DEPENDS works reliably, there is still a cost to perform the check on every rebuild. 

file(GLOB_RECURSE SOURCE_FILES "src/*.cpp")
file(GLOB_RECURSE SCENES_FILES "scenes/*.scn" "*.xml")
file(GLOB_RECURSE IGNORED_FILES "ignored/*.h" "ignored/*.inl" "ignored/*.cpp")
file(GLOB_RECURSE DEPRECATED_FILES "deprecated/*.h" "deprecated/*.inl" "deprecated/*.cpp")

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)


include_directories("${CMAKE_CURRENT_SOURCE_DIR}/ignored")
#include_directories("${CMAKE_CURRENT_SOURCE_DIR}/ignored")
#include_directories("${CMAKE_CURRENT_SOURCE_DIR}/deprecated")

set_source_files_properties(${IGNORED_FILES} PROPERTIES HEADER_FILE_ONLY TRUE)

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}/\"")
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${HEADER_FILES} ${README_FILES})

target_link_libraries(${PROJECT_NAME}
Sofa.Simulation.Core
Sofa.Component.StateContainer
Sofa.Component.Constraint.Lagrangian.Solver
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 "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>")
target_include_directories(${PROJECT_NAME} PUBLIC "$<INSTALL_INTERFACE:${${PROJECT_NAME}_INCLUDE_DIRS}>")
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"
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Usually plugins must set "RELOCATABLE"

Suggested change
)
RELOCATABLE "plugins"
)

2 changes: 2 additions & 0 deletions CollisionAlgorithmConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -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@)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#pragma once

#include <sofa/helper/AdvancedTimer.h>
#include <sofa/collisionAlgorithm/BaseGeometry.h>
#include <sofa/collisionAlgorithm/BaseAlgorithm.h>
#include <sofa/collisionAlgorithm/operations/Project.h>
#include <sofa/collisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/BaseGeometry.h>
#include <CollisionAlgorithm/BaseAlgorithm.h>
#include <CollisionAlgorithm/operations/Project.h>
#include <CollisionAlgorithm/BaseElement.h>
#include <thread>

namespace sofa::collisionAlgorithm {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not related to the PR, but I would take the opportunity while refactoring/breaking stuff, to change the namespace (AFAIK there is not any namespace in camelCase)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseGeometry.h>
#include <CollisionAlgorithm/BaseGeometry.h>
#include <sofa/core/collision/Pipeline.h>
#include <sofa/collisionAlgorithm/DataDetectionOutput.h>
#include <sofa/collisionAlgorithm/CollisionPipeline.h>
#include <CollisionAlgorithm/DataDetectionOutput.h>
#include <CollisionAlgorithm/CollisionPipeline.h>

namespace sofa::collisionAlgorithm {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseProximity.h>
#include <CollisionAlgorithm/BaseProximity.h>
#include <sofa/core/visual/VisualParams.h>

namespace sofa::collisionAlgorithm {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
#pragma once

#include <sofa/collisionAlgorithm/CollisionPipeline.h>
#include <sofa/collisionAlgorithm/BaseElement.h>
#include <sofa/collisionAlgorithm/BaseProximity.h>
#include <sofa/collisionAlgorithm/ElementIterator.h>
#include <CollisionAlgorithm/CollisionPipeline.h>
#include <CollisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/BaseProximity.h>
#include <CollisionAlgorithm/ElementIterator.h>
#include <sofa/gl/gl.h>
#include <sofa/helper/AdvancedTimer.h>
#include <sofa/collisionAlgorithm/elements/PointElement.h>
#include <sofa/collisionAlgorithm/elements/EdgeElement.h>
#include <sofa/collisionAlgorithm/elements/TriangleElement.h>
#include <sofa/collisionAlgorithm/elements/TetrahedronElement.h>
#include <sofa/collisionAlgorithm/InternalData.h>
#include <CollisionAlgorithm/elements/PointElement.h>
#include <CollisionAlgorithm/elements/EdgeElement.h>
#include <CollisionAlgorithm/elements/TriangleElement.h>
#include <CollisionAlgorithm/elements/TetrahedronElement.h>
#include <CollisionAlgorithm/InternalData.h>


namespace sofa ::collisionAlgorithm {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseGeometry.h>
#include <CollisionAlgorithm/BaseGeometry.h>
#include <sofa/helper/NameDecoder.h>
#include <memory>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <sofa/collisionAlgorithm/CollisionPipeline.h>
#include <CollisionAlgorithm/CollisionPipeline.h>
#include <sofa/core/ObjectFactory.h>

namespace sofa::collisionAlgorithm
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
#pragma once

//#include <sofa/collisionAlgorithm/BaseOperation.h>
//#include <CollisionAlgorithm/BaseOperation.h>
#include <sofa/simulation/CollisionBeginEvent.h>
#include <sofa/collisionAlgorithm/BaseElement.h>
#include <sofa/collisionAlgorithm/BaseProximity.h>
#include <CollisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/BaseProximity.h>
#include <sofa/core/BehaviorModel.h>
#include <sofa/core/visual/VisualParams.h>
#include <sofa/core/objectmodel/DataCallback.h>
#include <sofa/simulation/Visitor.h>
#include <sofa/gl/gl.h>
#include <sofa/simulation/AnimateBeginEvent.h>
#include <sofa/core/topology/BaseMeshTopology.h>
#include <sofa/collisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/BaseElement.h>
#include <sofa/simulation/Node.h>
#include <sofa/helper/AdvancedTimer.h>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseGeometry.h>
#include <CollisionAlgorithm/BaseGeometry.h>

namespace sofa
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseProximity.h>
#include <sofa/collisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/BaseProximity.h>
#include <CollisionAlgorithm/BaseElement.h>

namespace sofa::collisionAlgorithm {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
#pragma once

#include <sofa/collisionAlgorithm/CollisionPipeline.h>
#include <sofa/collisionAlgorithm/BaseElement.h>
#include <sofa/collisionAlgorithm/BaseProximity.h>
#include <sofa/collisionAlgorithm/ElementIterator.h>
#include <CollisionAlgorithm/CollisionPipeline.h>
#include <CollisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/BaseProximity.h>
#include <CollisionAlgorithm/ElementIterator.h>
#include <sofa/gl/gl.h>
#include <sofa/helper/AdvancedTimer.h>
#include <sofa/collisionAlgorithm/elements/PointElement.h>
#include <sofa/collisionAlgorithm/elements/EdgeElement.h>
#include <sofa/collisionAlgorithm/elements/TriangleElement.h>
#include <sofa/collisionAlgorithm/elements/TetrahedronElement.h>
#include <CollisionAlgorithm/elements/PointElement.h>
#include <CollisionAlgorithm/elements/EdgeElement.h>
#include <CollisionAlgorithm/elements/TriangleElement.h>
#include <CollisionAlgorithm/elements/TetrahedronElement.h>

namespace sofa ::collisionAlgorithm {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <sofa/collisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h>
#include <CollisionAlgorithm/algorithm/Find2DClosestProximityAlgorithm.h>
#include <sofa/core/ObjectFactory.h>

namespace sofa::collisionAlgorithm
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseAlgorithm.h>
#include <sofa/collisionAlgorithm/BaseGeometry.h>
#include <sofa/collisionAlgorithm/BaseOperation.h>
#include <sofa/collisionAlgorithm/operations/CreateCenterProximity.h>
#include <sofa/collisionAlgorithm/operations/Project.h>
#include <sofa/collisionAlgorithm/operations/FindClosestProximity.h>
#include <CollisionAlgorithm/BaseAlgorithm.h>
#include <CollisionAlgorithm/BaseGeometry.h>
#include <CollisionAlgorithm/BaseOperation.h>
#include <CollisionAlgorithm/operations/CreateCenterProximity.h>
#include <CollisionAlgorithm/operations/Project.h>
#include <CollisionAlgorithm/operations/FindClosestProximity.h>

namespace sofa::collisionAlgorithm {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <sofa/collisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h>
#include <CollisionAlgorithm/algorithm/FindClosestProximityAlgorithm.h>
#include <sofa/core/ObjectFactory.h>

namespace sofa::collisionAlgorithm
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseAlgorithm.h>
#include <sofa/collisionAlgorithm/BaseGeometry.h>
#include <sofa/collisionAlgorithm/BaseOperation.h>
#include <sofa/collisionAlgorithm/operations/CreateCenterProximity.h>
#include <sofa/collisionAlgorithm/operations/Project.h>
#include <sofa/collisionAlgorithm/operations/FindClosestProximity.h>
#include <CollisionAlgorithm/BaseAlgorithm.h>
#include <CollisionAlgorithm/BaseGeometry.h>
#include <CollisionAlgorithm/BaseOperation.h>
#include <CollisionAlgorithm/operations/CreateCenterProximity.h>
#include <CollisionAlgorithm/operations/Project.h>
#include <CollisionAlgorithm/operations/FindClosestProximity.h>

namespace sofa::collisionAlgorithm {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <sofa/collisionAlgorithm/algorithm/InsertionAlgorithm.h>
#include <CollisionAlgorithm/algorithm/InsertionAlgorithm.h>
#include <sofa/core/ObjectFactory.h>

namespace sofa::collisionAlgorithm
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseAlgorithm.h>
#include <sofa/collisionAlgorithm/BaseGeometry.h>
#include <sofa/collisionAlgorithm/BaseOperation.h>
#include <sofa/collisionAlgorithm/operations/CreateCenterProximity.h>
#include <sofa/collisionAlgorithm/operations/FindClosestProximity.h>
#include <sofa/collisionAlgorithm/operations/Project.h>
#include <sofa/collisionAlgorithm/proximity/EdgeProximity.h>
#include <sofa/collisionAlgorithm/proximity/TetrahedronProximity.h>
#include <CollisionAlgorithm/BaseAlgorithm.h>
#include <CollisionAlgorithm/BaseGeometry.h>
#include <CollisionAlgorithm/BaseOperation.h>
#include <CollisionAlgorithm/operations/CreateCenterProximity.h>
#include <CollisionAlgorithm/operations/FindClosestProximity.h>
#include <CollisionAlgorithm/operations/Project.h>
#include <CollisionAlgorithm/proximity/EdgeProximity.h>
#include <CollisionAlgorithm/proximity/TetrahedronProximity.h>
#include <sofa/component/constraint/lagrangian/solver/ConstraintSolverImpl.h>
#include <sofa/component/statecontainer/MechanicalObject.h>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <sofa/collisionAlgorithm/broadphase/AABBBroadPhase.h>
#include <CollisionAlgorithm/broadphase/AABBBroadPhase.h>
#include <sofa/core/ObjectFactory.h>

namespace sofa::collisionAlgorithm
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#pragma once

#include <sofa/helper/AdvancedTimer.h>
#include <sofa/collisionAlgorithm/BaseAABBBroadPhase.h>
#include <sofa/collisionAlgorithm/BaseAlgorithm.h>
#include <sofa/collisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/BaseAABBBroadPhase.h>
#include <CollisionAlgorithm/BaseAlgorithm.h>
#include <CollisionAlgorithm/BaseElement.h>

namespace sofa::collisionAlgorithm {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <sofa/collisionAlgorithm/broadphase/FullAABBBroadPhase.h>
#include <CollisionAlgorithm/broadphase/FullAABBBroadPhase.h>
#include <sofa/core/ObjectFactory.h>

namespace sofa::collisionAlgorithm
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#pragma once

#include <sofa/helper/AdvancedTimer.h>
#include <sofa/collisionAlgorithm/BaseAABBBroadPhase.h>
#include <sofa/collisionAlgorithm/BaseAlgorithm.h>
#include <sofa/collisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/BaseAABBBroadPhase.h>
#include <CollisionAlgorithm/BaseAlgorithm.h>
#include <CollisionAlgorithm/BaseElement.h>

namespace sofa::collisionAlgorithm {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include <sofa/collisionAlgorithm/elements/PointElement.h>
#include <sofa/collisionAlgorithm/elements/EdgeElement.h>
#include <sofa/collisionAlgorithm/elements/TriangleElement.h>
#include <sofa/collisionAlgorithm/elements/TetrahedronElement.h>
#include <sofa/collisionAlgorithm/proximity/EdgeProximity.h>
#include <CollisionAlgorithm/elements/PointElement.h>
#include <CollisionAlgorithm/elements/EdgeElement.h>
#include <CollisionAlgorithm/elements/TriangleElement.h>
#include <CollisionAlgorithm/elements/TetrahedronElement.h>
#include <CollisionAlgorithm/proximity/EdgeProximity.h>

namespace sofa::collisionAlgorithm {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseElement.h>
#include <sofa/collisionAlgorithm/elements/PointElement.h>
#include <CollisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/elements/PointElement.h>

namespace sofa::collisionAlgorithm {

Expand Down
13 changes: 13 additions & 0 deletions src/CollisionAlgorithm/elements/PointElement.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include <CollisionAlgorithm/elements/PointElement.h>
#include <CollisionAlgorithm/elements/EdgeElement.h>
#include <CollisionAlgorithm/elements/TriangleElement.h>
#include <CollisionAlgorithm/elements/TetrahedronElement.h>
#include <CollisionAlgorithm/proximity/PointProximity.h>

namespace sofa::collisionAlgorithm {

PointElement::SPtr PointElement::create(const BaseProximity::SPtr &prox) {
return PointElement::SPtr(new PointElement(prox));
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include <sofa/collisionAlgorithm/BaseElement.h>
#include <CollisionAlgorithm/BaseElement.h>
#include <sofa/gl/gl.h>

namespace sofa::collisionAlgorithm {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include <sofa/collisionAlgorithm/elements/PointElement.h>
#include <sofa/collisionAlgorithm/elements/EdgeElement.h>
#include <sofa/collisionAlgorithm/elements/TriangleElement.h>
#include <sofa/collisionAlgorithm/elements/TetrahedronElement.h>
#include <sofa/collisionAlgorithm/proximity/TetrahedronProximity.h>
#include <CollisionAlgorithm/elements/PointElement.h>
#include <CollisionAlgorithm/elements/EdgeElement.h>
#include <CollisionAlgorithm/elements/TriangleElement.h>
#include <CollisionAlgorithm/elements/TetrahedronElement.h>
#include <CollisionAlgorithm/proximity/TetrahedronProximity.h>

namespace sofa::collisionAlgorithm {

Expand Down
Loading
Loading