diff --git a/Constrained_triangulation_3/doc/Constrained_triangulation_3/Constrained_triangulation_3.txt b/Constrained_triangulation_3/doc/Constrained_triangulation_3/Constrained_triangulation_3.txt index c8043a94299..43a64228b16 100644 --- a/Constrained_triangulation_3/doc/Constrained_triangulation_3/Constrained_triangulation_3.txt +++ b/Constrained_triangulation_3/doc/Constrained_triangulation_3/Constrained_triangulation_3.txt @@ -46,7 +46,7 @@ Each face is embedded into the geometric space via the points coordinates. The faces must satisfy the following conditions. They must be connected together by their common faces of lower dimension: - two edges can only intersect at a common vertex which is also in the PLC; -- two facets can only intersect at a common edge or vertex which is also in the PLC. +- two facets can only intersect at a common edge or vertex which is also in the PLC. \todo pour Laurent \cgalFigureBegin{plc_fig, plc.png} A Piecewise Linear Complex, made of planar faces, connected by edges and vertices. diff --git a/Lab/demo/Lab/CMakeLists.txt b/Lab/demo/Lab/CMakeLists.txt index 25cdc69a8a2..58db5b0fb02 100644 --- a/Lab/demo/Lab/CMakeLists.txt +++ b/Lab/demo/Lab/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12...3.31) +cmake_minimum_required(VERSION 3.16...3.31) project(Lab_Demo) include(FeatureSummary) @@ -255,16 +255,26 @@ if(CGAL_Qt6_FOUND AND Qt6_FOUND) target_link_libraries(scene_tetrahedra_item PRIVATE scene_c3t3_item) + # Support for precompiled headers, for Mesh_3 (since CMake 3.16) + add_library(c3t3_type_pch OBJECT c3t3_type_pch_empty_source.cpp C3t3_type.h) + target_link_libraries(c3t3_type_pch PRIVATE CGAL::CGAL_Qt6 Qt6::OpenGLWidgets Qt6::Gui) + set_property(TARGET c3t3_type_pch PROPERTY POSITION_INDEPENDENT_CODE TRUE) if(TARGET CGAL::TBB_support) - target_link_libraries(scene_c3t3_item PRIVATE CGAL::TBB_support) - target_link_libraries(scene_triangulation_3_item PRIVATE CGAL::TBB_support) - target_link_libraries(scene_tetrahedra_item PRIVATE CGAL::TBB_support) + target_link_libraries(c3t3_type_pch PRIVATE CGAL::TBB_support) endif() + target_precompile_headers(c3t3_type_pch PRIVATE [["C3t3_type.h"]]) - if(COMMAND target_precompile_headers) - # Support for precompiled headers, for Mesh_3 (since CMake 3.16) - target_precompile_headers(scene_c3t3_item PUBLIC [["C3t3_type.h"]]) - endif() + function(CGAL_Lab_target_use_c3t3_type target) + target_link_libraries(${target} PRIVATE c3t3_type_pch) + target_precompile_headers(${target} REUSE_FROM c3t3_type_pch) + if(TARGET CGAL::TBB_support) + target_link_libraries(${target} PRIVATE CGAL::TBB_support) + endif() + endfunction(CGAL_Lab_target_use_c3t3_type) + + CGAL_Lab_target_use_c3t3_type(scene_c3t3_item) + CGAL_Lab_target_use_c3t3_type(scene_triangulation_3_item) + CGAL_Lab_target_use_c3t3_type(scene_tetrahedra_item) add_item(scene_aff_transformed_item Plugins/PCA/Scene_aff_transformed_item.cpp) diff --git a/Lab/demo/Lab/Plugins/CDT_3/CMakeLists.txt b/Lab/demo/Lab/Plugins/CDT_3/CMakeLists.txt index dc31377bad1..122dd65279f 100644 --- a/Lab/demo/Lab/Plugins/CDT_3/CMakeLists.txt +++ b/Lab/demo/Lab/Plugins/CDT_3/CMakeLists.txt @@ -4,6 +4,4 @@ cgal_lab_plugin(cdt_3_plugin CDT_3_plugin KEYWORDS CDT_3) target_link_libraries(cdt_3_plugin PRIVATE scene_surface_mesh_item scene_polygon_soup_item scene_c3t3_item) -if(TARGET CGAL::TBB_support) - target_link_libraries(cdt_3_plugin PRIVATE CGAL::TBB_support) -endif() +CGAL_Lab_target_use_c3t3_type(cdt_3_plugin) diff --git a/Lab/demo/Lab/Plugins/IO/CMakeLists.txt b/Lab/demo/Lab/Plugins/IO/CMakeLists.txt index ff3e38d1f8a..210405890e0 100644 --- a/Lab/demo/Lab/Plugins/IO/CMakeLists.txt +++ b/Lab/demo/Lab/Plugins/IO/CMakeLists.txt @@ -82,9 +82,7 @@ if(VTK_FOUND AND VTK_LIBRARIES) ${VTK_LIBRARIES} ) target_compile_definitions(vtk_plugin PRIVATE -DCGAL_USE_VTK -DNOMINMAX) - if(TARGET CGAL::TBB_support) - target_link_libraries(vtk_plugin PRIVATE CGAL::TBB_support) - endif() + CGAL_Lab_target_use_c3t3_type(vtk_plugin) else() message(STATUS "NOTICE: the vtk IO plugin needs VTK 9.0 or greater and will not be compiled.") endif() diff --git a/Lab/demo/Lab/Plugins/Mesh_3/CMakeLists.txt b/Lab/demo/Lab/Plugins/Mesh_3/CMakeLists.txt index b63737188ff..cf7b5571528 100644 --- a/Lab/demo/Lab/Plugins/Mesh_3/CMakeLists.txt +++ b/Lab/demo/Lab/Plugins/Mesh_3/CMakeLists.txt @@ -29,6 +29,7 @@ target_link_libraries( scene_c3t3_item ${OPENGL_gl_LIBRARY}) target_include_directories(mesh_3_plugin PRIVATE include) +CGAL_Lab_target_use_c3t3_type(mesh_3_plugin) find_package(ITK NAMES ITK InsightToolkit QUIET COMPONENTS ITKCommon ITKThresholding ITKSmoothing ITKImageIntensity) @@ -77,6 +78,7 @@ target_link_libraries( mesh_3_optimization_plugin PRIVATE scene_c3t3_item scene_surface_mesh_item scene_image_item scene_implicit_function_item) +CGAL_Lab_target_use_c3t3_type(mesh_3_optimization_plugin) # Use Eigen find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater) @@ -90,25 +92,18 @@ endif() cgal_lab_plugin(c3t3_io_plugin C3t3_io_plugin KEYWORDS Viewer Mesh_3) target_link_libraries(c3t3_io_plugin PRIVATE scene_c3t3_item) +CGAL_Lab_target_use_c3t3_type(c3t3_io_plugin) qt6_wrap_ui(tetraUI_FILES Tetrahedra_filter_widget.ui) cgal_lab_plugin(tetrahedra_filtering_plugin Tetrahedra_filtering_plugin ${tetraUI_FILES} KEYWORDS Mesh_3 Viewer) target_link_libraries(tetrahedra_filtering_plugin PRIVATE scene_c3t3_item scene_tetrahedra_item) -if(TARGET CGAL::TBB_support) - target_link_libraries(tetrahedra_filtering_plugin PRIVATE CGAL::TBB_support) -endif() +CGAL_Lab_target_use_c3t3_type(tetrahedra_filtering_plugin) qt6_wrap_ui(ribUI_FILES Rib_dialog.ui) cgal_lab_plugin(c3t3_rib_exporter_plugin C3t3_rib_exporter_plugin ${ribUI_FILES} KEYWORDS Mesh_3) target_link_libraries(c3t3_rib_exporter_plugin PRIVATE scene_c3t3_item) - -if(TBB_FOUND) - target_link_libraries(mesh_3_plugin PRIVATE CGAL::TBB_support) - target_link_libraries(mesh_3_optimization_plugin PRIVATE CGAL::TBB_support) - target_link_libraries(c3t3_io_plugin PRIVATE CGAL::TBB_support) - target_link_libraries(c3t3_rib_exporter_plugin PRIVATE CGAL::TBB_support) -endif() +CGAL_Lab_target_use_c3t3_type(c3t3_rib_exporter_plugin) qt6_wrap_ui(offsetMeshingUI_FILES Offset_meshing_dialog.ui) cgal_lab_plugin(offset_meshing_plugin Offset_meshing_plugin diff --git a/Lab/demo/Lab/Plugins/Point_set/CMakeLists.txt b/Lab/demo/Lab/Plugins/Point_set/CMakeLists.txt index 9a3ed6ea5d5..97dd08c5871 100644 --- a/Lab/demo/Lab/Plugins/Point_set/CMakeLists.txt +++ b/Lab/demo/Lab/Plugins/Point_set/CMakeLists.txt @@ -202,6 +202,7 @@ cgal_lab_plugin(alpha_shape_plugin Alpha_shape_plugin target_link_libraries(alpha_shape_plugin PRIVATE scene_points_with_normal_item scene_polygon_soup_item scene_c3t3_item) +CGAL_Lab_target_use_c3t3_type(alpha_shape_plugin) qt6_wrap_ui(distanceUI_FILES Point_set_to_mesh_distance_widget.ui) cgal_lab_plugin( diff --git a/Lab/demo/Lab/Plugins/Tetrahedral_remeshing/CMakeLists.txt b/Lab/demo/Lab/Plugins/Tetrahedral_remeshing/CMakeLists.txt index a4b4f6570bb..0ed23d73d3a 100644 --- a/Lab/demo/Lab/Plugins/Tetrahedral_remeshing/CMakeLists.txt +++ b/Lab/demo/Lab/Plugins/Tetrahedral_remeshing/CMakeLists.txt @@ -13,12 +13,9 @@ cgal_lab_plugin( ${tetRemeshingUI_FILES} KEYWORDS Tetrahedral_remeshing) target_link_libraries(tetrahedral_remeshing_plugin PRIVATE scene_c3t3_item ${OPENGL_gl_LIBRARY}) - +CGAL_Lab_target_use_c3t3_type(tetrahedral_remeshing_plugin) find_package(Eigen3 3.1.0 REQUIRED) #(3.1.0 or greater) include(CGAL_Eigen3_support) if(TARGET CGAL::Eigen3_support) target_link_libraries(tetrahedral_remeshing_plugin PRIVATE CGAL::Eigen3_support) endif() -if(TARGET CGAL::TBB_support) - target_link_libraries(tetrahedral_remeshing_plugin PRIVATE CGAL::TBB_support) -endif() diff --git a/Lab/demo/Lab/Scene_c3t3_item.h b/Lab/demo/Lab/Scene_c3t3_item.h index d0dc4b13bb3..d7277681a3d 100644 --- a/Lab/demo/Lab/Scene_c3t3_item.h +++ b/Lab/demo/Lab/Scene_c3t3_item.h @@ -1,8 +1,8 @@ #ifndef SCENE_C3T3_ITEM_H #define SCENE_C3T3_ITEM_H -#include "Scene_c3t3_item_config.h" #include "C3t3_type.h" +#include "Scene_c3t3_item_config.h" #include #include diff --git a/Lab/demo/Lab/c3t3_type_pch_empty_source.cpp b/Lab/demo/Lab/c3t3_type_pch_empty_source.cpp new file mode 100644 index 00000000000..c17830fc570 --- /dev/null +++ b/Lab/demo/Lab/c3t3_type_pch_empty_source.cpp @@ -0,0 +1 @@ +#include "C3t3_type.h"