diff --git a/Sofa/Component/Engine/Generate/CMakeLists.txt b/Sofa/Component/Engine/Generate/CMakeLists.txt index 62df2348889..4e1ff25d08c 100644 --- a/Sofa/Component/Engine/Generate/CMakeLists.txt +++ b/Sofa/Component/Engine/Generate/CMakeLists.txt @@ -43,8 +43,8 @@ set(HEADER_FILES ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/NormalsFromPoints.inl ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/RandomPointDistributionInSurface.h ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/RandomPointDistributionInSurface.inl - ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/VolumeFromTetrahedrons.h - ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/VolumeFromTetrahedrons.inl + ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/VolumeFromVolumetricElements.h + ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/VolumeFromVolumetricElements.inl ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/VolumeFromTriangles.h ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/VolumeFromTriangles.inl ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/Spiral.h @@ -72,15 +72,26 @@ set(SOURCE_FILES ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/NormEngine.cpp ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/NormalsFromPoints.cpp ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/RandomPointDistributionInSurface.cpp - ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/VolumeFromTetrahedrons.cpp + ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/VolumeFromVolumetricElements.cpp ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/VolumeFromTriangles.cpp ${SOFACOMPONENTENGINEGENERATE_SOURCE_DIR}/Spiral.cpp ) +set(DEPRECATED_DIR "compat/sofa/component/engine/generate") +set(DEPRECATED_HEADER_FILES + ${DEPRECATED_DIR}/VolumeFromTetrahedrons.h + ${DEPRECATED_DIR}/VolumeFromTetrahedrons.inl +) + + sofa_find_package(Sofa.Simulation.Core REQUIRED) add_library(${PROJECT_NAME} SHARED ${HEADER_FILES} ${SOURCE_FILES}) target_link_libraries(${PROJECT_NAME} PUBLIC Sofa.Simulation.Core) +target_include_directories(${PROJECT_NAME} PUBLIC + $ + $ +) sofa_create_package_with_targets( PACKAGE_NAME ${PROJECT_NAME} @@ -90,6 +101,8 @@ sofa_create_package_with_targets( INCLUDE_INSTALL_DIR "${PROJECT_NAME}" ) +install(DIRECTORY compat/ DESTINATION include/${PROJECT_NAME}_compat COMPONENT headers) + # Tests # If SOFA_BUILD_TESTS exists and is OFF, then these tests will be auto-disabled cmake_dependent_option(SOFA_COMPONENT_ENGINE_GENERATE_BUILD_TESTS "Compile the automatic tests" ON "SOFA_BUILD_TESTS OR NOT DEFINED SOFA_BUILD_TESTS" OFF) diff --git a/Sofa/Component/Engine/Generate/compat/sofa/component/engine/generate/VolumeFromTetrahedrons.h b/Sofa/Component/Engine/Generate/compat/sofa/component/engine/generate/VolumeFromTetrahedrons.h new file mode 100644 index 00000000000..1e8416d18bc --- /dev/null +++ b/Sofa/Component/Engine/Generate/compat/sofa/component/engine/generate/VolumeFromTetrahedrons.h @@ -0,0 +1,32 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once +#include +SOFA_HEADER_DEPRECATED("v26.12", "v27.06", "sofa/component/engine/generate/VolumeFromVolumetricElements.h") + +namespace sofa::component::engine::generate +{ + +template +using VolumeFromTetrahedrons SOFA_ATTRIBUTE_DEPRECATED__VOLUMEFROMTETRAHEDRONS() = VolumeFromVolumetricElements; + +} diff --git a/Sofa/Component/Engine/Generate/compat/sofa/component/engine/generate/VolumeFromTetrahedrons.inl b/Sofa/Component/Engine/Generate/compat/sofa/component/engine/generate/VolumeFromTetrahedrons.inl new file mode 100644 index 00000000000..56fe5150811 --- /dev/null +++ b/Sofa/Component/Engine/Generate/compat/sofa/component/engine/generate/VolumeFromTetrahedrons.inl @@ -0,0 +1,25 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once +#include +#include +SOFA_HEADER_DEPRECATED("v26.12", "v27.06", "sofa/component/engine/generate/VolumeFromVolumetricElements.inl") diff --git a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromTetrahedrons.cpp b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromVolumetricElements.cpp similarity index 84% rename from Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromTetrahedrons.cpp rename to Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromVolumetricElements.cpp index 1bfe0d5067e..ccc944dc012 100644 --- a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromTetrahedrons.cpp +++ b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromVolumetricElements.cpp @@ -19,9 +19,9 @@ * * * Contact information: contact@sofa-framework.org * ******************************************************************************/ -#define SOFA_COMPONENT_ENGINE_VOLUMEFROMTETRAHEDRONS_CPP +#define SOFA_COMPONENT_ENGINE_VOLUMEFROMVOLUMETRICELEMENTS_CPP -#include +#include #include namespace sofa::component::engine::generate @@ -30,13 +30,13 @@ namespace sofa::component::engine::generate using namespace sofa::defaulttype; using namespace sofa::helper; -void registerVolumeFromTetrahedrons(sofa::core::ObjectFactory* factory) +void registerVolumeFromVolumetricElements(sofa::core::ObjectFactory* factory) { factory->registerObjects(sofa::core::ObjectRegistrationData("This component computes the volume of a given volumetric mesh.") - .add< VolumeFromTetrahedrons >(true)); + .add< VolumeFromVolumetricElements >(true)); } -template class SOFA_COMPONENT_ENGINE_GENERATE_API VolumeFromTetrahedrons; +template class SOFA_COMPONENT_ENGINE_GENERATE_API VolumeFromVolumetricElements; } // namespace diff --git a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromTetrahedrons.h b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromVolumetricElements.h similarity index 83% rename from Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromTetrahedrons.h rename to Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromVolumetricElements.h index 1fe4653e932..dbced3d256b 100644 --- a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromTetrahedrons.h +++ b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromVolumetricElements.h @@ -33,10 +33,10 @@ namespace sofa::component::engine::generate * This class returns the volumes of a given volumic mesh. */ template -class VolumeFromTetrahedrons : public sofa::core::DataEngine +class VolumeFromVolumetricElements : public sofa::core::DataEngine { public: - SOFA_CLASS(SOFA_TEMPLATE(VolumeFromTetrahedrons,DataTypes), sofa::core::DataEngine); + SOFA_CLASS(SOFA_TEMPLATE(VolumeFromVolumetricElements,DataTypes), sofa::core::DataEngine); typedef typename DataTypes::VecCoord VecCoord; @@ -54,8 +54,8 @@ class VolumeFromTetrahedrons : public sofa::core::DataEngine public: - VolumeFromTetrahedrons(); - ~VolumeFromTetrahedrons() override; + VolumeFromVolumetricElements(); + ~VolumeFromVolumetricElements() override; ////////////////////////// Inherited from BaseObject /////////////////// void init() override; @@ -71,8 +71,8 @@ class VolumeFromTetrahedrons : public sofa::core::DataEngine protected: - SingleLink, BaseMeshTopology, BaseLink::FLAG_STOREPATH | BaseLink::FLAG_STRONGLINK> l_topology; - SingleLink, MechanicalState, BaseLink::FLAG_STOREPATH | BaseLink::FLAG_STRONGLINK> l_state; + SingleLink, BaseMeshTopology, BaseLink::FLAG_STOREPATH | BaseLink::FLAG_STRONGLINK> l_topology; + SingleLink, MechanicalState, BaseLink::FLAG_STOREPATH | BaseLink::FLAG_STRONGLINK> l_state; sofa::Data d_positions; sofa::Data d_tetras; @@ -89,8 +89,8 @@ class VolumeFromTetrahedrons : public sofa::core::DataEngine void checkTopology(); }; -#if !defined(SOFA_COMPONENT_ENGINE_VOLUMEFROMTETRAHEDRONS_CPP) -extern template class VolumeFromTetrahedrons; +#if !defined(SOFA_COMPONENT_ENGINE_VOLUMEFROMVOLUMETRICELEMENTS_CPP) +extern template class VolumeFromVolumetricElements; #endif } // namespace diff --git a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromTetrahedrons.inl b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromVolumetricElements.inl similarity index 92% rename from Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromTetrahedrons.inl rename to Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromVolumetricElements.inl index dd1632b03c9..b9b09e2b3c3 100644 --- a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromTetrahedrons.inl +++ b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/VolumeFromVolumetricElements.inl @@ -22,7 +22,7 @@ #pragma once #include -#include +#include #include #include @@ -37,7 +37,7 @@ using sofa::core::objectmodel::BaseData; template -VolumeFromTetrahedrons::VolumeFromTetrahedrons() +VolumeFromVolumetricElements::VolumeFromVolumetricElements() : l_topology(initLink("topology", "link to the topology")) , l_state(initLink("mechanical", "link to the mechanical")) @@ -51,7 +51,7 @@ VolumeFromTetrahedrons::VolumeFromTetrahedrons() } template -void VolumeFromTetrahedrons::parse(core::objectmodel::BaseObjectDescription* arg) +void VolumeFromVolumetricElements::parse(core::objectmodel::BaseObjectDescription* arg) { Inherit1::parse(arg); @@ -63,13 +63,13 @@ void VolumeFromTetrahedrons::parse(core::objectmodel::BaseObjectDescr } template -VolumeFromTetrahedrons::~VolumeFromTetrahedrons() +VolumeFromVolumetricElements::~VolumeFromVolumetricElements() { } template -void VolumeFromTetrahedrons::init() +void VolumeFromVolumetricElements::init() { Inherit1::init(); @@ -107,7 +107,7 @@ void VolumeFromTetrahedrons::init() template -void VolumeFromTetrahedrons::reinit() +void VolumeFromVolumetricElements::reinit() { if(d_componentState.getValue() != ComponentState::Valid) return ; @@ -117,7 +117,7 @@ void VolumeFromTetrahedrons::reinit() template -void VolumeFromTetrahedrons::initTopology() +void VolumeFromVolumetricElements::initTopology() { if (!l_topology.get()) { @@ -145,7 +145,7 @@ void VolumeFromTetrahedrons::initTopology() template -void VolumeFromTetrahedrons::checkTopology() +void VolumeFromVolumetricElements::checkTopology() { ReadAccessor > positions = d_positions; ReadAccessor > tetras = d_tetras; @@ -194,7 +194,7 @@ void VolumeFromTetrahedrons::checkTopology() template -void VolumeFromTetrahedrons::doUpdate() +void VolumeFromVolumetricElements::doUpdate() { if(d_componentState.getValue() != ComponentState::Valid) return ; @@ -210,7 +210,7 @@ void VolumeFromTetrahedrons::doUpdate() template -void VolumeFromTetrahedrons::updateVolume() +void VolumeFromVolumetricElements::updateVolume() { Real volume = 0.; diff --git a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/config.h.in b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/config.h.in index a71a0a86bec..4c78c7bdb4b 100644 --- a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/config.h.in +++ b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/config.h.in @@ -36,3 +36,11 @@ namespace sofa::component::engine::generate constexpr const char* MODULE_NAME = "@PROJECT_NAME@"; constexpr const char* MODULE_VERSION = "@PROJECT_VERSION@"; } // namespace sofa::component::engine::generate + + +#ifdef SOFA_BUILD_SOFA_COMPONENT_ENGINE_GENERATE +#define SOFA_ATTRIBUTE_DEPRECATED__VOLUMEFROMTETRAHEDRONS() +#else +#define SOFA_ATTRIBUTE_DEPRECATED__VOLUMEFROMTETRAHEDRONS() \ + SOFA_ATTRIBUTE_DEPRECATED("v26.12", "v27.06", "Use the VolumeFromVolumetricElements instead") +#endif diff --git a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/init.cpp b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/init.cpp index ebdca5b8b3c..3df2ea05b4b 100644 --- a/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/init.cpp +++ b/Sofa/Component/Engine/Generate/src/sofa/component/engine/generate/init.cpp @@ -47,7 +47,7 @@ extern void registerNormEngine(sofa::core::ObjectFactory* factory); extern void registerRandomPointDistributionInSurface(sofa::core::ObjectFactory* factory); extern void registerSpiral(sofa::core::ObjectFactory* factory); extern void registerVolumeFromTriangles(sofa::core::ObjectFactory* factory); -extern void registerVolumeFromTetrahedrons(sofa::core::ObjectFactory* factory); +extern void registerVolumeFromVolumetricElements(sofa::core::ObjectFactory* factory); extern "C" { SOFA_EXPORT_DYNAMIC_LIBRARY void initExternalModule(); @@ -94,7 +94,7 @@ void registerObjects(sofa::core::ObjectFactory* factory) registerRandomPointDistributionInSurface(factory); registerSpiral(factory); registerVolumeFromTriangles(factory); - registerVolumeFromTetrahedrons(factory); + registerVolumeFromVolumetricElements(factory); } void init() diff --git a/Sofa/Component/Engine/Generate/tests/CMakeLists.txt b/Sofa/Component/Engine/Generate/tests/CMakeLists.txt index b6c01cdc787..3d0f97a6cd6 100644 --- a/Sofa/Component/Engine/Generate/tests/CMakeLists.txt +++ b/Sofa/Component/Engine/Generate/tests/CMakeLists.txt @@ -9,7 +9,7 @@ set(SOURCE_FILES MergePoints_test.cpp RandomPointDistributionInSurface_test.cpp VolumeFromTriangles_test.cpp - VolumeFromTetrahedrons_test.cpp + VolumeFromVolumetricElements_test.cpp ) find_package(Sofa.Component.StateContainer REQUIRED) diff --git a/Sofa/Component/Engine/Generate/tests/VolumeFromTetrahedrons_test.cpp b/Sofa/Component/Engine/Generate/tests/VolumeFromVolumetricElements_test.cpp similarity index 86% rename from Sofa/Component/Engine/Generate/tests/VolumeFromTetrahedrons_test.cpp rename to Sofa/Component/Engine/Generate/tests/VolumeFromVolumetricElements_test.cpp index 1221828b7ad..81d08829f81 100644 --- a/Sofa/Component/Engine/Generate/tests/VolumeFromTetrahedrons_test.cpp +++ b/Sofa/Component/Engine/Generate/tests/VolumeFromVolumetricElements_test.cpp @@ -48,8 +48,8 @@ using sofa::component::statecontainer::MechanicalObject ; using sofa::core::topology::BaseMeshTopology ; using sofa::core::objectmodel::Data ; -#include -using sofa::component::engine::generate::VolumeFromTetrahedrons ; +#include +using sofa::component::engine::generate::VolumeFromVolumetricElements ; #include using sofa::helper::system::DataRepository; @@ -60,9 +60,9 @@ namespace sofa { template -struct VolumeFromTetrahedronsTest : public sofa::testing::BaseTest, VolumeFromTetrahedrons<_DataTypes> +struct VolumeFromVolumetricElementsTest : public sofa::testing::BaseTest, VolumeFromVolumetricElements<_DataTypes> { - typedef VolumeFromTetrahedrons<_DataTypes> ThisClass ; + typedef VolumeFromVolumetricElements<_DataTypes> ThisClass ; typedef _DataTypes DataTypes; typedef typename DataTypes::Coord Coord; typedef typename DataTypes::VecCoord VecCoord; @@ -76,9 +76,9 @@ struct VolumeFromTetrahedronsTest : public sofa::testing::BaseTest, VolumeFromTe /////////////////////////////////////////////////////////////// // Bring parents members in the current lookup context. // more info at: https://gcc.gnu.org/onlinedocs/gcc/Name-lookup.html - using VolumeFromTetrahedrons<_DataTypes>::d_volume ; - using VolumeFromTetrahedrons<_DataTypes>::d_tetras ; - using VolumeFromTetrahedrons<_DataTypes>::d_hexas ; + using VolumeFromVolumetricElements<_DataTypes>::d_volume ; + using VolumeFromVolumetricElements<_DataTypes>::d_tetras ; + using VolumeFromVolumetricElements<_DataTypes>::d_hexas ; /////////////////////////////////////////////////////////////// @@ -111,7 +111,7 @@ struct VolumeFromTetrahedronsTest : public sofa::testing::BaseTest, VolumeFromTe "" " " " " - " " + " " " " ; EXPECT_NO_THROW(SceneLoaderXML::loadFromMemory ( "test", scene.c_str())) ; } @@ -139,18 +139,18 @@ struct VolumeFromTetrahedronsTest : public sofa::testing::BaseTest, VolumeFromTe using ::testing::Types; typedef Types DataTypes; -TYPED_TEST_SUITE(VolumeFromTetrahedronsTest, DataTypes); +TYPED_TEST_SUITE(VolumeFromVolumetricElementsTest, DataTypes); -TYPED_TEST(VolumeFromTetrahedronsTest, NormalBehavior) { +TYPED_TEST(VolumeFromVolumetricElementsTest, NormalBehavior) { ASSERT_NO_THROW(this->normalTests()) ; } -TYPED_TEST(VolumeFromTetrahedronsTest, SimpleScene) { +TYPED_TEST(VolumeFromVolumetricElementsTest, SimpleScene) { ASSERT_NO_THROW(this->simpleSceneTest()) ; } -TYPED_TEST(VolumeFromTetrahedronsTest, VolumeComputation) { +TYPED_TEST(VolumeFromVolumetricElementsTest, VolumeComputation) { ASSERT_DOUBLE_EQ(12.5,this->volumeComputationTest()); } } diff --git a/examples/Component/Engine/Generate/VolumeFromTetrahedrons.scn b/examples/Component/Engine/Generate/VolumeFromTetrahedrons.scn index d275a36de14..a26ad69aaba 100644 --- a/examples/Component/Engine/Generate/VolumeFromTetrahedrons.scn +++ b/examples/Component/Engine/Generate/VolumeFromTetrahedrons.scn @@ -1,6 +1,6 @@ - + @@ -14,7 +14,7 @@ - +