merge cgal/master

This commit is contained in:
Andreas Fabri 2025-02-28 08:55:20 +00:00
commit 6eaeb7a148
735 changed files with 10992 additions and 9501 deletions

35
.clang-format Normal file
View File

@ -0,0 +1,35 @@
---
Language: Cpp
BasedOnStyle: LLVM
AccessModifierOffset: -2
AllowShortFunctionsOnASingleLine: true
BinPackParameters: false
BreakConstructorInitializers: BeforeComma
BreakBeforeBraces: Custom
BraceWrapping:
AfterCaseLabel: false
AfterClass: true
AfterControlStatement: MultiLine
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: true
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
ColumnLimit: 120
# Force pointers to the type for C++.
DerivePointerAlignment: false
PointerAlignment: Left
# Control the spaces around conditionals
SpacesInConditionalStatement: false
SpaceBeforeParens: false
...

3
.gitattributes vendored
View File

@ -44,11 +44,9 @@ Documentation/Doxyfile text eol=lf
Documentation/pkglist_filter text eol=lf
Installation/update_CHANGES text eol=lf
Scripts/developer_scripts/autotest_cgal text eol=lf
Scripts/developer_scripts/autotest_cgal_with_cmake text eol=lf
Scripts/developer_scripts/cgal_build text eol=lf
Scripts/developer_scripts/cgal_depend text eol=lf
Scripts/developer_scripts/cgal_git_update_hooks_for_client text eol=lf
Scripts/developer_scripts/cgal_test_with_cmake text eol=lf
Scripts/developer_scripts/cgal2gml text eol=lf
Scripts/developer_scripts/check_library_uses_no_gpl_files text eol=lf
Scripts/developer_scripts/check_licenses text eol=lf
@ -56,7 +54,6 @@ Scripts/developer_scripts/check_macro_names text eol=lf
Scripts/developer_scripts/check_no_CGAL_USE_without_includes_before text eol=lf
Scripts/developer_scripts/check_svn_keywords text eol=lf
Scripts/developer_scripts/create_cgal_test text eol=lf
Scripts/developer_scripts/create_cgal_test_with_cmake text eol=lf
Scripts/developer_scripts/create_internal_release text eol=lf
Scripts/developer_scripts/create_new_release text eol=lf
Scripts/developer_scripts/detect_files_with_mixed_eol_styles text eol=lf

58
.gitignore vendored
View File

