Salome HOME
updated copyright message
[modules/shaper.git] / src / FeaturesPlugin / CMakeLists.txt
index 82a9d3bc2c308e2c29c0427d9874464848a9d6ff..dd16932d46a1fd6077aa2a24b43fa6d863648eaf 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+# Copyright (C) 2014-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -20,6 +20,7 @@
 INCLUDE(Common)
 INCLUDE(UnitTest)
 
+
 SET(PROJECT_HEADERS
     FeaturesPlugin.h
     FeaturesPlugin_Plugin.h
@@ -38,7 +39,9 @@ SET(PROJECT_HEADERS
     FeaturesPlugin_Intersection.h
     FeaturesPlugin_Partition.h
     FeaturesPlugin_Pipe.h
+    FeaturesPlugin_Loft.h
     FeaturesPlugin_Placement.h
+    FeaturesPlugin_PointCloudOnFace.h
     FeaturesPlugin_CompositeBoolean.h
     FeaturesPlugin_CompositeSketch.h
     FeaturesPlugin_ExtrusionBoolean.h
@@ -54,13 +57,31 @@ SET(PROJECT_HEADERS
     FeaturesPlugin_Tools.h
     FeaturesPlugin_Symmetry.h
     FeaturesPlugin_Scale.h
+    FeaturesPlugin_Sewing.h
     FeaturesPlugin_MultiTranslation.h
     FeaturesPlugin_MultiRotation.h
     FeaturesPlugin_Fillet.h
+    FeaturesPlugin_Fillet1D.h
     FeaturesPlugin_Measurement.h
     FeaturesPlugin_FusionFaces.h
     FeaturesPlugin_RemoveResults.h
     FeaturesPlugin_Chamfer.h
+    FeaturesPlugin_Copy.h
+    FeaturesPlugin_ImportResult.h
+    FeaturesPlugin_Defeaturing.h
+    FeaturesPlugin_VersionedChFi.h
+    FeaturesPlugin_PointCoordinates.h
+    FeaturesPlugin_GeometryCalculation.h
+    FeaturesPlugin_BoundingBox.h
+    FeaturesPlugin_BoundingBoxBase.h
+    FeaturesPlugin_InspectBoundingBox.h
+    FeaturesPlugin_NormalToFace.h
+    FeaturesPlugin_InspectNormalToFace.h
+    FeaturesPlugin_GlueFaces.h
+    FeaturesPlugin_LimitTolerance.h
+    FeaturesPlugin_CommonSharedFaces.h
+    FeaturesPlugin_GroupSharedFaces.h
+    FeaturesPlugin_SharedFaces.h
 )
 
 SET(PROJECT_SOURCES
@@ -80,7 +101,9 @@ SET(PROJECT_SOURCES
     FeaturesPlugin_Intersection.cpp
     FeaturesPlugin_Partition.cpp
     FeaturesPlugin_Pipe.cpp
+    FeaturesPlugin_Loft.cpp
     FeaturesPlugin_Placement.cpp
+    FeaturesPlugin_PointCloudOnFace.cpp
     FeaturesPlugin_CompositeBoolean.cpp
     FeaturesPlugin_CompositeSketch.cpp
     FeaturesPlugin_ExtrusionBoolean.cpp
@@ -96,13 +119,31 @@ SET(PROJECT_SOURCES
     FeaturesPlugin_Tools.cpp
     FeaturesPlugin_Symmetry.cpp
     FeaturesPlugin_Scale.cpp
+    FeaturesPlugin_Sewing.cpp
     FeaturesPlugin_MultiTranslation.cpp
     FeaturesPlugin_MultiRotation.cpp
     FeaturesPlugin_Fillet.cpp
+    FeaturesPlugin_Fillet1D.cpp
     FeaturesPlugin_Measurement.cpp
     FeaturesPlugin_FusionFaces.cpp
     FeaturesPlugin_RemoveResults.cpp
     FeaturesPlugin_Chamfer.cpp
+    FeaturesPlugin_Copy.cpp
+    FeaturesPlugin_ImportResult.cpp
+    FeaturesPlugin_Defeaturing.cpp
+    FeaturesPlugin_VersionedChFi.cpp
+    FeaturesPlugin_PointCoordinates.cpp
+    FeaturesPlugin_GeometryCalculation.cpp
+    FeaturesPlugin_BoundingBox.cpp
+    FeaturesPlugin_BoundingBoxBase.cpp
+    FeaturesPlugin_InspectBoundingBox.cpp
+    FeaturesPlugin_NormalToFace.cpp
+    FeaturesPlugin_InspectNormalToFace.cpp
+    FeaturesPlugin_GlueFaces.cpp
+    FeaturesPlugin_LimitTolerance.cpp
+    FeaturesPlugin_CommonSharedFaces.cpp
+    FeaturesPlugin_GroupSharedFaces.cpp
+    FeaturesPlugin_SharedFaces.cpp
 )
 
 SET(XML_RESOURCES
@@ -125,23 +166,41 @@ SET(XML_RESOURCES
   placement_widget.xml
   intersection_widget.xml
   pipe_widget.xml
+  loft_widget.xml
   remove_subshapes_widget.xml
   union_widget.xml
   symmetry_widget.xml
   scale_widget.xml
+  sewing_widget.xml
   multitranslation_widget.xml
   multirotation_widget.xml
   fillet_widget.xml
+  fillet1d_widget.xml
   measurement_widget.xml
   fusion_faces_widget.xml
+  glue_faces_widget.xml
   chamfer_widget.xml
+  copy_widget.xml
+  import_result_widget.xml
+  defeaturing_widget.xml
+  point_coordinates_widget.xml
+  geometry_calculation_widget.xml
+  bounding_box_widget.xml
+  create_bounding_box_widget.xml
+  normal_to_face_widget.xml
+  create_normal_to_face_widget.xml
+  limit_tolerance_widget.xml
+  shared_faces_macro_widget.xml
+  shared_faces_widget.xml
 )
 
 SET(TEXT_RESOURCES
     FeaturesPlugin_msg_en.ts
+    FeaturesPlugin_msg_fr.ts
     FeaturesPlugin_msg_ru.ts
 )
 
+SOURCE_GROUP ("XML Files" FILES ${XML_RESOURCES})
 SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES})
 
 
@@ -150,8 +209,10 @@ INCLUDE_DIRECTORIES(
   ../GeomAPI
   ../GeomAlgoAPI
   ../GeomValidators
+  ../ModuleBase
   ../Events
   ../Config
+  ../Locale
   ${OpenCASCADE_INCLUDE_DIR}
 )
 
@@ -174,365 +235,26 @@ INSTALL(FILES ${XML_RESOURCES} DESTINATION ${SHAPER_INSTALL_XML_RESOURCES})
 INSTALL(DIRECTORY icons/ DESTINATION ${SHAPER_INSTALL_XML_RESOURCES}/icons/Features)
 INSTALL(FILES ${TEXT_RESOURCES} DESTINATION ${SHAPER_INSTALL_XML_RESOURCES})
 
-ADD_UNIT_TESTS(TestExtrusion.py
-               TestExtrusionOfCompound.py
-               TestExtrusionCut.py
-               TestExtrusionCut_BySize.py
-               TestExtrusionCut_ByPlanesAndOffsets.py
-               TestExtrusionCut_ByFaces.py
-               TestExtrusionFuse.py
-               TestExtrusionFuse_BySize.py
-               TestExtrusionFuse_ByPlanesAndOffsets.py
-               TestExtrusion_ErrorMsg.py
-               TestExtrusion_ZeroOffsetError.py
-               TestExtrusion_ByFaces01.py
-               TestExtrusion_ByFaces02.py
-               TestExtrusion_ByFaces03.py
-               TestExtrusion_ByFaces04.py
-               TestExtrusion_ByFaces05.py
-               TestExtrusion_ByFaces06.py
-               TestExtrusion_ByFaces07.py
-               TestExtrusion_ByFaces08.py
-               TestExtrusion_ByFaces09.py
-               TestExtrusion_ByFaces10.py
-               TestExtrusion_ByFaces11.py
-               TestExtrusion_ByFaces12.py
-               TestExtrusion_ByFaces13.py
-               TestExtrusion_ByFaces14.py
-               TestExtrusion_ByFaces15.py
-               TestExtrusion_ByFaces16.py
-               TestExtrusion_ByFaces17.py
-               TestExtrusion_ByFaces18.py
-               TestExtrusion_ByFaces19.py
-               TestRevolution.py
-               TestRevolution_ByAngle.py
-               TestRevolutionOfPoint.py
-               TestRevolutionOfEdge.py
-               TestRevolutionOfCompound.py
-               TestRevolutionCut.py
-               TestRevolutionCut_ByAngle.py
-               TestRevolutionCut_ByPlanesAndOffsets.py
-               TestRevolutionFuse.py
-               TestRevolutionFuse_ByAngle.py
-               TestRevolutionFuse_ByPlanesAndOffsets.py
-               TestCompositeFeaturesOnCompSolids.py
-               TestPartition.py
-               TestPartition_ErrorMsg.py
-               TestPlacement_Vertex_Vertex.py
-               TestPlacement_Edge_Vertex.py
-               TestPlacement_Edge_Edge.py
-               TestPlacement_Face_Vertex.py
-               TestPlacement_Face_Edge.py
-               TestPlacement_Face_Face.py
-               TestPlacement_Part_Part.py
-               TestPlacement_Complex.py
-               TestPlacement_ErrorMsg.py
-               TestPlacement_BodyShapesValidator.py
-               TestTranslation.py
-               TestTranslation_Part.py
-               TestRotation.py
-               TestRotation_ByAxis.py
-               TestRotation_ByPoints.py
-               TestRotation_ErrorMsg.py
-               TestMultiRotation_Part.py
-               TestMultiRotation_ErrorMsg.py
-               TestMultiTranslation_Part.py
-               TestMultiTranslation_ErrorMsg.py
-               TestSymmetry_Part.py
-               TestBoolean1.py
-               TestBoolean2.py
-               TestBoolean3.py
-               TestBooleanCompSolids.py
-               TestBooleanSmash.py
-               TestBooleanSplit.py
-               TestBooleanSplitWithPlane.py
-               TestBooleanSplit_ErrorMsg.py
-               TestMultiBoolean.py
-               TestSerialBoolean.py
-               TestBoolean_ErrorMsg.py
-               TestIntersection.py
-               TestIntersection_ErrorMsg.py
-               TestUnion.py
-               TestUnionFaces.py
-               TestUnion_ErrorMsg.py
-               TestRemoveSubShapes.py
-               TestRemoveSubShapes2.py
-               TestRemoveSubShapes3.py
-               TestRemoveSubShapes4.py
-               TestRemoveSubShapes5.py
-               TestRemoveSubShapes6.py
-               TestPipe.py
-               TestPipe_Edge.py
-               TestPipe_Wire.py
-               TestPipe_Compound.py
-               TestPipe_ErrorMsg.py
-               TestRecover.py
-               TestRecover_Compound.py
-               TestRecover_Compsolid1.py
-               TestRecover_Compsolid2.py
-               TestRecover1798.py
-               TestSplitEdgeVertex.py
-               TestSplitEdgeEdge.py
-               TestSplitEdgeEdgeIntersected.py
-               TestSplitEdgeWire.py
-               TestSplitEdgeFace.py
-               TestSplitEdgeShell.py
-               TestSplitEdgeSolid.py
-               TestSplitEdgeSolidIntersected.py
-               TestSplitWireVertex.py
-               TestSplitWireEdge.py
-               TestSplitWireWire.py
-               TestSplitWireFace.py
-               TestSplitWireShell.py
-               TestSplitWireSolid.py
-               TestSplitFaceVertex.py
-               TestSplitFaceEdge.py
-               TestSplitFaceEdgeInside.py
-               TestSplitFaceEdgePerpendicular.py
-               TestSplitFaceWire.py
-               TestSplitFaceFace.py
-               TestSplitFaceShell.py
-               TestSplitFaceSolid.py
-               TestSplitCompFaceSolid.py
-               TestSplitShellVertex.py
-               TestSplitShellEdge.py
-               TestSplitShellConstrPlane.py
-               TestSplitShellWire.py
-               TestSplitShellFace.py
-               TestSplitShellShell.py
-               TestSplitShellSolid.py
-               TestSplitSolid2ConstructionPlanes.py
-               TestSplitSolidEdge.py
-               TestSplitSolidFace.py
-               TestSplitSolidCompFace.py
-               TestSplitSolidShell.py
-               TestSplitSolidCompShell.py
-               TestSplitCompsolidPlane.py
-               TestPartition2Faces.py
-               TestPartition2Solids.py
-               TestPartition2Wires.py
-               TestPartitionBox4Planes.py
-               TestPartitionEdgeSolid.py
-               TestPartitionFace2Solid.py
-               TestPartitionFaceSolid.py
-               TestPartitionFaceWire.py
-               TestPartitionInclinedFaceSolid.py
-               TestPartitionWireFaceSolid.py
-               TestUnion4CurvedFaces.py
-               TestUnion4CurvedFaces_2.py
-               TestUnion4Faces.py
-               TestUnionOfUnion.py
-               TestMeasurementLength.py
-               TestMeasurementDistance.py
-               TestMeasurementRadius.py
-               TestMeasurementAngle.py
-               TestMeasurementAngle3Points.py
-               TestMeasurementPresentation.py
-               TestFusionFaces.py
-               TestFusionFaces2697.py 
-               Test1379.py
-               Test1922.py
-               Test1942.py
-               Test1915.py
-               Test2023.py
-               Test2046.py
-               Test2038.py
-               Test2172.py
-               Test2194.py
-               Test2197_1.py
-               Test2197_2.py
-               Test2197_3.py
-               Test2197_4.py
-               Test2215.py
-               Test2222.py
-               Test2233.py
-               Test2231.py
-               Test2240.py
-               Test2246.py
-               Test2248.py
-               Test2251.py
-               Test2255.py
-               Test2289.py
-               Test2304.py
-               Test2304_2.py
-               Test2375.py
-               Test2377.py
-               Test2394.py
-               Test2395.py
-               Test2419_1.py
-               Test2419_2.py
-               Test2419_3.py
-               Test2465.py
-               Test2495.py
-               Test2514.py
-               Test2520.py
-               TestBooleanCut_CompSolid_CompSolid.py
-               TestBooleanCut_CompSolidCompound_CompSolidCompound.py
-               TestBooleanCut_Edge_Edge.py
-               TestBooleanCut_Edge_Face.py
-               TestBooleanCut_EdgeCompound_EdgeCompound.py
-               TestBooleanCut_EdgeCompound_Solid.py
-               TestBooleanCut_Face_Face.py
-               TestBooleanCut_Face_Solid.py
-               TestBooleanCut_FaceCompound_FaceCompound.py
-               TestBooleanCut_Shell_Shell.py
-               TestBooleanCut_ShellCompound_ShellCompound.py
-               TestBooleanCut_Solid_Solid.py
-               TestBooleanCut_SolidCompound_SolidCompound.py
-               TestBooleanCut_Vertex_Vertex.py
-               TestBooleanCut_VertexCompound_Solid.py
-               TestBooleanCut_VertexCompound_VertexCompound.py
-               TestBooleanCut_Wire_Face.py
-               TestBooleanCut_Wire_Wire.py
-               TestBooleanCut_WireCompound_WireCompound.py
-               TestBooleanCut_Compound_Solid.py
-               TestBooleanCut_ErrorMsg.py
-               TestBooleanCut_SolidsHistory.py
-               TestBooleanSmash_Face_Face.py
-               TestBooleanSmash_SubSolid_Solid.py
-               TestBooleanSmash_CompSolid_Solid.py
-               TestBooleanSmash_ErrorMsg.py
-               TestBooleanSmash_SolidsHistory.py
-               TestBooleanFuse_SimpleMode.py
-               TestBooleanFuse_RemoveEdges.py
-               TestBooleanFuse_ErrorMsg.py
-               TestBooleanCommon_Vertex_Vertex.py
-               TestBooleanCommon_VertexCompound_VertexCompound.py
-               TestBooleanCommon_Edge_Edge.py
-               TestBooleanCommon_EdgeCompound_EdgeCompound.py
-               TestBooleanCommon_Wire_Wire.py
-               TestBooleanCommon_WireCompound_WireCompound.py
-               TestBooleanCommon_Face_Face.py
-               TestBooleanCommon_Face_Plane.py
-               TestBooleanCommon_FaceCompound_FaceCompound.py
-               TestBooleanCommon_Shell_Shell.py
-               TestBooleanCommon_ShellCompound_ShellCompound.py
-               TestBooleanCommon_Solid_Face.py
-               TestBooleanCommon_Solid_Shell.py
-               TestBooleanCommon_Solid_Solid.py
-               TestBooleanCommon_SolidCompound_Face.py
-               TestBooleanCommon_SolidCompound_Shell.py
-               TestBooleanCommon_SolidCompound_SolidCompound.py
-               TestBooleanCommon_SubCompound_Solid.py
-               TestBooleanCommon_SubSolid_Solid.py
-               TestBooleanCommon_CompSolid_Face.py
-               TestBooleanCommon_CompSolid_Shell.py
-               TestBooleanCommon_CompSolid_CompSolid.py
-               TestBooleanCommon_CompSolidCompound_Face.py
-               TestBooleanCommon_CompSolidCompound_Shell.py
-               TestBooleanCommon_CompSolidCompound_CompSolidCompound.py
-               TestBooleanCommon_ErrorMsg.py
-               TestBooleanCommon_SolidsHistory.py
-               Test2596.py
-               Test2592.py
-               Test2588.py
-               Test1467.py
-               TestPartitionSubCompsolidWithCompSolid1.py
-               TestPartitionSubCompsolidWithCompSolid2.py
-               TestPartitionSubCompsolidWithCompSolid3.py
-               TestPartitionSubCompsolidWithSolid1.py
-               TestPartitionSubCompsolidWithSolid2.py
-               TestPartitionSubCompsolidWithSolid3.py
-               TestPartitionSubCompsolidWithSolid4.py
-               TestPartitionSubCompsolidWithSolid5.py
-               TestPartitionSubCompsolidWithFace1.py
-               TestPartitionSubCompsolidWithFace2.py
-               TestPartitionSubCompsolidWithFace3.py
-               TestPartitionSubCompsolidWithFace4.py
-               TestPartitionSubCompsolidWithFace5.py
-               TestPartitionSubCompsolidWithPlane1.py
-               TestPartitionSubCompsolidWithPlane2.py
-               TestPartitionSubCompsolidWithPlane3.py
-               TestPartitionSubCompsolidWithPlane4.py
-               TestPartitionSubCompsolidWithPlane5.py
-               TestPartitionArgsUpdate.py
-               TestPartition_SolidsHistory.py
-               TestBooleanFuse_Vertex_Vertex.py
-               TestBooleanFuse_VertexCompound_VertexCompound.py
-               TestBooleanFuse_Edge_Edge.py
-               TestBooleanFuse_EdgeCompound_EdgeCompound.py
-               TestBooleanFuse_Wire_Wire.py
-               TestBooleanFuse_WireCompound_WireCompound.py
-               TestBooleanFuse_Face_Face.py
-               TestBooleanFuse_FaceCompound_FaceCompound.py
-               TestBooleanFuse_Shell_Shell.py
-               TestBooleanFuse_ShellCompound_ShellCompound.py
-               TestBooleanFuse_Solid_Solid.py
-               TestBooleanFuse_SolidCompound_SolidCompound.py
-               TestBooleanFuse_CompSolid_Face.py
-               TestBooleanFuse_CompSolid_CompSolid.py
-               TestBooleanFuse_CompSolidCompound_CompSolidCompound.py
-               TestBooleanFuse_SolidsHistory.py
-               TestFillet.py
-               TestFillet1.py
-               TestFillet_ErrorMsg.py
-               TestFillet_History.py
-               TestScale1.py
-               TestScale2.py
-               Test1816.py
-               Test1876.py
-               Test2225.py
-               Test2631.py
-               Test2636.py
-               Test2650.py
-               Test2681.py
-               Test2686.py
-               Test2689.py
-               Test2693.py
-               Test2698.py
-               Test2701.py
-               Test2724.py
-               Test2692.py
-               Test2617.py
-               Test2729.py
-               Test2738.py
-               Test2751.py
-               Test2826.py
-               Test2854.py
-               Test2878.py
-               Test2920.py
-               Test2971.py
-               Test3014.py
-               TestBooleanCommon_MultiLevelCompound_v0_1.py
-               TestBooleanCommon_MultiLevelCompound_v0_2.py
-               TestBooleanCommon_MultiLevelCompound_v20190506_1.py
-               TestBooleanCommon_MultiLevelCompound_v20190506_2.py
-               TestBooleanCut_MultiLevelCompound_v0_1.py
-               TestBooleanCut_MultiLevelCompound_v0_2.py
-               TestBooleanCut_MultiLevelCompound_v20190506_1.py
-               TestBooleanCut_MultiLevelCompound_v20190506_2.py
-               TestBooleanFuse_MultiLevelCompound_v0_1.py
-               TestBooleanFuse_MultiLevelCompound_v0_2.py
-               TestBooleanFuse_MultiLevelCompound_v0_3.py
-               TestBooleanFuse_MultiLevelCompound_v0_4.py
-               TestBooleanFuse_MultiLevelCompound_v20190506_1.py
-               TestBooleanFuse_MultiLevelCompound_v20190506_2.py
-               TestBooleanFuse_MultiLevelCompound_v20190506_3.py
-               TestBooleanFuse_MultiLevelCompound_v20190506_4.py
-               TestBooleanSmash_MultiLevelCompound_v0_1.py
-               TestBooleanSmash_MultiLevelCompound_v0_2.py
-               TestBooleanSmash_MultiLevelCompound_v20190506_1.py
-               TestBooleanSmash_MultiLevelCompound_v20190506_2.py
-               TestBooleanSplit_MultiLevelCompound_v0_1.py
-               TestBooleanSplit_MultiLevelCompound_v0_2.py
-               TestBooleanSplit_MultiLevelCompound_v20190506_1.py
-               TestBooleanSplit_MultiLevelCompound_v20190506_2.py
-               TestPartition_MultiLevelCompound_v0_1.py
-               TestPartition_MultiLevelCompound_v0_2.py
-               TestPartition_MultiLevelCompound_v0_3.py
-               TestPartition_MultiLevelCompound_v20190506_1.py
-               TestPartition_MultiLevelCompound_v20190506_2.py
-               TestPartition_MultiLevelCompound_v20190506_3.py
-               TestUnion_MultiLevelCompound_v0.py
-               TestUnion_MultiLevelCompound_v20190506.py
-               TestUnionFaces_v20190506.py
-               TestRemoveResultsBody.py
-               TestRemoveResultsConstruction.py
-               TestRemoveResultsPart.py
-               Test17000.py
-               Test17261.py
-               Test17281.py
-               TestChamfer.py
-               Test3033.py
-               Test17909.py
+INCLUDE(tests.set)
+
+ADD_UNIT_TESTS(
+  ${TEST_NAMES}
 )
+
+IF(${HAVE_SALOME})
+  enable_testing()
+  set(TEST_INSTALL_DIRECTORY "${SALOME_SHAPER_INSTALL_TESTS}/FeaturesPlugin")
+
+  install(FILES CTestTestfileInstall.cmake
+  DESTINATION ${TEST_INSTALL_DIRECTORY}
+  RENAME CTestTestfile.cmake)
+  install(FILES tests.set DESTINATION ${TEST_INSTALL_DIRECTORY})
+
+  set(TMP_TESTS_NAMES)
+  foreach(tfile ${TEST_NAMES})
+    list(APPEND TMP_TESTS_NAMES "Test/${tfile}")
+  endforeach(tfile ${TEST_NAMES})
+
+  install(FILES ${TMP_TESTS_NAMES} DESTINATION ${TEST_INSTALL_DIRECTORY})
+  install(DIRECTORY data DESTINATION ${TEST_INSTALL_DIRECTORY})
+ENDIF(${HAVE_SALOME})