@ -8,7 +8,6 @@ AABB_tree/demo/AABB_tree/Makefile
AABB_tree/examples/AABB_tree/*.kdev*
AABB_tree/examples/AABB_tree/*_example
AABB_tree/examples/AABB_tree/Makefile
AABB_tree/examples/AABB_tree/cgal_test_with_cmake
AABB_tree/test/AABB_tree/*.kdev*
AABB_tree/test/AABB_tree/Makefile
AABB_tree/test/AABB_tree/aabb_correctness_triangle_test
@ -18,17 +17,14 @@ AABB_tree/test/AABB_tree/aabb_distance_triangle_test
AABB_tree/test/AABB_tree/aabb_intersection_triangle_test
AABB_tree/test/AABB_tree/aabb_naive_vs_tree_distance_segment_test
AABB_tree/test/AABB_tree/aabb_projection_triangle_test
AABB_tree/test/AABB_tree/cgal_test_with_cmake
Algebraic_foundations/test/Algebraic_foundations/Algebraic_extension_traits
Algebraic_foundations/test/Algebraic_foundations/Algebraic_structure_traits
Algebraic_foundations/test/Algebraic_foundations/Chinese_remainder_traits
Algebraic_foundations/test/Algebraic_foundations/Coercion_traits
Algebraic_foundations/test/Algebraic_foundations/Real_embeddable_traits
Algebraic_foundations/test/Algebraic_foundations/Scalar_factor_traits
Algebraic_foundations/test/Algebraic_foundations/cgal_test_with_cmake
Algebraic_foundations/test/Algebraic_foundations/extended_euclidean_algorithm
Algebraic_foundations/test/Algebraic_foundations/ipower
Algebraic_kernel_d/test/Algebraic_kernel_d/cgal_test_with_cmake
Algebraic_kernel_d/test/Algebraic_kernel_d/rs_isolator
Alpha_shapes_2/demo/Alpha_shapes_2/Makefile
Alpha_shapes_2/demo/Alpha_shapes_2/alpha_shapes_2
@ -37,7 +33,6 @@ Alpha_shapes_2/examples/Alpha_shapes_2/alpha_shapes_2
Alpha_shapes_3/demo/Alpha_shapes_3/Makefile
Alpha_shapes_3/demo/Alpha_shapes_3/alpha_shapes_3
Alpha_shapes_3/demo/Alpha_shapes_3/weighted_alpha_shapes_3
Alpha_shapes_3/test/Alpha_shapes_3/cgal_test_with_cmake
Alpha_shapes_3/test/Alpha_shapes_3/test_alpha_shape_3
Alpha_shapes_3/test/Alpha_shapes_3/test_fixed_alpha_shape_3
Alpha_shapes_3/test/Alpha_shapes_3/test_weighted_alpha_shape_3
@ -60,7 +55,6 @@ Arrangement_on_surface_2/examples/Arrangement_on_surface_2/batched_point_locatio
Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_dual_adapter
Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_primal_adapter
Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bounded_planar_vertical_decomposition
Arrangement_on_surface_2/examples/Arrangement_on_surface_2/cgal_test_with_cmake
Arrangement_on_surface_2/examples/Arrangement_on_surface_2/circles
Arrangement_on_surface_2/examples/Arrangement_on_surface_2/circular_arcs
Arrangement_on_surface_2/examples/Arrangement_on_surface_2/circular_line_arcs
@ -103,30 +97,24 @@ Arrangement_on_surface_2/examples/Arrangement_on_surface_2/unbounded_rational_fu
Arrangement_on_surface_2/examples/Arrangement_on_surface_2/vertical_ray_shooting
Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_point_location.cpp
BGL/examples/BGL_arrangement_2/Makefile
BGL/examples/BGL_arrangement_2/cgal_test_with_cmake
BGL/examples/BGL_arrangement_2/dual
BGL/examples/BGL_arrangement_2/primal
BGL/test/BGL/cgal_test_with_cmake
Boolean_set_operations_2/demo/Boolean_set_operations_2/Makefile
Boolean_set_operations_2/demo/Boolean_set_operations_2/boolean_operations_2
Box_intersection_d/test/Box_intersection_d/automated_test
Box_intersection_d/test/Box_intersection_d/benchmark.data
Box_intersection_d/test/Box_intersection_d/benchmark_box_intersection
Box_intersection_d/test/Box_intersection_d/box_grid
Box_intersection_d/test/Box_intersection_d/cgal_test_with_cmake
Box_intersection_d/test/Box_intersection_d/random_set_test
CGAL_ImageIO/demo/CGALimageIO/Makefile
CGAL_ImageIO/demo/CGALimageIO/cgal_test_with_cmake
CGAL_ImageIO/demo/CGALimageIO/image_to_vtk_viewer
CGAL_ImageIO/examples/CGALimageIO/Makefile
CGAL_ImageIO/examples/CGALimageIO/cgal_test_with_cmake
CGAL_ImageIO/examples/CGALimageIO/convert_raw_image_to_inr
CGAL_ImageIO/examples/CGALimageIO/makefile
CGAL_ImageIO/examples/CGALimageIO/test_imageio
CGAL_ImageIO/src/CGAL_ImageIO/Makefile
Circular_kernel_3/demo/Circular_kernel_3/Circular_kernel_3_demo
Circular_kernel_3/demo/Circular_kernel_3/Makefile
Circular_kernel_3/test/Circular_kernel_3/cgal_test_with_cmake
Circular_kernel_3/test/Circular_kernel_3/test_Exact_spherical_kernel
Circular_kernel_3/test/Circular_kernel_3/test_Lazy_Spherical_kernel
Circular_kernel_3/test/Circular_kernel_3/test_Lazy_spherical_kernel_basics
@ -137,7 +125,6 @@ Documentation/log/*.*
Documentation/output
Documentation/tags/*.*
Generator/examples/Generator/ball_d
Generator/examples/Generator/cgal_test_with_cmake
Generator/examples/Generator/cube_d
Generator/examples/Generator/grid_d
Generator/examples/Generator/random_convex_set
@ -149,7 +136,6 @@ Generator/examples/Generator/random_segments1
Generator/examples/Generator/random_segments2
Generator/examples/Generator/sphere_d
Generator/test/Generator/bug
Generator/test/Generator/cgal_test_with_cmake
Generator/test/Generator/random_poly_test
Generator/test/Generator/rcs_test
Generator/test/Generator/test_combination_enumerator
@ -178,7 +164,6 @@ GraphicsView/demo/Triangulation_2/Makefile
GraphicsView/demo/Triangulation_2/Regular_triangulation_2
GraphicsView/demo/Triangulation_2/qrc_*.cxx
GraphicsView/demo/Triangulation_2/ui_*.h
HalfedgeDS/test/HalfedgeDS/cgal_test_with_cmake
HalfedgeDS/test/HalfedgeDS/test_hds
HalfedgeDS/test/HalfedgeDS/test_hds_decorator
Inscribed_areas/test/Inscribed_areas/Makefile
@ -188,11 +173,8 @@ Installation/auxiliary/gdb/python/CGAL/printers.pyc
Installation/auxiliary/gdb/test
Installation/cmake/modules/*.tmp
Installation/test/Installation/cgal_test
/Installation/test/Installation/cgal_test_with_cmake
Installation/test/Installation/deprecation_warning
Interpolation/demo/Interpolation/cgal_test_with_cmake
Intersections_3/test/Intersections_3/bbox_other_do_intersect_test
Intersections_3/test/Intersections_3/cgal_test_with_cmake
Intersections_3/test/Intersections_3/circle_other
Intersections_3/test/Intersections_3/line_line
Intersections_3/test/Intersections_3/segment_segment
@ -206,7 +188,6 @@ Jet_fitting_3/examples/Jet_fitting_3/Single_estimation
Jet_fitting_3/examples/Jet_fitting_3/VC
Jet_fitting_3/test/Jet_fitting_3/Makefile
Jet_fitting_3/test/Jet_fitting_3/blind_1pt
/Jet_fitting_3/examples/Jet_fitting_3/cgal_test_with_cmake
/Jet_fitting_3/examples/Jet_fitting_3/data_ellipe0.003.off.4ogl.txt
Kernel_23/test/Kernel_23/Cartesian
Kernel_23/test/Kernel_23/Dimension
@ -220,7 +201,6 @@ Kernel_23/test/Kernel_23/Simple_cartesian
Kernel_23/test/Kernel_23/Simple_homogeneous
Kernel_23/test/Kernel_23/Test_IO.out
/Kernel_23/test/Kernel_23/Test-*IO.out
Kernel_23/test/Kernel_23/cgal_test_with_cmake
Kernel_23/test/Kernel_23/test_kernel__
Kinetic_data_structures/demo/Kinetic_data_structures/Delaunay_triangulation_2
Kinetic_data_structures/demo/Kinetic_data_structures/Delaunay_triangulation_stable_subset_2
@ -229,13 +209,11 @@ Kinetic_data_structures/demo/Kinetic_data_structures/KDS_Delaunay_triangulation_
Kinetic_data_structures/demo/Kinetic_data_structures/KDS_generate_data
Kinetic_data_structures/demo/Kinetic_data_structures/KDS_gui_2
Kinetic_data_structures/demo/Kinetic_data_structures/Makefile
Kinetic_data_structures/demo/Kinetic_data_structures/cgal_test_with_cmake
Kinetic_data_structures/demo/Kinetic_data_structures/generate_data
Kinetic_data_structures/demo/Kinetic_data_structures/gui_2
Kinetic_data_structures/test/Kinetic_data_structures/Delaunay_triangulation_2
Kinetic_data_structures/test/Kinetic_data_structures/Delaunay_triangulation_3
Kinetic_data_structures/test/Kinetic_data_structures/active_objects_tables
Kinetic_data_structures/test/Kinetic_data_structures/cgal_test_with_cmake
Kinetic_data_structures/test/Kinetic_data_structures/exact_kds
Kinetic_data_structures/test/Kinetic_data_structures/instantaneous_kernel
Kinetic_data_structures/test/Kinetic_data_structures/numbers
@ -248,8 +226,6 @@ Kinetic_data_structures/test/Kinetic_data_structures/test_KDS_Delaunay_triangula
Kinetic_data_structures/test/Kinetic_data_structures/timings
Linear_cell_complex/demo/Linear_cell_complex/Linear_cell_complex_3.qrc.depends
Linear_cell_complex/demo/Linear_cell_complex/Linear_cell_complex_3_demo
Linear_cell_complex/demo/Linear_cell_complex/cgal_test_with_cmake
Linear_cell_complex/examples/Linear_cell_complex/cgal_test_with_cmake
Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3
Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_triangulation
Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_with_colored_vertices
@ -297,7 +273,6 @@ Mesh_2/demo/Mesh_2/*.core
Mesh_2/demo/Mesh_2/*.moc
Mesh_2/demo/Mesh_2/.*.deps
Mesh_2/demo/Mesh_2/Makefile
Mesh_2/demo/Mesh_2/cgal_test_with_cmake
Mesh_2/demo/Mesh_2/conform
Mesh_2/demo/Mesh_2/depends
Mesh_2/demo/Mesh_2/filename.edg
@ -309,7 +284,6 @@ Mesh_2/demo/Mesh_2/semantic.cache
Mesh_2/doxygen
Mesh_2/examples/Mesh_2/*.core
Mesh_2/examples/Mesh_2/.*.deps
Mesh_2/examples/Mesh_2/cgal_test_with_cmake
Mesh_2/examples/Mesh_2/conform
Mesh_2/examples/Mesh_2/conforming
Mesh_2/examples/Mesh_2/depends
@ -324,7 +298,6 @@ Mesh_2/test/Mesh_2/*.core
Mesh_2/test/Mesh_2/.*.deps
Mesh_2/test/Mesh_2/Makefile
Mesh_2/test/Mesh_2/bench_double_map
Mesh_2/test/Mesh_2/cgal_test_with_cmake
Mesh_2/test/Mesh_2/conform_plus
Mesh_2/test/Mesh_2/depends
Mesh_2/test/Mesh_2/my_makefile
@ -373,7 +346,6 @@ Mesh_3/examples/Mesh_3/.*.deps
Mesh_3/examples/Mesh_3/random-image.inr
Mesh_3/examples/Mesh_3/Makefile
Mesh_3/examples/Mesh_3/applications
Mesh_3/examples/Mesh_3/cgal_test_with_cmake
Mesh_3/examples/Mesh_3/cgal_to_medit
Mesh_3/examples/Mesh_3/chair-after.mesh
Mesh_3/examples/Mesh_3/chair-after.png
@ -411,7 +383,6 @@ Mesh_3/examples/Mesh_3/test_off
/Mesh_3/test/Mesh_3/a.lua
/Mesh_3/test/Mesh_3/applications
/Mesh_3/test/Mesh_3/*.cgal
/Mesh_3/test/Mesh_3/cgal_test_with_cmake
/Mesh_3/test/Mesh_3/cgal_to_medit
/Mesh_3/test/Mesh_3/combined_spheres
/Mesh_3/test/Mesh_3/combined_spheres-with-sphere-oracle
@ -513,11 +484,9 @@ Min_ellipse_2/.tmp
Min_ellipse_2/Makefile
Min_ellipse_2/bin
Min_ellipse_2/doc_ps
Minkowski_sum_3/test/Minkowski_sum_3/cgal_test_with_cmake
Nef_2/test/Nef_2/EPoint-test
Nef_2/test/Nef_2/Nef_polyhedron_2-test
Nef_2/test/Nef_2/Polynomial-test
Nef_2/test/Nef_2/cgal_test_with_cmake
Nef_2/test/Nef_2/nef_2_point_location
Nef_3/demo/Nef_3/Makefile
Nef_3/examples/Nef_3/Makefile
@ -575,7 +544,6 @@ Number_types/test/Number_types/_test_valid_finite_double
Number_types/test/Number_types/_test_valid_finite_float
Number_types/test/Number_types/bench_interval
Number_types/test/Number_types/cgal_test
Number_types/test/Number_types/cgal_test_with_cmake
Number_types/test/Number_types/constant
Number_types/test/Number_types/double
Number_types/test/Number_types/doubletst
@ -626,7 +594,6 @@ Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/moc_*.cpp
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/ui_*.h
Periodic_3_triangulation_3/demo/Periodic_Lloyd_3/Periodic_Lloyd_3.qch
Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/Test_tds_IO_3
Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/cgal_test_with_cmake
Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_alpha_shape_3
Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_delaunay_3
Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_delaunay_hierarchy_3
@ -637,7 +604,6 @@ Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_trian
Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_triangulation_traits_H_3
Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_triangulation_traits_SC_3
Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/test_periodic_3_triangulation_traits_SH_3
Point_set_2/test/Point_set_2/cgal_test_with_cmake
Point_set_2/test/Point_set_2/nearest_nb1
Point_set_2/test/Point_set_2/nearest_nb_fcn
Point_set_2/test/Point_set_2/range_search_fcn
@ -683,7 +649,6 @@ Point_set_processing_3/test/Point_set_processing_3/smoothing_test
/Polygon_mesh_processing/test/Polygon_mesh_processing/elephant-oriented.off
/Polygon_mesh_processing/test/Polygon_mesh_processing/elephant-shuffled.off
/Polygon_mesh_processing/test/Polygon_mesh_processing/blobby_2cc_no_id.off
/Polygon_mesh_processing/test/Polygon_mesh_processing/cgal_test_with_cmake
/Polygon_mesh_processing/test/Polygon_mesh_processing/data/U.polylines.txt.off
/Polygon_mesh_processing/test/Polygon_mesh_processing/data/hole1.txt.off
/Polygon_mesh_processing/test/Polygon_mesh_processing/data/hole2.txt.off
@ -707,7 +672,6 @@ Polyhedron/demo/Polyhedron/snapshot.*
Polyhedron/demo/Polyhedron/ui_*.h
Polyhedron/test/Polyhedron/*.kdev*
Polyhedron/test/Polyhedron/Makefile
Polyhedron/test/Polyhedron/cgal_test_with_cmake
Polyhedron/test/Polyhedron/test_polyhedron
Polynomial/test/Polynomial/Exponent_vector
Polynomial/test/Polynomial/Interpolator
@ -715,7 +679,6 @@ Polynomial/test/Polynomial/Polynomial_traits_d
Polynomial/test/Polynomial/Polynomial_type_generator
Polynomial/test/Polynomial/Polynomial_using_core
Polynomial/test/Polynomial/Polynomial_using_leda
Polynomial/test/Polynomial/cgal_test_with_cmake
Polynomial/test/Polynomial/modular_gcd_utcf_algorithm_M
Polynomial/test/Polynomial/modular_gcd_utcf_dfai
Polynomial/test/Polynomial/modular_gcd_utcf_pure_wang
@ -745,10 +708,8 @@ Polytope_distance_d/.obj
Polytope_distance_d/.tmp
Polytope_distance_d/Makefile
Polytope_distance_d/bin
Polytope_distance_d/test/Polytope_distance_d/cgal_test_with_cmake
Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d_d
Principal_component_analysis/test/Principal_component_analysis/bounding_box
Principal_component_analysis/test/Principal_component_analysis/cgal_test_with_cmake
Principal_component_analysis/test/Principal_component_analysis/linear_least_squares_fitting_circles_2
Principal_component_analysis/test/Principal_component_analysis/linear_least_squares_fitting_cuboids_3
Principal_component_analysis/test/Principal_component_analysis/linear_least_squares_fitting_points_2
@ -773,7 +734,6 @@ Principal_component_analysis/test/Principal_component_analysis/test_linear_least
Principal_component_analysis/test/Principal_component_analysis/test_linear_least_squares_fitting_tetrahedra_3
Principal_component_analysis/test/Principal_component_analysis/test_linear_least_squares_fitting_triangles_2
Principal_component_analysis/test/Principal_component_analysis/test_linear_least_squares_fitting_triangles_3
/Profiling_tools/test/Profiling_tools/cgal_test_with_cmake
/Profiling_tools/test/Profiling_tools/test_memory_sizer
/Profiling_tools/test/Profiling_tools/test_timer
QP_solver/documentation/Degeneracies.aux
@ -805,7 +765,6 @@ Ridges_3/examples/Ridges_3/Compute_Ridges_Umbilics
Ridges_3/examples/Ridges_3/Makefile
Ridges_3/test/Ridges_3/Makefile
Ridges_3/test/Ridges_3/ridge_test
STL_Extension/test/STL_Extension/cgal_test_with_cmake
STL_Extension/test/STL_Extension/test_Cache
STL_Extension/test/STL_Extension/test_Compact_container
STL_Extension/test/STL_Extension/test_Concatenate_iterator
@ -827,7 +786,6 @@ STL_Extension/test/STL_Extension/test_nth_element
STL_Extension/test/STL_Extension/test_stl_extension
STL_Extension/test/STL_Extension/test_type_traits
STL_Extension/test/STL_Extension/test_vector
SearchStructures/test/RangeSegmentTrees/cgal_test_with_cmake
SearchStructures/test/RangeSegmentTrees/test_segment_tree_set_2
Skin_surface_3/.cdtproject
Skin_surface_3/.project
@ -838,7 +796,6 @@ Skin_surface_3/test/Skin_surface_3/err.txt
Skin_surface_3/test/Skin_surface_3/makefile
Skin_surface_3/test/Skin_surface_3/msgs.txt
Skin_surface_3/test/Skin_surface_3/subdivision_test
Spatial_sorting/test/Spatial_sorting/cgal_test_with_cmake
Stream_lines_2/demo/Stream_lines_2/Makefile
Stream_lines_2/demo/Stream_lines_2/streamlines
Surface_mesh_parameterization/examples/Surface_mesh_parameterization/*.eps
@ -966,20 +923,15 @@ Triangulation/test/Triangulation/output-pcds*
Triangulation/test/Triangulation/pc
Triangulation/test/Triangulation/pcds
Triangulation/test/Triangulation/torture
/Triangulation/examples/Triangulation/cgal_test_with_cmake
/Triangulation/test/Triangulation/cgal_test_with_cmake
/Triangulation/test/Triangulation/output-tds-*
Triangulation_2/cgal_test_with_cmake
Triangulation_2/demo/Triangulation_2/Makefile
Triangulation_2/demo/Triangulation_2/constrained
Triangulation_2/demo/Triangulation_2/constrained_delaunay_triangulation_2
Triangulation_2/demo/Triangulation_2/delaunay_triangulation_2
Triangulation_2/demo/Triangulation_2/regular_triangulation_2
Triangulation_2/examples/Triangulation_2/cgal_test_with_cmake
Triangulation_2/examples/Triangulation_2/regular
Triangulation_2/test/Triangulation_2/Makefile
Triangulation_2/test/Triangulation_2/T??.triangulation
Triangulation_2/test/Triangulation_2/cgal_test_with_cmake
Triangulation_2/test/Triangulation_2/file_tds*
Triangulation_2/test/Triangulation_2/makefile
Triangulation_2/test/Triangulation_2/test_cdt_degenerate_case
@ -997,10 +949,8 @@ Triangulation_2/test/Triangulation_2/test_triangulation_2_bis
Triangulation_2/test/Triangulation_2/test_triangulation_geom_traits
Triangulation_2/test/Triangulation_2/test_triangulation_tds
Triangulation_2/test/Triangulation_2/vrml_tds*
Triangulation_3/benchmark/Triangulation_3/cgal_test_with_cmake
Triangulation_3/benchmark/Triangulation_3/simple
Triangulation_3/examples/Triangulation_3/adding_handles_3
Triangulation_3/examples/Triangulation_3/cgal_test_with_cmake
Triangulation_3/examples/Triangulation_3/color
Triangulation_3/examples/Triangulation_3/fast_location_3
Triangulation_3/examples/Triangulation_3/find_conflicts_3
@ -1026,7 +976,6 @@ Triangulation_3/test/Triangulation_3/Test8_triangulation_IO_3_binary
Triangulation_3/test/Triangulation_3/Test??_triangulation_IO_3
Triangulation_3/test/Triangulation_3/Test?_triangulation_IO_3
Triangulation_3/test/Triangulation_3/Test_tds_IO_3
Triangulation_3/test/Triangulation_3/cgal_test_with_cmake
Triangulation_3/test/Triangulation_3/makefile
Triangulation_3/test/Triangulation_3/test_delaunay_3
Triangulation_3/test/Triangulation_3/test_delaunay_hierarchy_3
@ -1083,7 +1032,6 @@ ProgramOutput*
ErrorOutput*
CompilerOutput*
error.txt
cgal_test_with_cmake.log
# File created by the Semantic Bovinator (an Emacs package)
semantic.cache
@ -1140,9 +1088,7 @@ Doxyfile
gmon.*
# Unsorted file names:
/Point_set_processing_3/test/Point_set_processing_3/cgal_test_with_cmake
/Point_set_processing_3/test/Point_set_processing_3/read_test
/Nef_S2/test/Nef_S2/cgal_test_with_cmake
/Arrangement_on_surface_2/test/Arrangement_on_surface_2/construction_test_suite_generator
/Arrangement_on_surface_2/test/Arrangement_on_surface_2/ex_kernel_point
/Arrangement_on_surface_2/test/Arrangement_on_surface_2/ex_kernel_segment
@ -1190,15 +1136,11 @@ gmon.*
/Principal_component_analysis/examples/Principal_component_analysis/barycenter
/Principal_component_analysis/examples/Principal_component_analysis/bounding_box
/Principal_component_analysis/examples/Principal_component_analysis/centroid
/Principal_component_analysis/examples/Principal_component_analysis/cgal_test_with_cmake
/Principal_component_analysis/examples/Principal_component_analysis/linear_least_squares_fitting_points_2
/Principal_component_analysis/examples/Principal_component_analysis/linear_least_squares_fitting_triangles_3
/Polygon/examples/Polygon/cgal_test_with_cmake
/Polygon/test/Polygon/cgal_test_with_cmake
/Polygon/test/Polygon/polytest.ascii
/Polygon/test/Polygon/polytest.binary
/Polygon/test/Polygon/polytest.pretty
/Stream_support/test/Stream_support/cgal_test_with_cmake
/*.html
/Snap_rounding_2/test/Snap_rounding_2/data/out
Polygonal_surface_reconstruction/examples/build*

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(AABB_traits_benchmark)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core)
@ -13,7 +13,7 @@ create_single_source_cgal_program("tree_construction.cpp")
find_package(benchmark QUIET)
if(benchmark_FOUND)
create_single_source_cgal_program("tree_creation.cpp")
target_link_libraries(tree_creation benchmark::benchmark)
target_link_libraries(tree_creation PRIVATE benchmark::benchmark)
else()
message(STATUS "NOTICE: The benchmark 'tree_creation.cpp' requires the Google benchmark library, and will not be compiled.")
endif()

View File

@ -1,6 +1,6 @@
# This is the CMake script for compiling the AABB tree demo.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(AABB_tree_Demo)
# Find includes in corresponding build directories

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(AABB_tree_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(AABB_tree_Tests)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Advancing_front_surface_reconstruction_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Advancing_front_surface_reconstruction_Tests)
find_package(CGAL REQUIRED)

View File

@ -5,7 +5,6 @@
/*!
\addtogroup PkgAlgebraicFoundationsRef
\todo check generated documentation
\cgalPkgDescriptionBegin{Algebraic Foundations,PkgAlgebraicFoundations}
\cgalPkgPicture{Algebraic_foundations2.png}

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Algebraic_foundations_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Algebraic_foundations_Tests)
find_package(CGAL REQUIRED COMPONENTS Core)

View File

@ -16,7 +16,6 @@
/*!
\addtogroup PkgAlgebraicKernelDRef
\todo check generated documentation
\cgalPkgDescriptionBegin{Algebraic Kernel,PkgAlgebraicKernelD}
\cgalPkgPicture{Algebraic_kernel_d.png}
\cgalPkgSummaryBegin

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Algebraic_kernel_d_Examples)
find_package(CGAL REQUIRED COMPONENTS Core)

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Algebraic_kernel_d_Tests)
# CGAL and its components

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Algebraic_kernel_for_circles_Tests)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Algebraic_kernel_for_spheres_Tests)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Alpha_shapes_2_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Alpha_shapes_2_Tests)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Alpha_shapes_3_Demo)
# Find includes in corresponding build directories

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Alpha_shapes_3_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Alpha_shapes_3_Tests)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Alpha_wrap_3_Benchmark)
find_package(CGAL REQUIRED)

View File

@ -75,7 +75,7 @@ double mean_min_angle(const Mesh& mesh)
const Triangle_3 tr = surface_mesh_face_to_triangle(f, mesh);
std::array<FT, 3> angles = triangle_angles(tr);
FT min_angle = std::min({angles[0], angles[1], angles[2]});
FT min_angle = (std::min)({angles[0], angles[1], angles[2]});
min_angle = min_angle * (180.0 / CGAL_PI);
mean_min_angle += min_angle;
@ -93,7 +93,7 @@ double mean_max_angle(const Mesh& mesh)
const Triangle_3 tr = surface_mesh_face_to_triangle(f, mesh);
std::array<FT, 3> angles = triangle_angles(tr);
FT max_angle = std::max({angles[0], angles[1], angles[2]});
FT max_angle = (std::max)({angles[0], angles[1], angles[2]});
max_angle = max_angle * (180.0 / CGAL_PI);
mean_max_angle += max_angle;
@ -151,8 +151,8 @@ double mean_edge_ratio(const Mesh& mesh,
FT a = std::sqrt(CGAL::squared_distance(tr[0], tr[1]));
FT b = std::sqrt(CGAL::squared_distance(tr[1], tr[2]));
FT c = std::sqrt(CGAL::squared_distance(tr[2], tr[0]));
FT min_edge = std::min({a, b, c});
FT max_edge = std::max({a, b, c});
FT min_edge = (std::min)({a, b, c});
FT max_edge = (std::max)({a, b, c});
FT edge_ratio = max_edge / min_edge;
mean_edge_ratio += edge_ratio;
@ -181,7 +181,7 @@ double mean_aspect_ratio(const Mesh& mesh,
FT c = std::sqrt(CGAL::squared_distance(tr[2], tr[0]));
FT s = 0.5 * (a + b + c);
FT inscribed_radius = std::sqrt((s * (s - a) * (s - b) * (s - c)) / s);
FT max_edge = std::max({a, b, c});
FT max_edge = (std::max)({a, b, c});
FT aspect_ratio = max_edge / inscribed_radius;
aspect_ratio /= (2. * std::sqrt(3.)); // normalized
mean_aspect_ratio += aspect_ratio;

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Alpha_wrap_3_Examples)
find_package(CGAL REQUIRED)

View File

@ -97,7 +97,7 @@ template <typename Cb>
class Cell_base_with_timestamp
: public Cb
{
std::size_t time_stamp_;
std::size_t time_stamp_ = std::size_t(-2);
public:
using Has_timestamp = CGAL::Tag_true;
@ -112,7 +112,7 @@ public:
public:
template <typename... Args>
Cell_base_with_timestamp(const Args&... args)
: Cb(args...), time_stamp_(-1)
: Cb(args...)
{ }
Cell_base_with_timestamp(const Cell_base_with_timestamp& other)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Alpha_wrap_3_Tests)
find_package(CGAL REQUIRED)

View File

@ -3,7 +3,6 @@
/// \ingroup PkgApolloniusGraph2Ref
/*!
\addtogroup PkgApolloniusGraph2Ref
\todo check generated documentation
\cgalPkgDescriptionBegin{2D Apollonius Graphs (Delaunay Graphs of Disks),PkgApolloniusGraph2}
\cgalPkgPicture{CircleVoronoi.png}
\cgalPkgSummaryBegin

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Apollonius_graph_2_Examples)
find_package(CGAL REQUIRED COMPONENTS Core)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Apollonius_graph_2_Tests)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Arithmetic_kernel_Tests)
find_package(CGAL REQUIRED COMPONENTS Core)

View File

@ -1,6 +1,6 @@
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Arrangement_on_surface_2_Demo)
if(NOT POLICY CMP0070 AND POLICY CMP0053)

View File

@ -1,6 +1,6 @@
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Arrangement_on_surface_2_earth_Demo)
if(NOT POLICY CMP0070 AND POLICY CMP0053)
@ -16,27 +16,24 @@ find_package(Qt6 QUIET COMPONENTS Core Gui OpenGL OpenGLWidgets Widgets Xml)
find_package(CGAL COMPONENTS Qt6)
find_package(nlohmann_json QUIET 3.9)
if (NOT CGAL_FOUND OR NOT CGAL_Qt6_FOUND OR NOT Qt6_FOUND OR NOT Boost_FOUND OR NOT nlohmann_json_FOUND)
if (NOT CGAL_FOUND)
set(MISSING_DEPS "the CGAL library, ${MISSING_DEPS}")
endif()
if (NOT CGAL_Qt6_FOUND)
set(MISSING_DEPS "the CGAL Qt6 component, ${MISSING_DEPS}")
endif()
if (NOT Qt6_FOUND)
set(MISSING_DEPS "the Qt6 library, ${MISSING_DEPS}")
endif()
if (NOT Boost_FOUND)
set(MISSING_DEPS "the Boost library, ${MISSING_DEPS}")
endif()
if (NOT nlohmann_json_FOUND)
set(MISSING_DEPS "JSON for Modern C++ 3.9+ (know as nlohmann_json), ${MISSING_DEPS}")
endif()
message(STATUS "NOTICE: This project requires ${MISSING_DEPS} and will not be compiled.")
return()
set(MISSING_DEPS "")
if (NOT CGAL_FOUND)
set(MISSING_DEPS "the CGAL library, ${MISSING_DEPS}")
endif()
if (NOT CGAL_Qt6_FOUND)
set(MISSING_DEPS "the CGAL Qt6 component, ${MISSING_DEPS}")
endif()
if (NOT Qt6_FOUND)
set(MISSING_DEPS "the Qt6 library, ${MISSING_DEPS}")
endif()
if (NOT nlohmann_json_FOUND)
set(MISSING_DEPS "JSON for Modern C++ 3.9+ (know as nlohmann_json), ${MISSING_DEPS}")
endif()
if (MISSING_DEPS)
message(STATUS "NOTICE: This project requires ${MISSING_DEPS}and will not be compiled.")
return()
endif()
add_compile_definitions(QT_NO_VERSION_TAGGING)

View File

@ -62,7 +62,7 @@ void GUI_country_pick_handler::mouse_press_event(QMouseEvent* e) {
auto sd = sqrt(d);
auto t1 = (-b - sd) / (2 * a);
auto t2 = (-b + sd) / (2 * a);
if (t1 > 0 && t2 > 0) ti = std::min(t1, t2);
if (t1 > 0 && t2 > 0) ti = (std::min)(t1, t2);
else if (t1 > 0) ti = t1;
else ti = t2;
}

View File

@ -140,7 +140,7 @@ void Main_widget::initializeGL() {
for (auto& [country_name, triangle_points] : country_triangles_map) {
auto country_triangles = std::make_unique<Triangles>(triangle_points);
auto color = QVector4D(rndm(), rndm(), rndm(), 1);
auto m = std::max(color.x(), std::max(color.y(), color.z()));
auto m = (std::max)(color.x(), (std::max)(color.y(), color.z()));
color /= m;
color *= m_dimming_factor;
color.setW(1);

View File

@ -973,6 +973,7 @@ public:
* u_1\f$ to \f$ u_2\f$.
* \pre `e1` and `e2` share a common end-vertex, such that the two other
* end-vertices of the two edges are associated with `c`'s endpoints.
* \pre `e1` and `e2` have the same direction.
*/
Halfedge_handle merge_edge(Halfedge_handle e1,
Halfedge_handle e2,

View File

@ -66,7 +66,6 @@ namespace ArrTraits {}
/*!
\addtogroup PkgArrangementOnSurface2Ref
\todo check generated documentation
\cgalPkgDescriptionBegin{2D Arrangements,PkgArrangementOnSurface2}
\cgalPkgPicture{Arrangement_2.png}
\cgalPkgSummaryBegin

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Arrangement_on_surface_2_Examples)
find_package(CGAL REQUIRED COMPONENTS Core OPTIONAL_COMPONENTS Qt6)

View File

@ -411,7 +411,7 @@ public:
m_object(base.construct_opposite_2_object()), m_counter(counter) {}
/*! operates */
X_monotone_curve_2 operator()(const X_monotone_curve_2& xc)
X_monotone_curve_2 operator()(const X_monotone_curve_2& xc) const
{ ++m_counter; return m_object(xc); }
};
@ -429,7 +429,7 @@ public:
m_object(base.compare_endpoints_xy_2_object()), m_counter(counter) {}
/*! operates */
Comparison_result operator()(const X_monotone_curve_2& xc)
Comparison_result operator()(const X_monotone_curve_2& xc) const
{ ++m_counter; return m_object(xc); }
};

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Arrangement_on_surface_2_Tests)
enable_testing()

View File

@ -88,7 +88,7 @@ boost::graph_traits<Graph>::edge_iterator ei;
Algorithms obtain incidence information in graphs with the help of global
functions such as:
- `std::pair<vertex_iterator,vertex_iterator> vertices(const Graph& g);` to obtain an iterator range providing access to all the vertices, or
- `int num_vertices(const Graph&);` to obtain the number of vertices of a graph, or
- `vertices_size_type num_vertices(const Graph&);` to obtain the number of vertices of a graph, or
- `vertex_descriptor source(edge_descriptor, const Graph&);` to obtain the source vertex of an edge.
Note, that the way we have written the types is a simplification; in reality,

View File

@ -40,6 +40,6 @@ faces(const FaceListGraph& g);
This is the case for implementations only marking faces deleted in the face container.
*/
template <typename FaceListGraph>
boost::graph_traits<FaceListGraph>::face_size_type
boost::graph_traits<FaceListGraph>::faces_size_type
num_faces(const FaceListGraph& g);

View File

@ -40,6 +40,6 @@ halfedges(const HalfedgeListGraph& g);
This is the case for implementations only marking halfedges deleted in the halfedge container.
*/
template <typename HalfedgeListGraph>
boost::graph_traits<HalfedgeListGraph>::halfedge_size_type
boost::graph_traits<HalfedgeListGraph>::halfedges_size_type
num_halfedges(const HalfedgeListGraph& g);

View File

@ -741,6 +741,7 @@ user might encounter.
- `CGAL::Euler::join_vertex()`
- `CGAL::Euler::make_hole()`
- `CGAL::Euler::remove_center_vertex()`
- `CGAL::Euler::remove_degree_2_vertex()`
- `CGAL::Euler::remove_face()`
- `CGAL::Euler::split_edge()`
- `CGAL::Euler::split_face()`

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_CMakeLists
# This is the CMake script for compiling a set of CGAL applications.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(BGL_LCC_Examples)
# CGAL and its components

View File

@ -28,7 +28,7 @@ int main(int argc, char** argv)
// Here we start at an arbitrary vertex
// Any other vertex could be the starting point
vertex_iterator vb, ve;
boost::tie(vb,ve)=vertices(lcc);
std::tie(vb,ve)=vertices(lcc);
vertex_descriptor vd = *vb;
std::cout << "We compute distances to " << vd->point() << std::endl;
@ -45,7 +45,7 @@ int main(int argc, char** argv)
boost::on_tree_edge()))));
// Traverse all vertices and show at what distance they are
for(boost::tie(vb,ve)=vertices(lcc); vb!=ve; ++vb)
for(std::tie(vb,ve)=vertices(lcc); vb!=ve; ++vb)
{
vd = *vb;
std::cout<<vd->point()<<" is "<<distance[vd->id()]<<" hops away."<<std::endl;

View File

@ -40,7 +40,7 @@ OutputIterator adjacent_vertices_V2(const LCC& g,
OutputIterator out)
{
halfedge_around_target_iterator hi, he;
for(boost::tie(hi, he) = halfedges_around_target(halfedge(vd,g),g); hi != he; ++hi)
for(std::tie(hi, he) = halfedges_around_target(halfedge(vd,g),g); hi != he; ++hi)
{
*out++ = source(*hi,g);
}

View File

@ -41,7 +41,7 @@ void kruskal(const LCC& lcc)
"point [ \n";
vertex_iterator vb, ve;
for(boost::tie(vb,ve) = vertices(lcc); vb!=ve; ++vb){
for(std::tie(vb,ve) = vertices(lcc); vb!=ve; ++vb){
std::cout << (*vb)->point() << "\n";
}

View File

@ -31,7 +31,7 @@ void calculate_face_normals(const HalfedgeGraph& g,
typedef typename boost::property_traits<NormalMap>::value_type normal;
face_iterator fb, fe;
for(boost::tie(fb, fe) = faces(g); fb != fe; ++fb)
for(std::tie(fb, fe) = faces(g); fb != fe; ++fb)
{
halfedge_descriptor edg = halfedge(*fb, g);
halfedge_descriptor edgb = edg;

View File

@ -42,10 +42,10 @@ void fct(const LCC& lcc)
std::cout << vd->point() << std::endl;
}
std::cout << "boost::tie + std::for_each" << std::endl;
std::cout << "std::tie + std::for_each" << std::endl;
vertex_iterator vb, ve;
boost::tie(vb,ve) = vertices_range(lcc);
std::tie(vb,ve) = vertices_range(lcc);
std::for_each(vb,ve, Fct());
}

View File

@ -49,7 +49,7 @@ int main(int argc, char** argv)
typedef boost::transform_iterator<Source<LCC>,halfedge_around_target_iterator> adjacent_vertex_iterator;
halfedge_around_target_iterator hb,he;
boost::tie(hb,he) = halfedges_around_target(halfedge(vd,lcc),lcc);
std::tie(hb,he) = halfedges_around_target(halfedge(vd,lcc),lcc);
adjacent_vertex_iterator avib, avie;
avib = boost::make_transform_iterator(hb, Source<LCC>(lcc));
avie = boost::make_transform_iterator(he, Source<LCC>(lcc));

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_CMakeLists
# This is the CMake script for compiling a set of CGAL applications.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(BGL_OpenMesh_Examples)
# CGAL and its components

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(BGL_arrangement_2_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_CMakeLists
# This is the CMake script for compiling a set of CGAL applications.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(BGL_graphcut_Examples)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_CMakeLists
# This is the CMake script for compiling a set of CGAL applications.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(BGL_polyhedron_3_Examples)
# CGAL and its components

View File

@ -24,9 +24,9 @@ int main(int argc, char** argv) {
vertex_iterator vb, ve;
int index = 0;
// boost::tie assigns the first and second element of the std::pair
// std::tie assigns the first and second element of the std::pair
// returned by boost::vertices to the variables vit and ve
for(boost::tie(vb,ve)=vertices(P); vb!=ve; ++vb ){
for(std::tie(vb,ve)=vertices(P); vb!=ve; ++vb ){
vertex_descriptor vd = *vb;
vd->id() = index++;
}
@ -37,7 +37,7 @@ int main(int argc, char** argv) {
// Here we start at an arbitrary vertex
// Any other vertex could be the starting point
boost::tie(vb,ve)=vertices(P);
std::tie(vb,ve)=vertices(P);
vertex_descriptor vd = *vb;
std::cout << "We compute distances to " << vd->point() << std::endl;
@ -54,7 +54,7 @@ int main(int argc, char** argv) {
// Traverse all vertices and show at what distance they are
for(boost::tie(vb,ve)=vertices(P); vb!=ve; ++vb ){
for(std::tie(vb,ve)=vertices(P); vb!=ve; ++vb ){
vd = *vb;
std::cout << vd->point() << " is " << distance[vd->id()] << " hops away" << std::endl;
}

View File

@ -36,7 +36,7 @@ adjacent_vertices_V2(const Polyhedron& g,
{
halfedge_around_target_iterator hi, he;
for(boost::tie(hi, he) = halfedges_around_target(halfedge(vd,g),g); hi != he; ++hi)
for(std::tie(hi, he) = halfedges_around_target(halfedge(vd,g),g); hi != he; ++hi)
{
*out++ = source(*hi,g);
}

View File

@ -33,9 +33,9 @@ kruskal(const Polyhedron& P)
vertex_iterator vb, ve;
int index = 0;
// boost::tie assigns the first and second element of the std::pair
// std::tie assigns the first and second element of the std::pair
// returned by boost::vertices to the variables vb and ve
for(boost::tie(vb, ve)=vertices(P); vb!=ve; ++vb){
for(std::tie(vb, ve)=vertices(P); vb!=ve; ++vb){
vertex_index_pmap[*vb]= index++;
}
@ -59,7 +59,7 @@ kruskal(const Polyhedron& P)
" coord Coordinate {\n"
" point [ \n";
for(boost::tie(vb, ve) = vertices(P); vb!=ve; ++vb){
for(std::tie(vb, ve) = vertices(P); vb!=ve; ++vb){
std::cout << " " << (*vb)->point() << "\n";
}

View File

@ -41,7 +41,7 @@ kruskal( const Polyhedron& P)
"point [ \n";
vertex_iterator vb, ve;
for(boost::tie(vb,ve) = vertices(P); vb!=ve; ++vb){
for(std::tie(vb,ve) = vertices(P); vb!=ve; ++vb){
std::cout << (*vb)->point() << "\n";
}
@ -75,9 +75,9 @@ int main() {
vertex_iterator vb, ve;
int index = 0;
// boost::tie assigns the first and second element of the std::pair
// std::tie assigns the first and second element of the std::pair
// returned by boost::vertices to the variables vit and ve
for(boost::tie(vb,ve)=vertices(P); vb!=ve; ++vb ){
for(std::tie(vb,ve)=vertices(P); vb!=ve; ++vb ){
vertex_descriptor vd = *vb;
vd->id() = index++;
}

View File

@ -26,7 +26,7 @@ void calculate_face_normals(const HalfedgeGraph& g,
typedef typename boost::property_traits<NormalMap>::value_type normal;
face_iterator fb, fe;
for(boost::tie(fb, fe) = faces(g); fb != fe; ++fb)
for(std::tie(fb, fe) = faces(g); fb != fe; ++fb)
{
halfedge_descriptor edg = halfedge(*fb, g);
halfedge_descriptor edgb = edg;

View File

@ -40,10 +40,10 @@ void fct(const Polyhedron& p)
std::cout << vd->point() << std::endl;
}
std::cout << "boost::tie + std::for_each" << std::endl;
std::cout << "std::tie + std::for_each" << std::endl;
vertex_iterator vb, ve;
boost::tie(vb,ve) = vertices_range(p);
std::tie(vb,ve) = vertices_range(p);
std::for_each(vb,ve, Fct());
}

View File

@ -47,7 +47,7 @@ int main(int argc, char** argv)
typedef boost::transform_iterator<Source<Polyhedron>,halfedge_around_target_iterator> adjacent_vertex_iterator;
halfedge_around_target_iterator hb,he;
boost::tie(hb,he) = halfedges_around_target(halfedge(vd,P),P);
std::tie(hb,he) = halfedges_around_target(halfedge(vd,P),P);
adjacent_vertex_iterator avib, avie;
avib = boost::make_transform_iterator(hb, Source<Polyhedron>(P));
avie = boost::make_transform_iterator(he, Source<Polyhedron>(P));

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(BGL_surface_mesh_Examples)
find_package(CGAL REQUIRED)

View File

@ -51,7 +51,7 @@ int main(int argc, char** argv)
std::ofstream outxyz("out.xyz");
outxyz.precision(17);
boost::graph_traits<SM>::vertex_iterator vit, ve;
boost::tie(vit, ve) = vertices(sm);
std::tie(vit, ve) = vertices(sm);
for(; vit!=ve; ++vit)
{
if(get(vertex_pid_map, *vit) == 0)

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(BGL_triangulation_2_Examples)
find_package(CGAL REQUIRED)

View File

@ -306,7 +306,7 @@ edge(typename boost::graph_traits<Dual<P> >::vertex_descriptor u,
const Dual<P>& dual)
{
typename boost::graph_traits<Dual<P> >::out_edge_iterator e, e_end;
for(boost::tie(e, e_end) = out_edges(u, dual); e != e_end; ++e) {
for(std::tie(e, e_end) = out_edges(u, dual); e != e_end; ++e) {
if(target(*e, dual) == v)
return std::make_pair(*e, true);
}
@ -391,7 +391,7 @@ halfedge(typename boost::graph_traits<Dual<P> >::vertex_descriptor u,
const Dual<P>& dual)
{
typename boost::graph_traits<Dual<P> >::out_edge_iterator e, e_end;
for(boost::tie(e, e_end) = out_edges(u, dual); e != e_end; ++e) {
for(std::tie(e, e_end) = out_edges(u, dual); e != e_end; ++e) {
if(target(*e, dual) == v)
return std::make_pair(halfedge(*e, dual), true);
}

View File

@ -12,10 +12,6 @@
#ifndef CGAL_EULER_OPERATIONS_H
#define CGAL_EULER_OPERATIONS_H
#include <stdexcept>
#include <algorithm>
#include <vector>
#include <boost/graph/graph_traits.hpp>
#include <CGAL/boost/graph/properties.h>
@ -27,6 +23,10 @@
#include <boost/container/small_vector.hpp>
#include <algorithm>
#include <stdexcept>
#include <vector>
namespace CGAL {
/// \cond SKIP_IN_MANUAL
@ -136,7 +136,7 @@ join_vertex(typename boost::graph_traits<Graph>::halfedge_descriptor h,
CGAL_assertion( halfedge(v_to_remove, v, g).first == h );
halfedge_around_vertex_iterator ieb, iee;
for(boost::tie(ieb, iee) = halfedges_around_target(hop, g); ieb != iee; ++ieb) {
for(std::tie(ieb, iee) = halfedges_around_target(hop, g); ieb != iee; ++ieb) {
CGAL_assertion( target(*ieb,g) == v_to_remove);
set_target(*ieb ,v , g);
}
@ -615,7 +615,7 @@ bool can_add_face(const VertexRange& vrange, const PMesh& sm)
for(std::size_t i=0; i < N; ++i){
halfedge_descriptor hd;
bool found;
boost::tie(hd,found) = halfedge(face[i],face[i+1],sm);
std::tie(hd,found) = halfedge(face[i],face[i+1],sm);
if(found && (! is_border(hd,sm))){
return false;
}
@ -1149,7 +1149,7 @@ void make_hole(typename boost::graph_traits<Graph>::halfedge_descriptor h,
face_descriptor fd = face(h, g);
halfedge_around_face_iterator hafib, hafie;
for(boost::tie(hafib, hafie) = halfedges_around_face(h, g);
for(std::tie(hafib, hafie) = halfedges_around_face(h, g);
hafib != hafie;
++hafib){
CGAL_assertion(! is_border(opposite(*hafib,g),g));
@ -1361,7 +1361,7 @@ add_vertex_and_face_to_border(typename boost::graph_traits<Graph>::halfedge_desc
internal::set_border(he2,g);
CGAL::Halfedge_around_face_iterator<Graph> hafib,hafie;
for(boost::tie(hafib, hafie) = halfedges_around_face(ohe1, g);
for(std::tie(hafib, hafie) = halfedges_around_face(ohe1, g);
hafib != hafie;
++hafib){
set_face(*hafib, f, g);
@ -1421,7 +1421,7 @@ add_face_to_border(typename boost::graph_traits<Graph>::halfedge_descriptor h1,
internal::set_border(newhop, g);
CGAL::Halfedge_around_face_iterator<Graph> hafib,hafie;
for(boost::tie(hafib, hafie) = halfedges_around_face(newh, g);
for(std::tie(hafib, hafie) = halfedges_around_face(newh, g);
hafib != hafie;
++hafib){
set_face(*hafib, f, g);
@ -1458,7 +1458,7 @@ does_satisfy_link_condition(typename boost::graph_traits<Graph>::edge_descriptor
// The following loop checks the link condition for v0_v1.
// Specifically, that for every vertex 'k' adjacent to both 'p and 'q', 'pkq' is a face of the mesh.
//
for ( boost::tie(eb1,ee1) = halfedges_around_source(v0,g) ; eb1 != ee1 ; ++ eb1 )
for ( std::tie(eb1,ee1) = halfedges_around_source(v0,g) ; eb1 != ee1 ; ++ eb1 )
{
halfedge_descriptor v0_k = *eb1;
@ -1466,7 +1466,7 @@ does_satisfy_link_condition(typename boost::graph_traits<Graph>::edge_descriptor
{
vertex_descriptor k = target(v0_k,g);
for ( boost::tie(eb2,ee2) = halfedges_around_source(k,g) ; eb2 != ee2 ; ++ eb2 )
for ( std::tie(eb2,ee2) = halfedges_around_source(k,g) ; eb2 != ee2 ; ++ eb2 )
{
halfedge_descriptor k_v1 = *eb2;
@ -1866,10 +1866,95 @@ bool satisfies_link_condition(typename boost::graph_traits<Graph>::edge_descript
}
/// \endcond
#endif
/**
* removes the target vertex of `h`, merging its incident edges into a single edge linking
* the two vertices adjacent to the vertex being removed.
*
* \tparam Graph must be a model of `MutableFaceGraph`
*
* \param h halfedge descriptor
* \param g the graph
*
* \returns an halfedge linking the two vertices adjacent to the vertex being removed.
*
* \pre `degree(target(h, g), g) == 2`.
*
* \sa `remove_center_vertex()`
*/
template <typename Graph>
typename boost::graph_traits<Graph>::halfedge_descriptor
remove_degree_2_vertex(const typename boost::graph_traits<Graph>::halfedge_descriptor h,
Graph& g)
{
typedef boost::graph_traits<Graph> Traits;
typedef typename Traits::vertex_descriptor vertex_descriptor;
typedef typename Traits::halfedge_descriptor halfedge_descriptor;
typedef typename Traits::face_descriptor face_descriptor;
CGAL_precondition(degree(target(h, g), g) == 2);
vertex_descriptor v = target(h, g);
halfedge_descriptor h1 = h;
halfedge_descriptor h2 = opposite(next(h1, g), g);
if(is_border(h1, g))
std::swap(h1, h2);
vertex_descriptor v1 = source(h1, g);
vertex_descriptor v2 = source(h2, g);
bool exists;
halfedge_descriptor huv;
std::tie(huv, exists) = halfedge(v1, v2, g);
if(is_border(h2, g))
{
CGAL_assertion(!is_border(h1, g));
if(exists)
{
Euler::remove_face(h1, g);
return huv;
}
else
{
halfedge_descriptor oh1 = opposite(h1, g);
halfedge_descriptor nnh1 = next(next(h1, g), g);
halfedge_descriptor ph2 = prev(h2, g);
face_descriptor f1 = face(h1, g);
set_target(h1, v2, g);
set_halfedge(v2, ph2, g);
set_next(h1, nnh1, g);
set_next(ph2, oh1, g);
set_halfedge(f1, h1, g); // in case it was nh1
remove_edge(edge(h2, g), g);
remove_vertex(v, g);
return h1;
}
}
else
{
CGAL_assertion(!is_border(h1, g) && !is_border(h2, g));
halfedge_descriptor ph1 = prev(h1, g);
halfedge_descriptor ph2 = prev(h2, g);
Euler::remove_center_vertex(h, g);
if(exists)
return huv;
else
return Euler::split_face(ph1, ph2, g);
}
}
/// @}
} // namespace Euler
} // namespace CGAL
#endif /* CGAL_EULER_OPERATIONS_H */

View File

@ -895,7 +895,7 @@ vertices(const Face_filtered_graph<Graph, FIMap, VIMap, HIMap> & w)
typename Face_filtered_graph<Graph, FIMap, VIMap, HIMap> ::Is_simplex_valid predicate(&w);
g_vertex_iterator b,e;
boost::tie(b,e) = vertices(w.graph());
std::tie(b,e) = vertices(w.graph());
return make_range(vertex_iterator(predicate, b, e),
vertex_iterator(predicate, e, e));
}
@ -912,7 +912,7 @@ edges(const Face_filtered_graph<Graph, FIMap, VIMap, HIMap> & w)
typename Face_filtered_graph<Graph, FIMap, VIMap, HIMap> ::Is_simplex_valid predicate(&w);
g_edge_iterator b,e;
boost::tie(b,e) = edges(w.graph());
std::tie(b,e) = edges(w.graph());
return make_range(edge_iterator(predicate, b, e),
edge_iterator(predicate, e, e));
}
@ -931,7 +931,7 @@ out_edges(typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap,
typename Face_filtered_graph<Graph, FIMap, VIMap, HIMap> ::Is_simplex_valid predicate(&w);
g_out_edge_iterator b,e;
boost::tie(b,e) = out_edges(v, w.graph());
std::tie(b,e) = out_edges(v, w.graph());
return make_range(out_edge_iterator(predicate, b, e),
out_edge_iterator(predicate, e, e));
}
@ -950,7 +950,7 @@ in_edges(typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, H
typename Face_filtered_graph<Graph, FIMap, VIMap, HIMap> ::Is_simplex_valid predicate(&w);
g_in_edge_iterator b,e;
boost::tie(b,e) = in_edges(v, w.graph());
std::tie(b,e) = in_edges(v, w.graph());
return make_range(in_edge_iterator(predicate, b, e),
in_edge_iterator(predicate, e, e));
}

View File

@ -310,7 +310,7 @@ edge(typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::ver
CGAL_assertion(in_same_graph(v,w));
bool b;
g_edge_descriptor ed;
boost::tie(ed,b) = edge(u.descriptor, v.descriptor, *w.graph);
std::tie(ed,b) = edge(u.descriptor, v.descriptor, *w.graph);
return std::make_pair(edge_descriptor(ed,*w.graph),b);
}
@ -320,7 +320,7 @@ CGAL::Iterator_range<typename boost::graph_traits<Graph_with_descriptor_with_gra
vertices(const Graph_with_descriptor_with_graph<Graph> & w)
{
typename boost::graph_traits<Graph>::vertex_iterator b,e;
boost::tie(b,e) = vertices(*w.graph);
std::tie(b,e) = vertices(*w.graph);
return std::make_pair(boost::make_transform_iterator(b,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::V2V(*w.graph)),
boost::make_transform_iterator(e,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::V2V(*w.graph)));
}
@ -330,7 +330,7 @@ CGAL::Iterator_range<typename boost::graph_traits<Graph_with_descriptor_with_gra
edges(const Graph_with_descriptor_with_graph<Graph> & w)
{
typename boost::graph_traits<Graph>::edge_iterator b,e;
boost::tie(b,e) = edges(*w.graph);
std::tie(b,e) = edges(*w.graph);
return std::make_pair(boost::make_transform_iterator(b,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::E2E(*w.graph)),
boost::make_transform_iterator(e,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::E2E(*w.graph)));
}
@ -342,7 +342,7 @@ out_edges(typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >
{
CGAL_assertion(in_same_graph(v,w));
typename boost::graph_traits<Graph>::out_edge_iterator b,e;
boost::tie(b,e) = out_edges(v.descriptor, *w.graph);
std::tie(b,e) = out_edges(v.descriptor, *w.graph);
return std::make_pair(boost::make_transform_iterator(b,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::E2E(*w.graph)),
boost::make_transform_iterator(e,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::E2E(*w.graph)));
}
@ -354,7 +354,7 @@ in_edges(typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >:
{
CGAL_assertion(in_same_graph(v,w));
typename boost::graph_traits<Graph>::in_edge_iterator b,e;
boost::tie(b,e) = in_edges(v.descriptor, *w.graph);
std::tie(b,e) = in_edges(v.descriptor, *w.graph);
return std::make_pair(boost::make_transform_iterator(b,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::E2E(*w.graph)),
boost::make_transform_iterator(e,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::E2E(*w.graph)));
}
@ -557,7 +557,7 @@ halfedge(typename boost::graph_traits< Graph_with_descriptor_with_graph<Graph> >
bool b;
CGAL_assertion(in_same_graph(u,w));
CGAL_assertion(in_same_graph(v,w));
boost::tie(hd,b) = halfedge(u.descriptor, v.descriptor, *w.graph);
std::tie(hd,b) = halfedge(u.descriptor, v.descriptor, *w.graph);
return std::make_pair(halfedge_descriptor(hd,*w.graph),b);
}
@ -621,7 +621,7 @@ CGAL::Iterator_range<typename boost::graph_traits<Graph_with_descriptor_with_gra
halfedges(const Graph_with_descriptor_with_graph<Graph> & w)
{
typename boost::graph_traits<Graph>::halfedge_iterator b,e;
boost::tie(b,e) = halfedges(*w.graph);
std::tie(b,e) = halfedges(*w.graph);
return std::make_pair(boost::make_transform_iterator(b, typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::H2H(*w.graph)),
boost::make_transform_iterator(e, typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::H2H(*w.graph)));
}
@ -661,7 +661,7 @@ CGAL::Iterator_range<typename boost::graph_traits<Graph_with_descriptor_with_gra
faces(const Graph_with_descriptor_with_graph<Graph> & w)
{
typename boost::graph_traits<Graph>::face_iterator b,e;
boost::tie(b,e) = faces(*w.graph);
std::tie(b,e) = faces(*w.graph);
return std::make_pair(boost::make_transform_iterator(b,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::F2F(*w.graph)),
boost::make_transform_iterator(e,typename boost::graph_traits<Graph_with_descriptor_with_graph<Graph> >::F2F(*w.graph)));
}

View File

@ -61,7 +61,7 @@ void partition_dual_graph(const TriangleMesh& tm,
// fill the adjacency info
face_iterator fit, fe;
boost::tie(fit, fe) = faces(tm);
std::tie(fit, fe) = faces(tm);
for(int i=0, j=0; fit!=fe; ++fit, ++i)
{
eptr[i] = j;

View File

@ -47,7 +47,7 @@ struct Output_vertex_partition_ids
VertexPartitionIDPmap vertex_partition_id_map)
{
typename boost::graph_traits<TriangleMesh>::vertex_iterator vit, ve;
boost::tie(vit, ve) = vertices(tm);
std::tie(vit, ve) = vertices(tm);
for(; vit!=ve; ++vit)
put(vertex_partition_id_map, *vit, npart[get(indices, *vit)]);
}
@ -64,7 +64,7 @@ struct Output_face_partition_ids
FacePartitionIDPmap face_partition_id_map)
{
typename boost::graph_traits<TriangleMesh>::face_iterator fit, fe;
boost::tie(fit, fe) = faces(tm);
std::tie(fit, fe) = faces(tm);
for(int i=0; fit!=fe; ++fit, ++i)
put(face_partition_id_map, *fit, epart[i]);
}
@ -98,7 +98,7 @@ void partition_graph(const TriangleMesh& tm,
// fill the adjacency info
face_iterator fit, fe;
boost::tie(fit, fe) = faces(tm);
std::tie(fit, fe) = faces(tm);
for(int i=0, j=0; fit!=fe; ++fit, ++i)
{
eptr[i] = j;

View File

@ -238,7 +238,7 @@ public:
// initialize vertex indices, it is necessary since we are using VertexList = listS
Vertex_iterator v_begin, v_end;
Traits::vertices_size_type index = 0;
for(boost::tie(v_begin, v_end) = vertices(graph); v_begin != v_end; ++v_begin) {
for(std::tie(v_begin, v_end) = vertices(graph); v_begin != v_end; ++v_begin) {
boost::put(boost::vertex_index, graph, *v_begin, index++);
}
}
@ -269,8 +269,8 @@ public:
Edge_descriptor v1_v2, v2_v1;
bool v1_v2_added, v2_v1_added;
boost::tie(v1_v2, v1_v2_added) = boost::add_edge(v1, v2, graph);
boost::tie(v2_v1, v2_v1_added) = boost::add_edge(v2, v1, graph);
std::tie(v1_v2, v1_v2_added) = boost::add_edge(v1, v2, graph);
std::tie(v2_v1, v2_v1_added) = boost::add_edge(v2, v1, graph);
CGAL_assertion(v1_v2_added && v2_v1_added);
//put edge capacities
@ -360,7 +360,7 @@ public:
// however from our edge_map, we know that each (2i, 2i + 1) is reverse pairs, how to facilitate that ?
// will look it back
Graph::edge_iterator ei, ee;
for(boost::tie(ei, ee) = boost::edges(graph); ei != ee; ++ei) {
for(std::tie(ei, ee) = boost::edges(graph); ei != ee; ++ei) {
Graph::vertex_descriptor v1 = boost::source(*ei, graph);
Graph::vertex_descriptor v2 = boost::target(*ei, graph);
std::pair<Graph::edge_descriptor, bool> opp_edge = boost::edge(v2, v1, graph);

View File

@ -65,7 +65,7 @@ is_border(typename boost::graph_traits<FaceGraph>::vertex_descriptor vd,
const FaceGraph& g)
{
CGAL::Halfedge_around_target_iterator<FaceGraph> havib, havie;
for(boost::tie(havib, havie) = halfedges_around_target(halfedge(vd, g), g); havib != havie; ++havib) {
for(std::tie(havib, havie) = halfedges_around_target(halfedge(vd, g), g); havib != havie; ++havib) {
if(is_border(*havib,g)) {
typename boost::graph_traits<FaceGraph>::halfedge_descriptor h = *havib;
return h;

View File

@ -147,7 +147,7 @@ void duplicate_terminal_vertices(Graph& graph,
typedef typename boost::graph_traits<Graph>::out_edge_iterator out_edge_iterator;
vertex_iterator b,e;
boost::tie(b,e) = vertices(graph);
std::tie(b,e) = vertices(graph);
std::vector<vertex_descriptor> V(b,e);
for(vertex_descriptor v : V)
{
@ -156,7 +156,7 @@ void duplicate_terminal_vertices(Graph& graph,
if (deg != 2 || is_terminal(orig_v, orig))
{
out_edge_iterator b, e;
boost::tie(b, e) = out_edges(v, graph);
std::tie(b, e) = out_edges(v, graph);
std::vector<edge_descriptor> out_edges_of_v(b, e);
for (unsigned int i = 1; i < out_edges_of_v.size(); ++i)
{

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script_with_options
# This is the CMake script for compiling a set of CGAL applications.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(BGL_Tests)
# CGAL and its components

View File

@ -0,0 +1,52 @@
OFF
29 19 0
0 0 0
0.20000000000000001 0 0
0.40000000000000002 0 0
0.59999999999999998 0 0
0.80000000000000004 0 0
1 0 0
0 0.20000000000000001 0
0.20000000000000001 0.20000000000000001 0
0 1 0
0.59999999999999998 0.20000000000000001 0
0.80000000000000004 0.20000000000000001 0
1 0.20000000000000001 0
0 0.40000000000000002 0
0.20000000000000001 1 0
0.40000000000000002 0.40000000000000002 0
0.59999999999999998 0.40000000000000002 0
1 1 0
1 0.40000000000000002 0
0 0.59999999999999998 0
1 0.80000000000000004 0
0.59999999999999998 1 0
0.59999999999999998 0.59999999999999998 0
0.80000000000000004 1 0
1 0.59999999999999998 0
0 0.80000000000000004 0
0.20000000000000001 0.80000000000000004 0
0.40000000000000002 1 0
0.59999999999999998 0.80000000000000004 0
0.80000000000000004 0.80000000000000004 0
4 1 7 6 0
3 28 19 22
3 6 7 12
3 4 10 9
3 3 4 9
3 27 20 26
3 9 15 14
3 5 11 10
3 24 25 8
3 25 13 8
3 1 2 7
8 17 23 28 27 21 15 10 11
3 9 10 15
3 19 16 22
12 25 24 18 12 7 2 3 9 14 15 21 27
3 4 5 10
3 28 22 20
3 27 28 20
3 23 19 28

View File

@ -1,12 +1,15 @@
#include "test_Prefix.h"
#include <boost/range/distance.hpp>
#include <CGAL/boost/graph/Euler_operations.h>
#include <CGAL/boost/graph/generators.h>
#include <CGAL/boost/graph/copy_face_graph.h>
#include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/Polygon_mesh_processing/border.h>
#include <CGAL/IO/OFF.h>
#include <CGAL/Polygon_mesh_processing/border.h>
#include <CGAL/boost/graph/copy_face_graph.h>
#include <boost/range/distance.hpp>
template <typename T>
void
@ -97,7 +100,7 @@ join_face_test()
bool found;
halfedge_descriptor e;
boost::tie(e, found) = halfedge(f.w, f.v, f.m);
std::tie(e, found) = halfedge(f.w, f.v, f.m);
assert(found);
// manually set the halfedge of f.f1 to the edge that is to be
// removed to provoke a special case
@ -108,7 +111,7 @@ join_face_test()
assert(CGAL::internal::exact_num_edges(f.m) == 6);
CGAL::Halfedge_around_face_iterator<T> begin, end;
boost::tie(begin, end) = CGAL::halfedges_around_face(halfedge(f.f1, f.m), f.m);
std::tie(begin, end) = CGAL::halfedges_around_face(halfedge(f.f1, f.m), f.m);
assert(std::distance(begin, end) == 4);
for(; begin != end; ++begin)
{
@ -119,7 +122,7 @@ join_face_test()
}
face_iterator fit, fend;
for(boost::tie(fit, fend) = faces(f.m); fit != fend; ++fit) {
for(std::tie(fit, fend) = faces(f.m); fit != fend; ++fit) {
assert(*fit == f.f1 || *fit == f.f3);
}
@ -141,7 +144,7 @@ remove_face_test_1()
// find the edge between x and y
bool found;
halfedge_descriptor e;
boost::tie(e, found) = halfedge(f.x, f.y, f.m);
std::tie(e, found) = halfedge(f.x, f.y, f.m);
assert(found);
assert(face(e, f.m) == f.f3);
@ -156,7 +159,7 @@ remove_face_test_1()
assert_EQUAL(CGAL::internal::exact_num_vertices(f.m) == 4);
halfedge_iterator eb, ee;
int count = 0;
for(boost::tie(eb, ee) = halfedges(f.m); eb != ee; ++eb) {
for(std::tie(eb, ee) = halfedges(f.m); eb != ee; ++eb) {
if(face(*eb,f.m) == boost::graph_traits<T>::null_face())
++count;
}
@ -177,9 +180,9 @@ remove_face_test_2()
bool found;
halfedge_descriptor e;
boost::tie(e, found) = halfedge(f.x, f.w, f.m);
std::tie(e, found) = halfedge(f.x, f.w, f.m);
assert(found);
boost::tie(e, found) = halfedge(f.x, f.v, f.m);
std::tie(e, found) = halfedge(f.x, f.v, f.m);
assert(found);
assert(face(e, f.m) == f.f1);
CGAL::Euler::remove_face(e,f.m);
@ -189,7 +192,7 @@ remove_face_test_2()
assert(CGAL::internal::exact_num_edges(f.m) == 7);
assert(CGAL::internal::exact_num_vertices(f.m) == 5);
boost::tie(e, found) = halfedge(f.x, f.w, f.m);
std::tie(e, found) = halfedge(f.x, f.w, f.m);
assert(found);
assert(face(e,f.m) == boost::graph_traits<T>::null_face());
@ -266,7 +269,7 @@ join_vertex_interior_test()
halfedge_descriptor e;
bool found;
boost::tie(e, found) = halfedge(f.w, f.x, f.m);
std::tie(e, found) = halfedge(f.w, f.x, f.m);
assert(found);
CGAL::Euler::join_vertex(e,f.m);
assert(CGAL::internal::exact_num_faces(f.m) == 2);
@ -289,7 +292,7 @@ join_vertex_exterior_test()
Surface_fixture_3<T> f;
halfedge_descriptor e;
bool found;
boost::tie(e, found) = halfedge(f.w, f.y, f.m);
std::tie(e, found) = halfedge(f.w, f.y, f.m);
assert(source(e,f.m) == f.w);
assert(target(e,f.m) == f.y);
assert(found);
@ -307,7 +310,7 @@ join_vertex_exterior_test()
Surface_fixture_3<T> f;
halfedge_descriptor e;
bool found;
boost::tie(e, found) = halfedge(f.y, f.w, f.m);
std::tie(e, found) = halfedge(f.y, f.w, f.m);
assert(source(e,f.m) == f.y);
assert(target(e,f.m) == f.w);
@ -335,9 +338,9 @@ split_vertex()
Surface_fixture_3<T> f;
halfedge_descriptor h1, h2;
bool found;
boost::tie(h1, found) = halfedge(f.w, f.y, f.m);
std::tie(h1, found) = halfedge(f.w, f.y, f.m);
assert(found);
boost::tie(h2, found) = halfedge(f.z, f.y, f.m);
std::tie(h2, found) = halfedge(f.z, f.y, f.m);
assert(found);
assert(face(h2, f.m) == Traits::null_face());
@ -358,13 +361,13 @@ split_join_vertex_inverse()
Surface_fixture_3<T> f;
halfedge_descriptor h, h1, h2;
bool found;
boost::tie(h, found) = halfedge(f.w, f.x, f.m);
std::tie(h, found) = halfedge(f.w, f.x, f.m);
assert(found);
CGAL::Euler::join_vertex(h,f.m);
assert(CGAL::is_valid_polygon_mesh(f.m));
boost::tie(h1, found) = halfedge(f.z, f.x, f.m);
std::tie(h1, found) = halfedge(f.z, f.x, f.m);
assert(found);
boost::tie(h2, found) = halfedge(f.v, f.x, f.m);
std::tie(h2, found) = halfedge(f.v, f.x, f.m);
assert(found);
CGAL::Euler::join_vertex(CGAL::Euler::split_vertex(h1, h2,f.m),f.m);
assert(CGAL::is_valid_polygon_mesh(f.m));
@ -448,6 +451,67 @@ remove_center_vertex_test()
assert(CGAL::internal::exact_num_halfedges(f.m) == nh-(2*deg));
}
template <typename T>
void
remove_degree_2_vertex_test()
{
CGAL_GRAPH_TRAITS_MEMBERS(T);
// vertex at .first should be removable, and after removal,
// there should .second[0] nv, .second[1] ne, and .second[2] nf
// anything not in the map should not be removable
std::map<std::size_t, std::array<std::size_t, 3> > removable;
removable[0] = CGAL::make_array<std::size_t>(28, 92, 19);
removable[13] = CGAL::make_array<std::size_t>(28, 90, 18);
removable[14] = CGAL::make_array<std::size_t>(28, 90, 18);
removable[16] = CGAL::make_array<std::size_t>(28, 90, 18);
removable[17] = CGAL::make_array<std::size_t>(28, 92, 19);
removable[18] = CGAL::make_array<std::size_t>(28, 92, 19);
removable[21] = CGAL::make_array<std::size_t>(28, 92, 19);
removable[26] = CGAL::make_array<std::size_t>(28, 90, 18);
auto test = [&removable](const std::size_t hi) // intentional copy of 'm'
{
T m;
const bool ok = CGAL::IO::read_polygon_mesh("data/degree_2_collection.off", m);
assert(ok);
assert(CGAL::is_valid_polygon_mesh(m));
auto vim = CGAL::get_initialized_vertex_index_map(m);
const halfedge_descriptor h = *(std::next(halfedges(m).begin(), hi));
const vertex_descriptor v = target(h, m);
auto vid = get(vim, v);
if(degree(v, m) != 2)
{
assert(removable.count(vid) == 0);
return;
}
const halfedge_descriptor res = CGAL::Euler::remove_degree_2_vertex(h, m);
assert(res != boost::graph_traits<T>::null_halfedge());
const std::array<std::size_t, 3>& ns = removable.at(vid);
assert(ns[0] == vertices(m).size());
assert(ns[1] == halfedges(m).size());
assert(ns[2] == faces(m).size());
};
T m;
const bool ok = CGAL::IO::read_polygon_mesh("data/degree_2_collection.off", m);
assert(ok);
assert(CGAL::is_valid_polygon_mesh(m));
std::size_t nv = num_vertices(m);
std::size_t nh = num_halfedges(m);
std::size_t nf = num_faces(m);
assert(nv == 29 && nh == 94 && nf == 19);
for(std::size_t hi=0; hi<num_halfedges(m); ++hi)
test(hi);
}
template <typename T>
void
join_split_inverse()
@ -670,6 +734,8 @@ template <typename Graph>
void
test_Euler_operations()
{
std::cout << "== Test with Graph: " << typeid(Graph).name() << std::endl;
test_copy_face_graph_nm_umbrella<Graph>();
test_copy_face_graph_isolated_vertices<Graph>();
join_face_test<Graph>();
@ -684,6 +750,7 @@ test_Euler_operations()
split_face_test<Graph>();
make_hole_test<Graph>();
remove_center_vertex_test<Graph>();
remove_degree_2_vertex_test<Graph>();
join_split_inverse<Graph>();
does_satisfy_link_condition<Graph>();
test_swap_edges<Graph>();

View File

@ -29,9 +29,9 @@ void test_halfedge_around_vertex_iterator(const Graph& g)
Adapter fg(g, 0, boost::make_assoc_property_map(map));
typename boost::graph_traits<Adapter >::vertex_iterator vit, vend;
for(boost::tie(vit, vend) = vertices(fg); vit != vend; ++vit) {
for(std::tie(vit, vend) = vertices(fg); vit != vend; ++vit) {
halfedge_around_target_iterator havit, havend;
for(boost::tie(havit, havend) = CGAL::halfedges_around_target(halfedge(*vit, fg), fg);
for(std::tie(havit, havend) = CGAL::halfedges_around_target(halfedge(*vit, fg), fg);
havit != havend; ++havit) {
assert(target(*havit, fg) == *vit);
@ -56,11 +56,11 @@ void test_halfedge_around_face_iterator(const Graph& g)
Adapter fg(g, 0, boost::make_assoc_property_map(map));
face_iterator fit, fend;
for(boost::tie(fit, fend) = faces(fg); fit != fend; ++fit) {
for(std::tie(fit, fend) = faces(fg); fit != fend; ++fit) {
halfedge_around_face_iterator hafit, hafend;
boost::tie(hafit, hafend) = CGAL::halfedges_around_face(halfedge(*fit, fg), fg);
std::tie(hafit, hafend) = CGAL::halfedges_around_face(halfedge(*fit, fg), fg);
assert(std::distance(hafit, hafend) != 0);
for(boost::tie(hafit, hafend) = CGAL::halfedges_around_face(halfedge(*fit, fg), fg); hafit != hafend; ++hafit) {
for(std::tie(hafit, hafend) = CGAL::halfedges_around_face(halfedge(*fit, fg), fg); hafit != hafend; ++hafit) {
assert(face(*hafit, fg) == *fit);
}
}
@ -78,11 +78,11 @@ void test_edge_iterators(const Graph& g)
// do we iterate as many as that?
edge_iterator eb, ee;
boost::tie(eb, ee) = edges(fg);
std::tie(eb, ee) = edges(fg);
assert(static_cast<edges_size_type>(std::distance(eb, ee)) == num_edges(g));
id_map ids;
unsigned int count = 0;
for(boost::tie(eb, ee) = edges(fg); eb != ee; ++eb) {
for(std::tie(eb, ee) = edges(fg); eb != ee; ++eb) {
edge_descriptor e = *eb;
std::pair<id_map::iterator, bool> r = ids.insert(get(boost::edge_index, g, e));
// unique?
@ -103,7 +103,7 @@ void test_vertex_iterators(Graph& g)
Adapter fg(g, 0, boost::make_assoc_property_map(map));
vertex_iterator vb, ve;
std::size_t count = 0;
for(boost::tie(vb, ve) = vertices(fg); vb != ve; ++vb){
for(std::tie(vb, ve) = vertices(fg); vb != ve; ++vb){
++count;
}
@ -113,7 +113,7 @@ void test_vertex_iterators(Graph& g)
id_map ids;
count = 0;
for(boost::tie(vb, ve) = vertices(fg); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(fg); vb != ve; ++vb) {
std::pair<id_map::iterator, bool> r = ids.insert(get(boost::vertex_index, g, *vb));
assert(r.second);
++count;
@ -133,12 +133,12 @@ void test_out_edges(const Graph& g)
Adapter fg(g, 0, boost::make_assoc_property_map(map));
vertex_iterator vb, ve;
for(boost::tie(vb, ve) = vertices(fg); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(fg); vb != ve; ++vb) {
id_map v_ids;
vertex_descriptor around = *vb;
out_edge_iterator oeb, oee;
for(boost::tie(oeb, oee) = out_edges(*vb, fg); oeb != oee; ++oeb) {
for(std::tie(oeb, oee) = out_edges(*vb, fg); oeb != oee; ++oeb) {
vertex_descriptor t = target(*oeb, fg);
vertex_descriptor s = source(*oeb, fg);
assert(s != t);
@ -162,11 +162,11 @@ void test_in_edges(const Graph& g)
Adapter fg(g, 0, boost::make_assoc_property_map(map));
vertex_iterator vb, ve;
for(boost::tie(vb, ve) = vertices(fg); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(fg); vb != ve; ++vb) {
id_map v_ids;
vertex_descriptor around = *vb;
in_edge_iterator ieb, iee;
for(boost::tie(ieb, iee) = in_edges(*vb, fg); ieb != iee; ++ieb) {
for(std::tie(ieb, iee) = in_edges(*vb, fg); ieb != iee; ++ieb) {
vertex_descriptor t = target(*ieb, fg);
vertex_descriptor s = source(*ieb, fg);
assert(t == around);
@ -190,18 +190,18 @@ void test_in_out_edges(const Graph& g)
// check that the sets of in out edges are the same
vertex_iterator vb, ve;
for(boost::tie(vb, ve) = vertices(fg); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(fg); vb != ve; ++vb) {
id_map v_ids;
std::vector<vertex_descriptor> in, out;
in_edge_iterator ieb, iee;
for(boost::tie(ieb, iee) = in_edges(*vb, fg); ieb != iee; ++ieb) {
for(std::tie(ieb, iee) = in_edges(*vb, fg); ieb != iee; ++ieb) {
std::pair<id_map::iterator, bool> r =
v_ids.insert(get(boost::vertex_index, g, source(*ieb, fg)));
assert(r.second);
in.push_back(source(*ieb, fg));
}
out_edge_iterator oeb, oee;
for(boost::tie(oeb, oee) = out_edges(*vb, fg); oeb != oee; ++oeb) {
for(std::tie(oeb, oee) = out_edges(*vb, fg); oeb != oee; ++oeb) {
std::pair<id_map::iterator, bool> r =
v_ids.insert(get(boost::vertex_index, g, target(*oeb, fg)));
// insertion must fail
@ -232,7 +232,7 @@ void test_edge_find(const Graph& g)
typedef std::pair<edge_descriptor, bool> ret;
edge_iterator eb, ee;
for(boost::tie(eb, ee) = edges(fg); eb != ee; ++eb) {
for(std::tie(eb, ee) = edges(fg); eb != ee; ++eb) {
vertex_descriptor s = source(*eb, fg);
vertex_descriptor t = target(*eb, fg);
ret found = edge(s, t, fg);
@ -256,14 +256,14 @@ void test_faces(const Graph& g)
unsigned int count = 0;
face_iterator fb, fe;
for(boost::tie(fb, fe) = faces(fg); fb != fe; ++fb) {
for(std::tie(fb, fe) = faces(fg); fb != fe; ++fb) {
++count;
// reverse look-up
halfedge_descriptor assoc = halfedge(*fb, fg);
assert(face(assoc, fg) == *fb);
// check the enclosure
halfedge_around_face_iterator encb, ence;
for(boost::tie(encb, ence) = CGAL::halfedges_around_face(halfedge(*fb, fg), fg); encb != ence; ++encb) {
for(std::tie(encb, ence) = CGAL::halfedges_around_face(halfedge(*fb, fg), fg); encb != ence; ++encb) {
assert(face(*encb, fg) == *fb);
}
}

View File

@ -10,13 +10,29 @@ typedef Traits::edge_descriptor edge_descriptor;
typedef Traits::halfedge_descriptor halfedge_descriptor;
typedef Traits::vertex_descriptor vertex_descriptor;
typedef Traits::face_descriptor face_descriptor;
//typedef Kernel::Point_3 Point_3;
int main()
{
Om om;
for (Om::EdgeHandle ed : edges(om)) {
std::cout << "edge" << std::endl;
for (Om::EdgeHandle ed : edges(om))
{
CGAL_USE(ed);
}
for (edge_descriptor ed : edges(om))
{
CGAL_USE(ed);
}
for (halfedge_descriptor hd : halfedges(om))
{
CGAL_USE(hd);
}
for (face_descriptor fd : faces(om))
{
CGAL_USE(fd);
}
for (vertex_descriptor vd : vertices(om))
{
CGAL_USE(vd);
}
return 0;
}

View File

@ -238,7 +238,7 @@ struct Surface_fixture_1 {
pm = get(CGAL::vertex_point, const_cast<const Graph&>(m));
typename boost::graph_traits<Graph>::vertex_iterator vb, ve;
for(boost::tie(vb, ve) = vertices(m); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(m); vb != ve; ++vb) {
if (get(pm, *vb) == Point_3(0, 0, 0))
u = *vb;
else if(get(pm, *vb) == Point_3(1, 0, 0))
@ -259,13 +259,13 @@ struct Surface_fixture_1 {
f1 = CGAL::is_border(halfedge(u, m),m) ? face(opposite(halfedge(u, m), m), m) : face(halfedge(u, m), m);
assert(f1 != boost::graph_traits<Graph>::null_face());
CGAL::Halfedge_around_face_iterator<Graph> hafib, hafie;
for(boost::tie(hafib, hafie) = CGAL::halfedges_around_face(halfedge(f1, m), m); hafib != hafie; ++hafib)
for(std::tie(hafib, hafie) = CGAL::halfedges_around_face(halfedge(f1, m), m); hafib != hafie; ++hafib)
{
if(! CGAL::is_border(opposite(*hafib, m), m))
f2 = face(opposite(*hafib, m), m);
}
typename boost::graph_traits<Graph>::face_iterator fb, fe;
for(boost::tie(fb, fe) = faces(m); fb != fe; ++fb) {
for(std::tie(fb, fe) = faces(m); fb != fe; ++fb) {
if(*fb != f1 && *fb != f2)
f3 = *fb;
}
@ -289,7 +289,7 @@ struct Surface_fixture_2 {
pm = get(CGAL::vertex_point, const_cast<const Graph&>(m));
typename boost::graph_traits<Graph>::vertex_iterator vb, ve;
for(boost::tie(vb, ve) = vertices(m); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(m); vb != ve; ++vb) {
if (get(pm, *vb) == Point_3(0, 2, 0))
u = *vb;
else if(get(pm, *vb) == Point_3(2, 2, 0))
@ -308,25 +308,25 @@ struct Surface_fixture_2 {
assert(y != boost::graph_traits<Graph>::null_vertex());
typename boost::graph_traits<Graph>::halfedge_descriptor h;
bool found;
boost::tie(h, found) = halfedge(x, v, m);
std::tie(h, found) = halfedge(x, v, m);
assert(found);
assert(! CGAL::is_border(h,m));
f1 = face(h, m);
assert(f1 != boost::graph_traits<Graph>::null_face());
boost::tie(h, found) = halfedge(v, u, m);
std::tie(h, found) = halfedge(v, u, m);
assert(found);
assert(!CGAL::is_border(h,m));
f2 = face(h, m);
assert(f2 != boost::graph_traits<Graph>::null_face());
boost::tie(h, found) = halfedge(u, w, m);
std::tie(h, found) = halfedge(u, w, m);
assert(found);
assert(!CGAL::is_border(h,m));
f3 = face(h, m);
assert(f3 != boost::graph_traits<Graph>::null_face());
boost::tie(h, found) = halfedge(w, x, m);
std::tie(h, found) = halfedge(w, x, m);
assert(found);
assert(!CGAL::is_border(h,m));
f4 = face(h, m);
@ -351,7 +351,7 @@ struct Surface_fixture_3 {
pm = get(CGAL::vertex_point, const_cast<const Graph&>(m));
typename boost::graph_traits<Graph>::vertex_iterator vb, ve;
for(boost::tie(vb, ve) = vertices(m); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(m); vb != ve; ++vb) {
if (get(pm, *vb) == Point_3(0, 1, 0))
u = *vb;
else if(get(pm, *vb) == Point_3(0, 0, 0))
@ -399,7 +399,7 @@ struct Surface_fixture_4 {
int found = 0;
typename boost::graph_traits<Graph>::halfedge_iterator hb, he;
for(boost::tie(hb, he) = halfedges(m); hb != he; ++hb) {
for(std::tie(hb, he) = halfedges(m); hb != he; ++hb) {
if(CGAL::is_border(*hb,m)){
if(get(pm, target(*hb,m)) == Point_3(0,0,0)){
if(found == 0){
@ -435,7 +435,7 @@ struct Surface_fixture_5 {
int found = 0;
typename boost::graph_traits<Graph>::halfedge_iterator hb, he;
for(boost::tie(hb, he) = halfedges(m); hb != he; ++hb) {
for(std::tie(hb, he) = halfedges(m); hb != he; ++hb) {
if(CGAL::is_border(*hb,m)){
if(get(pm, target(*hb,m)) == Point_3(2,1,0)){
h1 = *hb;
@ -500,7 +500,7 @@ struct Surface_fixture_8 {
int found = 0;
typename boost::graph_traits<Graph>::halfedge_iterator hb, he;
for(boost::tie(hb, he) = halfedges(m); hb != he; ++hb) {
for(std::tie(hb, he) = halfedges(m); hb != he; ++hb) {
if(get(pm, source(*hb,m)) == Point_3(0,0,0) &&
get(pm, target(*hb,m)) == Point_3(1,0,0)){
h1 = *hb;
@ -521,8 +521,6 @@ struct Surface_fixture_8 {
Graph m;
typename boost::graph_traits<Graph>::halfedge_descriptor h1, h2, h3;
};
#endif /* CGAL_TEST_PREFIX_H */

View File

@ -42,13 +42,13 @@ int main()
{
out_edge_iterator b,e;
boost::tie(b,e) = out_edges(vd,dual);
std::tie(b,e) = out_edges(vd,dual);
std::cerr << vd << " " << source(*b,dual) << std::endl;
}
{
in_edge_iterator b,e;
boost::tie(b,e) = in_edges(vd,dual);
std::tie(b,e) = in_edges(vd,dual);
std::cerr << vd << " " << source(*b,dual) << std::endl;
}
std::cerr << "done"<< std::endl;

View File

@ -102,7 +102,7 @@ int main(int argc, char* argv[])
{
halfedge_around_target_iterator vit, end;
vertex_descriptor vd = target(hd,P);
boost::tie(vit,end) = halfedges_around_target(hd,P);
std::tie(vit,end) = halfedges_around_target(hd,P);
while(vit!= end) {
halfedge_descriptor hd = *vit;
assert(target(hd,P) == vd);
@ -113,7 +113,7 @@ int main(int argc, char* argv[])
{
halfedge_around_face_iterator vit, end;
boost::tie(vit,end) = halfedges_around_face(hd,P);
std::tie(vit,end) = halfedges_around_face(hd,P);
while(vit!= end) {
halfedge_descriptor hd = *vit;
@ -125,7 +125,7 @@ int main(int argc, char* argv[])
{
out_edge_iterator ohi, end;
for(boost::tie(ohi,end) = out_edges(target(hd,P),P); ohi != end; ++ohi){
for(std::tie(ohi,end) = out_edges(target(hd,P),P); ohi != end; ++ohi){
edge_descriptor ed = *ohi;
halfedge_descriptor hd2 = halfedge(ed,P);
std::cout << get(CGAL::vertex_point, P, target(hd2,P)) << std::endl;

View File

@ -26,9 +26,9 @@ void test_halfedge_around_vertex_iterator(const Graph& g)
{
CGAL_GRAPH_TRAITS_MEMBERS(Graph);
vertex_iterator vit, vend;
for(boost::tie(vit, vend) = vertices(g); vit != vend; ++vit) {
for(std::tie(vit, vend) = vertices(g); vit != vend; ++vit) {
halfedge_around_target_iterator havit, havend;
for(boost::tie(havit, havend) = CGAL::halfedges_around_target(halfedge(*vit, g), g);
for(std::tie(havit, havend) = CGAL::halfedges_around_target(halfedge(*vit, g), g);
havit != havend; ++havit) {
assert(target(*havit, g) == *vit);
@ -47,11 +47,11 @@ void test_halfedge_around_face_iterator(const Graph& g)
{
CGAL_GRAPH_TRAITS_MEMBERS(Graph);
face_iterator fit, fend;
for(boost::tie(fit, fend) = faces(g); fit != fend; ++fit) {
for(std::tie(fit, fend) = faces(g); fit != fend; ++fit) {
halfedge_around_face_iterator hafit, hafend;
boost::tie(hafit, hafend) = CGAL::halfedges_around_face(halfedge(*fit, g), g);
std::tie(hafit, hafend) = CGAL::halfedges_around_face(halfedge(*fit, g), g);
assert(std::distance(hafit, hafend) != 0);
for(boost::tie(hafit, hafend) = CGAL::halfedges_around_face(halfedge(*fit, g), g); hafit != hafend; ++hafit) {
for(std::tie(hafit, hafend) = CGAL::halfedges_around_face(halfedge(*fit, g), g); hafit != hafend; ++hafit) {
assert(face(*hafit, g) == *fit);
}
}
@ -66,12 +66,12 @@ void test_halfedge_iterators(const G& g)
// do we iterate as many as that?
halfedge_iterator hb, he;
boost::tie(hb, he) = halfedges(g);
std::tie(hb, he) = halfedges(g);
assert(static_cast<halfedges_size_type>(std::distance(hb, he)) == num_halfedges(g));
id_map ids;
unsigned int count = 0;
for(boost::tie(hb, he) = halfedges(g); hb != he; ++hb) {
for(std::tie(hb, he) = halfedges(g); hb != he; ++hb) {
std::pair<id_map::iterator, bool> r = ids.insert(get(boost::halfedge_index, g, *hb));
// unique?
assert(r.second);
@ -92,12 +92,12 @@ void test_edge_iterators(const G& g)
// do we iterate as many as that?
edge_iterator eb, ee;
boost::tie(eb, ee) = edges(g);
std::tie(eb, ee) = edges(g);
assert(static_cast<edges_size_type>(std::distance(eb, ee)) == num_edges(g));
id_map ids;
unsigned int count = 0;
for(boost::tie(eb, ee) = edges(g); eb != ee; ++eb) {
for(std::tie(eb, ee) = edges(g); eb != ee; ++eb) {
edge_descriptor e = *eb;
std::pair<id_map::iterator, bool> r = ids.insert(get(boost::edge_index, g, e));
// unique?
@ -115,7 +115,7 @@ void test_vertex_iterators(const G& g)
vertex_iterator vb, ve;
std::size_t count = 0;
for(boost::tie(vb, ve) = vertices(g); vb != ve; ++vb){
for(std::tie(vb, ve) = vertices(g); vb != ve; ++vb){
++count;
}
@ -125,7 +125,7 @@ void test_vertex_iterators(const G& g)
id_map ids;
count = 0;
for(boost::tie(vb, ve) = vertices(g); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(g); vb != ve; ++vb) {
std::pair<id_map::iterator, bool> r = ids.insert(get(boost::vertex_index, g, *vb));
assert(r.second);
++count;
@ -142,12 +142,12 @@ void test_out_edges(const G& g)
typedef typename Traits::vertex_descriptor vertex_descriptor;
vertex_iterator vb, ve;
for(boost::tie(vb, ve) = vertices(g); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(g); vb != ve; ++vb) {
id_map v_ids;
vertex_descriptor around = *vb;
out_edge_iterator oeb, oee;
for(boost::tie(oeb, oee) = out_edges(*vb, g); oeb != oee; ++oeb) {
for(std::tie(oeb, oee) = out_edges(*vb, g); oeb != oee; ++oeb) {
vertex_descriptor t = target(*oeb, g);
vertex_descriptor s = source(*oeb, g);
assert(s != t);
@ -169,11 +169,11 @@ void test_in_edges(const G& g)
typedef typename Traits::vertex_descriptor vertex_descriptor;
vertex_iterator vb, ve;
for(boost::tie(vb, ve) = vertices(g); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(g); vb != ve; ++vb) {
id_map v_ids;
vertex_descriptor around = *vb;
in_edge_iterator ieb, iee;
for(boost::tie(ieb, iee) = in_edges(*vb, g); ieb != iee; ++ieb) {
for(std::tie(ieb, iee) = in_edges(*vb, g); ieb != iee; ++ieb) {
vertex_descriptor t = target(*ieb, g);
vertex_descriptor s = source(*ieb, g);
assert(t == around);
@ -196,18 +196,18 @@ void test_in_out_edges(const G& g)
// check that the sets of in out edges are the same
vertex_iterator vb, ve;
for(boost::tie(vb, ve) = vertices(g); vb != ve; ++vb) {
for(std::tie(vb, ve) = vertices(g); vb != ve; ++vb) {
id_map v_ids;
std::vector<vertex_descriptor> in, out;
in_edge_iterator ieb, iee;
for(boost::tie(ieb, iee) = in_edges(*vb, g); ieb != iee; ++ieb) {
for(std::tie(ieb, iee) = in_edges(*vb, g); ieb != iee; ++ieb) {
std::pair<id_map::iterator, bool> r =
v_ids.insert(get(boost::vertex_index, g, source(*ieb, g)));
assert(r.second);
in.push_back(source(*ieb, g));
}
out_edge_iterator oeb, oee;
for(boost::tie(oeb, oee) = out_edges(*vb, g); oeb != oee; ++oeb) {
for(std::tie(oeb, oee) = out_edges(*vb, g); oeb != oee; ++oeb) {
std::pair<id_map::iterator, bool> r =
v_ids.insert(get(boost::vertex_index, g, target(*oeb, g)));
// insertion must fail
@ -239,13 +239,13 @@ void test_adjacent_vertices(const G& g)
vertex_descriptor v = *(vertices(g).begin());
adjacency_iterator vb, ve;
boost::tie(vb, ve) = adjacent_vertices(v, g);
std::tie(vb, ve) = adjacent_vertices(v, g);
in_edge_iterator ieb, iee;
boost::tie(ieb, iee) = in_edges(v, g);
std::tie(ieb, iee) = in_edges(v, g);
out_edge_iterator oeb, oee;
boost::tie(oeb, oee) = out_edges(v, g);
std::tie(oeb, oee) = out_edges(v, g);
assert(std::distance(vb, ve) == std::distance(ieb, iee));
assert(std::distance(vb, ve) == std::distance(oeb, oee));
@ -271,7 +271,7 @@ void test_edge_find(const G& g)
typedef std::pair<edge_descriptor, bool> ret;
edge_iterator eb, ee;
for(boost::tie(eb, ee) = edges(g); eb != ee; ++eb) {
for(std::tie(eb, ee) = edges(g); eb != ee; ++eb) {
vertex_descriptor s = source(*eb, g);
vertex_descriptor t = target(*eb, g);
ret found = edge(s, t, g);
@ -293,14 +293,14 @@ void test_faces(const G& g)
unsigned int count = 0;
face_iterator fb, fe;
for(boost::tie(fb, fe) = faces(g); fb != fe; ++fb) {
for(std::tie(fb, fe) = faces(g); fb != fe; ++fb) {
++count;
// reverse look-up
halfedge_descriptor assoc = halfedge(*fb, g);
assert(face(assoc, g) == *fb);
// check the enclosure
halfedge_around_face_iterator encb, ence;
for(boost::tie(encb, ence) = CGAL::halfedges_around_face(halfedge(*fb, g), g); encb != ence; ++encb) {
for(std::tie(encb, ence) = CGAL::halfedges_around_face(halfedge(*fb, g), g); encb != ence; ++encb) {
assert(face(*encb, g) == *fb);
}
}

View File

@ -3,7 +3,7 @@
project(Barycentric_coordinates_2_Benchmarks)
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
find_package(CGAL REQUIRED COMPONENTS Core)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script.
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Barycentric_coordinates_2_Examples)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script.
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Barycentric_coordinates_2_Tests)

View File

@ -6,7 +6,7 @@
# Used in /CGAL/Documentation/doc/Documentation/Developer_manual/create_and_use_a_cmakelist.txt.
# Careful when modifying
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Basic_viewer_Examples)
#CGAL_Qt6 is needed for the drawing.

View File

@ -92,7 +92,7 @@ int main(int argc, char* argv[])
Mesh::Property_map<face_descriptor, FT> faces_size;
bool created;
boost::tie(faces_size, created)=sm.add_property_map<face_descriptor, FT>("f:size",0.);
std::tie(faces_size, created)=sm.add_property_map<face_descriptor, FT>("f:size",0.);
assert(created);
for(face_descriptor fd : sm.faces())

View File

@ -14,7 +14,6 @@ namespace ArrDirectionalTraits {}
/*!
\addtogroup PkgBooleanSetOperations2Ref
\todo check generated documentation
\cgalPkgDescriptionBegin{2D Regularized Boolean Set-Operations,PkgBooleanSetOperations2}
\cgalPkgPicture{Boolean_set_operations_2.png}
\cgalPkgSummaryBegin

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Boolean_set_operations_2_Examples)
find_package(CGAL REQUIRED COMPONENTS Core OPTIONAL_COMPONENTS Qt6)

View File

@ -1,7 +1,7 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Boolean_set_operations_2_Tests)
find_package(CGAL REQUIRED)

View File

@ -3,7 +3,6 @@
/// \ingroup PkgBoundingVolumesRef
/*!
\addtogroup PkgBoundingVolumesRef
\todo check generated documentation
\cgalPkgDescriptionBegin{Bounding Volumes,PkgBoundingVolumes}
\cgalPkgPicture{minCircle.png}
\cgalPkgSummaryBegin

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Approximate_min_ellipsoid_d_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Min_annulus_d_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Min_circle_2_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Min_ellipse_2_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Min_quadrilateral_2_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Min_sphere_d_Examples)
find_package(CGAL REQUIRED)

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12...3.29)
cmake_minimum_required(VERSION 3.12...3.31)
project(Min_sphere_of_spheres_d_Examples)
find_package(CGAL REQUIRED)

Some files were not shown because too many files have changed in this diff Show More