diff --git a/.gitattributes b/.gitattributes index 38320ad4f0b..4211b302eb1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -58,7 +58,6 @@ 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_macosx_installer text eol=lf Scripts/developer_scripts/create_new_release text eol=lf Scripts/developer_scripts/detect_files_with_mixed_eol_styles text eol=lf Scripts/developer_scripts/detect_packages_licenses text eol=lf diff --git a/.gitignore b/.gitignore index 90f003227c6..b6fe952fd56 100644 --- a/.gitignore +++ b/.gitignore @@ -1058,7 +1058,7 @@ cmake_install.cmake *~ .#* -# MacOS file https://en.wikipedia.org/wiki/.DS_Store +# macOS file https://en.wikipedia.org/wiki/.DS_Store .DS_Store # Binaries: diff --git a/AABB_tree/include/CGAL/AABB_tree.h b/AABB_tree/include/CGAL/AABB_tree.h index c63fdf38679..9dd8460abd2 100644 --- a/AABB_tree/include/CGAL/AABB_tree.h +++ b/AABB_tree/include/CGAL/AABB_tree.h @@ -551,7 +551,7 @@ public: traits.intersection(query, singleton_data()); break; default: // if(size() >= 2) - root_node()->template traversal_with_priority_and_group_traversal(m_primitives, query, traits, m_primitives.size(), 0, group_traversal_bound); + root_node()->traversal_with_priority_and_group_traversal(m_primitives, query, traits, m_primitives.size(), 0, group_traversal_bound); } } diff --git a/AABB_tree/include/CGAL/AABB_tree/internal/AABB_node.h b/AABB_tree/include/CGAL/AABB_tree/internal/AABB_node.h index a5c09f42fb4..bf878268f59 100644 --- a/AABB_tree/include/CGAL/AABB_tree/internal/AABB_node.h +++ b/AABB_tree/include/CGAL/AABB_tree/internal/AABB_node.h @@ -56,7 +56,7 @@ public: /** * @brief General traversal query * @param query the query - * @param traits the traversal traits that define the traversal behaviour + * @param traits the traversal traits that define the traversal behavior * @param nb_primitives the number of primitive * * General traversal query. The traits class allows using it for the various diff --git a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h index 654ffa9a46d..1527a3eb7d4 100644 --- a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h +++ b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h @@ -65,7 +65,7 @@ class Bitstream_descartes; /* - * \brief Thrown whenever a non-specialised virtual member function is called + * \brief Thrown whenever a non-specialized virtual member function is called */ class Virtual_method_exception {}; @@ -128,7 +128,7 @@ public: /*! * Constructor computing an interval containing all real roots of \c f, - * and initialising the Bitstream Descartes tree + * and initializing the Bitstream Descartes tree */ Generic_descartes_rep(Bitstream_descartes_type type, Polynomial f, @@ -170,7 +170,7 @@ public: /*! * Constructor that copies the Bitstream tree given from outside - * and initialising the Bitstream Descartes tree + * and initializing the Bitstream Descartes tree * The tree must "fit" to the polynomial */ Generic_descartes_rep(Bitstream_descartes_type type, @@ -367,7 +367,7 @@ public: /*! * \brief When does the isolation algorithm terminate? * - * This method must be specialised by derived classes + * This method must be specialized by derived classes */ virtual bool termination_condition() { throw Virtual_method_exception(); @@ -378,7 +378,7 @@ public: * \brief gives an opportunity to process the nodes after * the subdivision steps are finished * - * This method must be specialised by derived classes, but can + * This method must be specialized by derived classes, but can * remain empty in many cases. */ virtual void process_nodes() { @@ -389,7 +389,7 @@ public: /*! \brief returns whether the \c i th root is definitely a simple root * of the isolated polynomial * - * Must be specialised by derived class + * Must be specialized by derived class */ virtual bool is_certainly_simple_root(int) const { throw Virtual_method_exception(); @@ -399,7 +399,7 @@ public: /*! \brief returns whether the \c i th root is definitely a multiple root * of the isolated polynomial * - * Must be specialised by derived class + * Must be specialized by derived class */ virtual bool is_certainly_multiple_root(int) const { throw Virtual_method_exception(); @@ -1082,7 +1082,7 @@ protected: * variant of the Bitstream Descartes method: The Square_free_descartes_tag * starts the usual Bitstream method for square free integer polynomials. * With the M_k_descartes tag, it is able to handle one multiple root in - * favourable situations, the Backshear_descartes_tag allows to isolate + * favorable situations, the Backshear_descartes_tag allows to isolate * even more complicated polynomials, if the multiple roots with even * multiplicity can be refined from outside. See the corresponding * constructors for more information. diff --git a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h index a76e1c6ceca..8e64832546a 100644 --- a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h +++ b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h @@ -865,7 +865,7 @@ public: by trying randomly and checking. This randomization means the same polynomial and same initial interval may give rise to different intervals each time this class is used. - As indicated in the paper, we favour subdivision ratios + As indicated in the paper, we favor subdivision ratios with a small denominator. Hence we first try denominator 2 (subdivision at midpoint), then denominator 16, and only then the "proper" denominator prescribed by theory. diff --git a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h index 6fecb592a12..a3dc59edfea 100644 --- a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h +++ b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h @@ -469,7 +469,7 @@ public: * (\c SHEAR_ONLY_AT_IRRATIONAL_STRATEGY) * is to \c shear the curve * if a degenerate situation is detected during the analysis, - * except at rational x-coordinates where the curve can be analysed + * except at rational x-coordinates where the curve can be analyzed * more directly. The analysis * is then performed in the sheared system, and finally translated back * into the original system. diff --git a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h index e53c9100aec..1a710084058 100644 --- a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h +++ b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h @@ -140,7 +140,7 @@ public: virtual ~LRU_hashed_map() { } - /*! \brief implements cache-like behaviour of the map + /*! \brief implements cache-like behavior of the map * * If the object is not in the map, it is constructed using \c Creator * and added to the map @@ -312,7 +312,7 @@ public: ~LRU_hashed_map_with_kernel() { } - /*! \brief implements cache-like behaviour of the map + /*! \brief implements cache-like behavior of the map * * If the object is not in the map, it is constructed using \c Creator * and added to the map diff --git a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/exceptions.h b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/exceptions.h index 4dd9c4b5122..6a184c377e8 100644 --- a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/exceptions.h +++ b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/exceptions.h @@ -25,7 +25,7 @@ namespace CGAL { /*! * \brief Exception class for not sufficiently generic positions. * - * Must be thrown whenever a curve cannot be analysed because its position + * Must be thrown whenever a curve cannot be analyzed because its position * is not "good enough". */ class Non_generic_position_exception { @@ -40,7 +40,7 @@ namespace CGAL { /*! * \brief Exception class for not sufficiently generic positions. * - * Must be thrown whenever a curve cannot be analysed because its position + * Must be thrown whenever a curve cannot be analyzed because its position * is not "good enough". */ template diff --git a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/flags.h b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/flags.h index 6b402fbfd23..0317bf7ea11 100644 --- a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/flags.h +++ b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/flags.h @@ -76,7 +76,7 @@ /** * If set, the curve and curve pair analysis are using specialized code - * to analyse conic curves, i.e. curves of degree 2 + * to analyze conic curves, i.e. curves of degree 2 */ #ifndef CGAL_ACK_USE_SPECIAL_TREATMENT_FOR_CONIX #define CGAL_ACK_USE_SPECIAL_TREATMENT_FOR_CONIX 0 diff --git a/Algebraic_kernel_d/test/Algebraic_kernel_d/Curve_analysis_2.cpp b/Algebraic_kernel_d/test/Algebraic_kernel_d/Curve_analysis_2.cpp index f8ba0d8495e..9527a887650 100644 --- a/Algebraic_kernel_d/test/Algebraic_kernel_d/Curve_analysis_2.cpp +++ b/Algebraic_kernel_d/test/Algebraic_kernel_d/Curve_analysis_2.cpp @@ -330,7 +330,7 @@ template void test_routine() { #endif } - { // More tests...just analyse some curves and compute their segments + { // More tests...just analyze some curves and compute their segments Poly_int2 f = from_string("P[8(0,P[8(0,24)(1,-8)(2,-162)(3,204)(4,106)(5,-340)(6,240)(7,-72)(8,8)])(1,P[6(0,-60)(1,8)(2,304)(3,-400)(4,148)(5,8)(6,-8)])(2,P[6(0,18)(1,80)(2,-165)(3,-132)(4,367)(5,-212)(6,38)])(3,P[4(0,-30)(1,-136)(2,264)(3,-72)(4,-26)])(4,P[4(0,-15)(1,36)(2,89)(3,-144)(4,49)])(5,P[2(0,30)(1,-24)(2,-6)])(6,P[2(0,-6)(1,-28)(2,22)])(8,P[0(0,3)])]"); Curve_analysis_2 curve= construct_curve_2(f); #if CGAL_ACK_DEBUG_FLAG diff --git a/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h b/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h index a4a93f82515..f468f9056f8 100644 --- a/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h +++ b/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h @@ -1638,7 +1638,7 @@ compute_edge_status( const Cell_handle& c, last=ccirc; while (is_infinite(ccirc) ) ++ccirc; //skip infinite incident cells alpha = (*ccirc).get_alpha(); - as.set_alpha_mid(alpha); // initialise as.alpha_mid to alpha value of an incident cell + as.set_alpha_mid(alpha); // initialize as.alpha_mid to alpha value of an incident cell as.set_alpha_max(alpha); // same for as.alpha_max while (++ccirc != last) { diff --git a/Alpha_shapes_3/test/Alpha_shapes_3/include/CGAL/_count_alpha.h b/Alpha_shapes_3/test/Alpha_shapes_3/include/CGAL/_count_alpha.h index f7c0fb41d4d..c38cd3bb53e 100644 --- a/Alpha_shapes_3/test/Alpha_shapes_3/include/CGAL/_count_alpha.h +++ b/Alpha_shapes_3/test/Alpha_shapes_3/include/CGAL/_count_alpha.h @@ -218,7 +218,7 @@ test_filtration(AS &A, bool verbose) typename AS::NT alpha; if(verbose) { std::cerr << std::endl; - std::cerr << "Analyse filtration " << std::endl; + std::cerr << "Analyze filtration " << std::endl; } for (; filtre_it != filtration.end(); filtre_it++) { if(assign(vertex, *filtre_it)) { diff --git a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2_earth/Aos.cpp b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2_earth/Aos.cpp index 27dd2a5968b..2d782eec1ac 100644 --- a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2_earth/Aos.cpp +++ b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2_earth/Aos.cpp @@ -40,7 +40,7 @@ namespace { Flag(bool init) : v{ init } {} }; - // EXTENDED AOS for analysing the arrangement + // EXTENDED AOS for analyzing the arrangement using Ext_dcel = CGAL::Arr_extended_dcel; using Ext_topol_traits = CGAL::Arr_spherical_topology_traits_2; diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Rational_arc_2.h b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Rational_arc_2.h index c1a690bcb8e..aea70d5331a 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Rational_arc_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Rational_arc_2.h @@ -339,7 +339,7 @@ public: if (! valid) return; - // Analyze the behaviour of the rational function at x = -oo (the source). + // Analyze the behavior of the rational function at x = -oo (the source). Algebraic y0; const Arr_parameter_space inf_s = _analyze_at_minus_infinity (_numer, _denom, y0); @@ -351,7 +351,7 @@ public: else // if (inf_s == ARR_INTERIOR) _ps = Point_2 (0, y0); - // Analyze the behaviour of the rational function at x = +oo (the target). + // Analyze the behavior of the rational function at x = +oo (the target). const Arr_parameter_space inf_t = _analyze_at_plus_infinity (_numer, _denom, y0); @@ -735,7 +735,7 @@ public: */ Self split_at_pole (const Algebraic& x0) { - // Analyze the behaviour of the function near the given pole. + // Analyze the behavior of the function near the given pole. const std::pair signs = _analyze_near_pole (x0); const CGAL::Sign sign_left = signs.first; const CGAL::Sign sign_right = signs.second; diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h b/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h index f3921b44149..71af407c54e 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h +++ b/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h @@ -450,7 +450,7 @@ public: _info = (_info | IS_DIRECTED_RIGHT); - // Analyze the behaviour of the rational function at x = -oo (the source). + // Analyze the behavior of the rational function at x = -oo (the source). Algebraic_real_1 y0; const Arr_parameter_space inf_s = _analyze_at_minus_infinity(P, Q, y0); @@ -460,7 +460,7 @@ public: _info = (_info | SRC_AT_Y_PLUS_INFTY); else // if (inf_s == ARR_INTERIOR) _ps = Algebraic_point_2(); //the point is a dummy - //Analyze the behaviour of the rational function at x = +oo (the target). + //Analyze the behavior of the rational function at x = +oo (the target). const Arr_parameter_space inf_t = _analyze_at_plus_infinity(P, Q, y0); if (inf_t == ARR_BOTTOM_BOUNDARY) @@ -949,7 +949,7 @@ public: Self split_at_pole(const Algebraic_real_1& x0) { - // Analyze the behaviour of the function near the given pole. + // Analyze the behavior of the function near the given pole. const std::pair signs = _analyze_near_pole(x0); const CGAL::Sign sign_left = signs.first; const CGAL::Sign sign_right = signs.second; diff --git a/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h b/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h index 97c9b5b0f5b..d044c21edf0 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h @@ -1578,7 +1578,7 @@ public: return res; } - // otherwise: both ends have asymptotic behaviour + // otherwise: both ends have asymptotic behavior if (ps_y1 == ps_y2) { // need special y-comparison if (ce1 == ce2) { // both ends approach asymptote from one side Comparison_result res = m_self->compare_x_near_boundary_2_object()(xcv1, xcv2, ce2); diff --git a/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h b/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h index f2e6ecfc314..4c8c1a382bb 100644 --- a/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h +++ b/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h @@ -24,7 +24,7 @@ * \brief * defines class Curve_renderer_traits. * - * provides specialisations of Curve_renderer_traits for different number + * provides specializations of Curve_renderer_traits for different number * types compatible with the curve renderer */ diff --git a/BGL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h b/BGL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h index b5d16f74d3b..368c5fca524 100644 --- a/BGL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h +++ b/BGL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h @@ -733,7 +733,7 @@ struct Graph_with_descriptor_with_graph_property_map { } }; // class Graph_with_descriptor_with_graph_property_map -//specialisation for lvaluepropertymaps +//specialization for lvaluepropertymaps template struct Graph_with_descriptor_with_graph_property_map { diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/Boolean_set_operations_2.txt b/Boolean_set_operations_2/doc/Boolean_set_operations_2/Boolean_set_operations_2.txt index d03add5708a..661e4d89ae5 100644 --- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/Boolean_set_operations_2.txt +++ b/Boolean_set_operations_2/doc/Boolean_set_operations_2/Boolean_set_operations_2.txt @@ -542,13 +542,13 @@ boundary of each input (linear) polygon as a cyclic sequence of single (\f$x\f$-monotone) polylines. By default, `UsePolylines` is set to `CGAL::Tag_true`, which implies that the boundary of the each input (linear) polygon is treated as a cyclic sequence of (\f$x\f$-monotone) -polylines. In most cases this behaviour is superior (that is, less +polylines. In most cases this behavior is superior (that is, less time-consuming) because the number of events handled as part of the execution of the plane-sweep algorithm is reduced. In cases where the boundaries of the input polygons frequently intersect, treating them as polylines may become less efficient. In these cases substitute the `UsePolylines` template parameter with `CGAL::Tag_false` to restore -the original behaviour (where the boundary of each input linear +the original behavior (where the boundary of each input linear polygon is treated as a cyclic sequence of single \f$x\f$-monotone segments). diff --git a/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_2.h b/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_2.h index d3c56d3b095..b2826180704 100644 --- a/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_2.h +++ b/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_2.h @@ -5,7 +5,7 @@ namespace CGAL { \ingroup PkgBoundingVolumesRef The class `Min_sphere_annulus_d_traits_2` is a traits class for the \f$ d\f$-dimensional -optimisation algorithms using the two-dimensional \cgal kernel. +optimization algorithms using the two-dimensional \cgal kernel. \tparam K must bea model for `Kernel`. \tparam ET NT are models for `RingNumberType`. Their default type is `K::RT`. diff --git a/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_3.h b/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_3.h index 84284beefc5..5d57a716ada 100644 --- a/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_3.h +++ b/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_3.h @@ -5,7 +5,7 @@ namespace CGAL { \ingroup PkgBoundingVolumesRef The class `Min_sphere_annulus_d_traits_3` is a traits class for the \f$ d\f$-dimensional -optimisation algorithms using the three-dimensional \cgal kernel. +optimization algorithms using the three-dimensional \cgal kernel. \tparam K must be a model for `Kernel`. \tparam ET NT are models for `RingNumberType`. Their default type is `K::RT`. diff --git a/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_d.h b/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_d.h index f2bc035794b..046cced2d58 100644 --- a/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_d.h +++ b/Bounding_volumes/doc/Bounding_volumes/CGAL/Min_sphere_annulus_d_traits_d.h @@ -5,7 +5,7 @@ namespace CGAL { \ingroup PkgBoundingVolumesRef The class `Min_sphere_annulus_d_traits_d` is a traits class for the \f$ d\f$-dimensional -optimisation algorithms using the \f$ d\f$-dimensional \cgal kernel. +optimization algorithms using the \f$ d\f$-dimensional \cgal kernel. \tparam K must be a model for `Kernel`. \tparam ET NT are models for `RingNumberType`. Their default type is `K::RT`. diff --git a/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h b/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h index 0fc9ef14af1..e200621f7ea 100644 --- a/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h +++ b/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h @@ -71,7 +71,7 @@ namespace CGAL { std::vector P; // input points int n; // number of input points, i.e., P.size() - // This class comes in two flavours: + // This class comes in two flavors: // // (i) When Embed is false, the input points are taken to be // ordinary points in R^{d_P}, where d_P is the dimension of the diff --git a/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h b/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h index b51de487eb3..be95cea772c 100644 --- a/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h +++ b/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h @@ -33,7 +33,7 @@ namespace CGAL_MINIBALL_NAMESPACE { // they are convertible to double. // This is indeed the least invasive fix dropint the function that were // defined here and cause linkage bug. - // You can still have a behaviour of instantiating only if a type + // You can still have a behavior of instantiating only if a type // is convertibale to double (by using type_traits together with _if) // but until "the whole design should be overhauled at some point" // this is fine. diff --git a/Bounding_volumes/include/CGAL/min_quadrilateral_2.h b/Bounding_volumes/include/CGAL/min_quadrilateral_2.h index 081520c0846..8e78c9f42a3 100644 --- a/Bounding_volumes/include/CGAL/min_quadrilateral_2.h +++ b/Bounding_volumes/include/CGAL/min_quadrilateral_2.h @@ -376,7 +376,7 @@ min_rectangle_2( // quadruple of points defining the current rectangle ForwardIterator curr[4]; - // initialised to the points defining the bounding box + // initialized to the points defining the bounding box convex_bounding_box_2(f, l, curr, t); // curr[i] can be advanced (cyclically) until it reaches limit[i] @@ -482,7 +482,7 @@ min_parallelogram_2(ForwardIterator f, // quadruple of points defining the bounding box ForwardIterator curr[4]; - // initialised to the points defining the bounding box + // initialized to the points defining the bounding box convex_bounding_box_2(first, l, curr, t); @@ -659,7 +659,7 @@ min_strip_2(ForwardIterator f, // quadruple of points defining the bounding box ForwardIterator curr[4]; - // initialised to the points defining the bounding box + // initialized to the points defining the bounding box convex_bounding_box_2(first, l, curr, t); ForwardIterator low = curr[0]; diff --git a/Bounding_volumes/include/CGAL/rectangular_3_center_2.h b/Bounding_volumes/include/CGAL/rectangular_3_center_2.h index 276f286fcbf..9d280f2eaf0 100644 --- a/Bounding_volumes/include/CGAL/rectangular_3_center_2.h +++ b/Bounding_volumes/include/CGAL/rectangular_3_center_2.h @@ -135,7 +135,7 @@ rectangular_3_center_2_type1( rad = sdist(v(r, 2), v(r, 0)); // init to prevent default constructor requirement Point bestpoint = *f; - // (initialisation avoids warning) + // (initialization avoids warning) unsigned int bestrun = 0; // two cases: top-left & bottom-right or top-right & bottom-left diff --git a/Bounding_volumes/test/Bounding_volumes/min_sphere_test.cpp b/Bounding_volumes/test/Bounding_volumes/min_sphere_test.cpp index ff82ea1bdb0..816cb353d44 100644 --- a/Bounding_volumes/test/Bounding_volumes/min_sphere_test.cpp +++ b/Bounding_volumes/test/Bounding_volumes/min_sphere_test.cpp @@ -11,7 +11,7 @@ // release : $CGAL_Revision: CGAL-wip $ // release_date : $CGAL_Date$ // -// chapter : $CGAL_Chapter: Optimisation $ +// chapter : $CGAL_Chapter: Geometric Optimization $ // package : $CGAL_Package: MinSphere $ // file : min_sphere_test.C // source : web/Optimisation/Min_sphere_d.aw diff --git a/Bounding_volumes/test/Bounding_volumes/min_sphere_traits_2_test.cpp b/Bounding_volumes/test/Bounding_volumes/min_sphere_traits_2_test.cpp index 0f137fd20ff..cd79be09588 100644 --- a/Bounding_volumes/test/Bounding_volumes/min_sphere_traits_2_test.cpp +++ b/Bounding_volumes/test/Bounding_volumes/min_sphere_traits_2_test.cpp @@ -12,7 +12,7 @@ // release : $CGAL_Revision: CGAL-wip $ // release_date : $CGAL_Date$ // -// chapter : $CGAL_Chapter: Optimisation $ +// chapter : $CGAL_Chapter: Geometric Optimization $ // package : $CGAL_Package: MinSphere $ // file : min_sphere_traits_2_test.C // source : web/Optimisation/Min_sphere_d.aw diff --git a/Bounding_volumes/test/Bounding_volumes/min_sphere_traits_3_test.cpp b/Bounding_volumes/test/Bounding_volumes/min_sphere_traits_3_test.cpp index efb0bed98c8..01fb795f264 100644 --- a/Bounding_volumes/test/Bounding_volumes/min_sphere_traits_3_test.cpp +++ b/Bounding_volumes/test/Bounding_volumes/min_sphere_traits_3_test.cpp @@ -11,7 +11,7 @@ // release : $CGAL_Revision: CGAL-wip $ // release_date : $CGAL_Date$ // -// chapter : $CGAL_Chapter: Optimisation $ +// chapter : $CGAL_Chapter: Geometric Optimization $ // package : $CGAL_Package: MinSphere $ // file : min_sphere_traits_3_test.C // source : web/Optimisation/Min_sphere_d.aw diff --git a/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d.h b/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d.h index a1b3c9e88e0..f393618663f 100644 --- a/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d.h +++ b/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d.h @@ -13,7 +13,7 @@ // // file : test/Min_annulus_d/test_Min_annulus_d.h // package : $CGAL_Package: Min_annulus_d $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // source : web/Min_annulus_d.aw // revision : $Id$ diff --git a/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_2.cpp b/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_2.cpp index 8592a9fe977..b13bb42c0e4 100644 --- a/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_2.cpp +++ b/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_2.cpp @@ -13,7 +13,7 @@ // // file : test/Min_annulus_d/test_Min_annulus_d_2.cpp // package : $CGAL_Package: Min_annulus_d $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // revision : $Id$ // revision_date : $Date$ diff --git a/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_3.cpp b/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_3.cpp index 09dbce7b680..b003679c0f9 100644 --- a/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_3.cpp +++ b/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_3.cpp @@ -13,7 +13,7 @@ // // file : test/Min_annulus_d/test_Min_annulus_d_3.cpp // package : $CGAL_Package: Min_annulus_d $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // revision : $Id$ // revision_date : $Date$ diff --git a/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_d.cpp b/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_d.cpp index 3d667bead47..4594b2b430e 100644 --- a/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_d.cpp +++ b/Bounding_volumes/test/Bounding_volumes/test_Min_annulus_d_d.cpp @@ -13,7 +13,7 @@ // // file : test/Min_annulus_d/test_Min_annulus_d_d.cpp // package : $CGAL_Package: Min_annulus_d $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // revision : $Id$ // revision_date : $Date$ diff --git a/Bounding_volumes/test/Bounding_volumes/test_Min_circle.cpp b/Bounding_volumes/test/Bounding_volumes/test_Min_circle.cpp index 01ce8cc429a..5d94946b23e 100644 --- a/Bounding_volumes/test/Bounding_volumes/test_Min_circle.cpp +++ b/Bounding_volumes/test/Bounding_volumes/test_Min_circle.cpp @@ -13,7 +13,7 @@ // // file : test/Min_circle_2/test_Min_circle_2.C // package : $CGAL_Package: Min_circle_2 $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // source : web/Min_circle_2.aw // revision : $Id$ diff --git a/Bounding_volumes/test/Bounding_volumes/test_Min_ellipse_2.cpp b/Bounding_volumes/test/Bounding_volumes/test_Min_ellipse_2.cpp index 535aa4674b1..2410147ccb5 100644 --- a/Bounding_volumes/test/Bounding_volumes/test_Min_ellipse_2.cpp +++ b/Bounding_volumes/test/Bounding_volumes/test_Min_ellipse_2.cpp @@ -13,7 +13,7 @@ // // file : test/Min_ellipse_2/test_Min_ellipse_2.C // package : $CGAL_Package: Min_ellipse_2 $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // source : web/Min_ellipse_2.aw // revision : $Id$ diff --git a/CGAL_ImageIO/include/CGAL/ImageIO/analyze.h b/CGAL_ImageIO/include/CGAL/ImageIO/analyze.h index 98d27a0d994..cbc4eae9109 100644 --- a/CGAL_ImageIO/include/CGAL/ImageIO/analyze.h +++ b/CGAL_ImageIO/include/CGAL/ImageIO/analyze.h @@ -21,7 +21,7 @@ #include -/* read analyse format header +/* read analyze format header return: -1: error diff --git a/CGAL_ImageIO/include/CGAL/ImageIO/bmptypes.h b/CGAL_ImageIO/include/CGAL/ImageIO/bmptypes.h index 9c27b948b3d..b6eb465253f 100644 --- a/CGAL_ImageIO/include/CGAL/ImageIO/bmptypes.h +++ b/CGAL_ImageIO/include/CGAL/ImageIO/bmptypes.h @@ -108,8 +108,8 @@ typedef std::uint32_t CGAL_UINT32; */ /* - * Bitmapfileheader defines a single bitmap image. Its analogue in the - * Windows SDK is the Bitmapfileheader. Its analogues in the OS/2 Toolkit are + * Bitmapfileheader defines a single bitmap image. Its analog in the + * Windows SDK is the Bitmapfileheader. Its analogs in the OS/2 Toolkit are * the Bitmapfileheader and Bitmapfileheader2 structures. * * A BITMAPHEADER structure is always concatenated to the end of a @@ -128,7 +128,7 @@ typedef struct Bitmapfileheader /* * BITMAPARRAYHEADER is used to establish a linked list of Bitmapfileheader * structures for a bitmap file with multiple images in it. There is no - * equivalent structure in the Windows SDK. Its analogues in the OS/2 toolkit + * equivalent structure in the Windows SDK. Its analogs in the OS/2 toolkit * are the BITMAPARRAYFILEHEADER and BITMAPARRAYFILEHEADER2 structures. * * A Bitmapfileheader structure is always concatenated to the end of a @@ -145,9 +145,9 @@ typedef struct BITMAPARRAYHEADER /* - * BITMAPHEADER defines the properties of a bitmap. Its analogues in the + * BITMAPHEADER defines the properties of a bitmap. Its analogs in the * Windows SDK are the BITMAPCOREINFOHEADER and BITMAPINFOHEADER structures. - * Its analogues in the OS/2 Toolkit are the BITMAPINFOHEADER and + * Its analogs in the OS/2 Toolkit are the BITMAPINFOHEADER and * BITMAPINFOHEADER2 structures. * * A color table is concatenated to this structure. The number of elements in @@ -188,8 +188,8 @@ typedef struct BITMAPHEADER /* - * RGB defines a single color palette entry. Its analogues in the Windows SDK - * are the RGBTRIPLE and RGBQUAD structures. Its analogues in the OS/2 + * RGB defines a single color palette entry. Its analogs in the Windows SDK + * are the RGBTRIPLE and RGBQUAD structures. Its analogs in the OS/2 * Toolkit are the RGB and RGB2 structure. */ typedef struct RGB diff --git a/CGAL_ImageIO/include/CGAL/ImageIO/recline_impl.h b/CGAL_ImageIO/include/CGAL/ImageIO/recline_impl.h index 4b5374898e5..e4b694efa78 100644 --- a/CGAL_ImageIO/include/CGAL/ImageIO/recline_impl.h +++ b/CGAL_ImageIO/include/CGAL/ImageIO/recline_impl.h @@ -283,7 +283,7 @@ RFcoefficientType * InitRecursiveCoefficients( double x, b0 /= x; b1 /= x; - /*--- normalisation ---*/ + /*--- normalization ---*/ switch ( derivative ) { default : CGAL_FALLTHROUGH; diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map.h b/Combinatorial_map/include/CGAL/Combinatorial_map.h index 7bf8295c665..5473aeaf277 100644 --- a/Combinatorial_map/include/CGAL/Combinatorial_map.h +++ b/Combinatorial_map/include/CGAL/Combinatorial_map.h @@ -662,7 +662,7 @@ namespace CGAL { } /** Create a new dart and add it to the map. - * The marks of the darts are initialised with mmask_marks, i.e. the dart + * The marks of the darts are initialized with mmask_marks, i.e. the dart * is unmarked for all the marks. * @return a Dart_descriptor on the new dart. */ @@ -4111,7 +4111,7 @@ namespace CGAL { } if (ah != null_descriptor) { - // We initialise the 0-atttrib to ah + // We initialize the 0-atttrib to ah internal::Set_i_attribute_of_dart_functor:: run(*this, d1, ah); } diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h b/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h index 5cbf7b7861a..f570d59b187 100644 --- a/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h +++ b/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h @@ -228,7 +228,7 @@ struct Call_functor_if_both_attributes_have_point const Pointconverter&) { return Map2::null_descriptor; } }; -// Specialisation with i==0 and both attributes have points. +// Specialization with i==0 and both attributes have points. template< typename Map1, typename Map2, typename Pointconverter > struct Call_functor_if_both_attributes_have_point @@ -285,7 +285,7 @@ struct Copy_attribute_functor_if_nonvoid cmap2.template set_attribute(dh2, res); } }; -// Specialisation when attr1 is void, and attr2 is non void i==0. Nothing to +// Specialization when attr1 is void, and attr2 is non void i==0. Nothing to // copy, but if 0-attributes has point and i==0, we need to create // vertex attributes. template(dh2, cmap2.template create_attribute<0>()); } }; -// Specialisation when attr1 is void, and attr2 is non void i!=0. +// Specialization when attr1 is void, and attr2 is non void i!=0. // Nothing to do. template @@ -360,7 +360,7 @@ struct Copy_dart_info_functor_if_nonvoid const DartInfoConverter& converter) { converter(map1, map2, dh1, dh2); } }; -// Specialisation when Info1 is void. +// Specialization when Info1 is void. template struct Copy_dart_info_functor_if_nonvoid struct Copy_dart_info_functor_if_nonvoid struct Copy_dart_info_functor_if_nonvoid diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h b/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h index 72c89d40142..c1ca6c1987e 100644 --- a/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h +++ b/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h @@ -36,7 +36,7 @@ namespace CGAL { static bool run(const CMap& amap, typename CMap::Dart_const_descriptor adart) { - // TODO? Optimisation for dim-2, and to not test all the darts of the cell? + // TODO? Optimization for dim-2, and to not test all the darts of the cell? bool res = true; for ( CGAL::CMap_dart_const_iterator_of_cell it(amap, adart); res && it.cont(); ++it ) @@ -462,7 +462,7 @@ namespace CGAL { static bool run(const CMap& amap, typename CMap::Dart_const_descriptor adart) { - // TODO ? Optimisation possible to not test all the darts of the cell ? + // TODO ? Optimization possible to not test all the darts of the cell ? bool res = true; for ( CGAL::CMap_dart_const_iterator_of_cell it(amap, adart); res && it.cont(); ++it ) diff --git a/Combinatorial_map/include/CGAL/Dart.h b/Combinatorial_map/include/CGAL/Dart.h index 17ffde4b294..0fb809b6d81 100644 --- a/Combinatorial_map/include/CGAL/Dart.h +++ b/Combinatorial_map/include/CGAL/Dart.h @@ -156,7 +156,7 @@ namespace CGAL { } protected: - /** Default constructor: no real initialisation, + /** Default constructor: no real initialization, * because this is done in the combinatorial map class. */ Dart_without_info() @@ -300,7 +300,7 @@ namespace CGAL { { return Base::operator==(other) && minfo==other.minfo; } protected: - /** Default constructor: no real initialisation, + /** Default constructor: no real initialization, * because this is done in the combinatorial or generalized map class. */ Dart()=default; // default => zero-initializing built-in types diff --git a/Cone_spanners_2/include/CGAL/Compute_cone_boundaries_2.h b/Cone_spanners_2/include/CGAL/Compute_cone_boundaries_2.h index 4256fd0dc17..a4069a1168a 100644 --- a/Cone_spanners_2/include/CGAL/Compute_cone_boundaries_2.h +++ b/Cone_spanners_2/include/CGAL/Compute_cone_boundaries_2.h @@ -115,7 +115,7 @@ public: #if defined(CGAL_USE_LEDA) || defined(CGAL_USE_CORE) /* - The specialised functor for computing the directions of cone boundaries exactly + The specialized functor for computing the directions of cone boundaries exactly with a given cone number and a given initial direction. */ template <> diff --git a/Cone_spanners_2/include/CGAL/Construct_theta_graph_2.h b/Cone_spanners_2/include/CGAL/Construct_theta_graph_2.h index d4b47ed33c2..3d1ebc15efb 100644 --- a/Cone_spanners_2/include/CGAL/Construct_theta_graph_2.h +++ b/Cone_spanners_2/include/CGAL/Construct_theta_graph_2.h @@ -199,7 +199,7 @@ protected: std::vector S(vit, ve); std::sort(S.begin (), S.end (), orderD1); - // Step 2: Initialise an empty set to store vertices sorted by orderD2 + // Step 2: initialize an empty set to store vertices sorted by orderD2 typedef CGAL::ThetaDetail::Plane_scan_tree S(vit, ve); std::sort(S.begin (), S.end (), orderD1); - // Step 2: Initialise an empty set to store vertices sorted by orderD2 + // Step 2: initialize an empty set to store vertices sorted by orderD2 Point_set pst(orderD2); // Step 3: visit S in orderD1 diff --git a/Cone_spanners_2/include/CGAL/gnuplot_output_2.h b/Cone_spanners_2/include/CGAL/gnuplot_output_2.h index 65324f60134..d2cb402e37a 100644 --- a/Cone_spanners_2/include/CGAL/gnuplot_output_2.h +++ b/Cone_spanners_2/include/CGAL/gnuplot_output_2.h @@ -93,7 +93,7 @@ std::string gnuplot_vertex_list (const Graph& g); /* This struct is defined to use partial specialization to generate arrow styles differently for * directed and undirected graphs. - * Note: Need to use structs because C++ before 11 doesn't allow partial specialisation + * Note: Need to use structs because C++ before 11 doesn't allow partial specialization * for functions */ template diff --git a/Documentation/doc/Documentation/Developer_manual/cmakelist_script.txt b/Documentation/doc/Documentation/Developer_manual/cmakelist_script.txt index 26c1f7c0ef4..eeae486b236 100644 --- a/Documentation/doc/Documentation/Developer_manual/cmakelist_script.txt +++ b/Documentation/doc/Documentation/Developer_manual/cmakelist_script.txt @@ -17,7 +17,7 @@ configuration. create a single executable for 'source' linked with compilations of all other source files (`*.cc`, `*.cp`, `*.cxx`, `*.cpp`, `*.CPP`, `*.c++`, or `*.C`). -This behaviour is usually needed for (graphical) demos. +This behavior is usually needed for (graphical) demos. If the parameter is not given, the script creates one executable for each given source file. diff --git a/Documentation/doc/Documentation/Preliminaries.txt b/Documentation/doc/Documentation/Preliminaries.txt index 2e2ae95e661..f2006d05154 100644 --- a/Documentation/doc/Documentation/Preliminaries.txt +++ b/Documentation/doc/Documentation/Preliminaries.txt @@ -47,7 +47,7 @@ also avoid CMake to link with the native threads support library on your system. Much of the \cgal code contains assert statements for preconditions, and postconditions of functions as well as in the code. These assertions can be switched on and off per package -and the user can change the error behaviour. For details see Section \ref secchecks +and the user can change the error behavior. For details see Section \ref secchecks of Chapter \ref Chapter_STL_Extensions_for_CGAL. \section Preliminaries_flags Compile-time Flags to Control Inlining diff --git a/Documentation/doc/Documentation/Third_party.txt b/Documentation/doc/Documentation/Third_party.txt index 0a47a9f2dd6..f94711ba8d2 100644 --- a/Documentation/doc/Documentation/Third_party.txt +++ b/Documentation/doc/Documentation/Third_party.txt @@ -15,7 +15,7 @@ supporting C++17 or later. | | `Clang` \cgalFootnote{\cgalFootnoteCode{https://clang.llvm.org/}} compiler version 15.0.7 | | \ms Windows | \gnu `g++` 11.4.0 or later\cgalFootnote{\cgalFootnoteCode{https://gcc.gnu.org/}} | | | \ms Visual `C++` 15.9, 16.10, 17.0 (\visualstudio 2017, 2019, and 2022)\cgalFootnote{\cgalFootnoteCode{https://visualstudio.microsoft.com/}} | -| MacOS X | \gnu `g++` 11.4.0 or later\cgalFootnote{\cgalFootnoteCode{https://gcc.gnu.org/}} | +| macOS | \gnu `g++` 11.4.0 or later\cgalFootnote{\cgalFootnoteCode{https://gcc.gnu.org/}} | | | Apple `Clang` compiler versions 10.0.1, 12.0.5, and 15.0.0 | diff --git a/Documentation/doc/Documentation/Tutorials/Tutorial_GIS.txt b/Documentation/doc/Documentation/Tutorials/Tutorial_GIS.txt index 9ac43d3eb53..546e53c7cd8 100644 --- a/Documentation/doc/Documentation/Tutorials/Tutorial_GIS.txt +++ b/Documentation/doc/Documentation/Tutorials/Tutorial_GIS.txt @@ -193,7 +193,7 @@ An example of a raster image with a rainbow ramp representing height is given in \cgalFigureRef{TutorialGISFigRastering}. \cgalFigureBegin{TutorialGISFigRastering, raster.jpg} -Raster visualisation of height using a rainbow ramp, ranging from +Raster visualization of height using a rainbow ramp, ranging from light blue for low values to dark red for high values. \cgalFigureEnd diff --git a/Documentation/doc/Documentation/main.txt b/Documentation/doc/Documentation/main.txt index 2026356b76c..acb38973dad 100644 --- a/Documentation/doc/Documentation/main.txt +++ b/Documentation/doc/Documentation/main.txt @@ -38,7 +38,7 @@ other contexts can be done by obtaining a commercial license from [GeometryFactory](https://www.geometryfactory.com). For more details see the \ref license "License" page. -

Acknowledgement

+

Acknowledgment

We provide bibtex entries for each package so that you can cite \cgal correctly in your publications, see the page \ref how_to_cite_cgal. diff --git a/Documentation/doc/biblio/geom.bib b/Documentation/doc/biblio/geom.bib index 9170696f312..30ee53b25c4 100644 --- a/Documentation/doc/biblio/geom.bib +++ b/Documentation/doc/biblio/geom.bib @@ -101937,7 +101937,7 @@ used in many computational geometry algorithms. Contains C++ code." @inproceedings{mp-drlvd-84 , author = "T. Matsuyama and T. Phillips" -, title = "Digital Realization of the Labelled {Voronoi} Diagram and its Application to Closed Boundary Detection" +, title = "Digital Realization of the Labeled {Voronoi} Diagram and its Application to Closed Boundary Detection" , booktitle = "Proc. IEEE Internat. Conf. Pattern Recogn." , year = 1984 , pages = "478--480" @@ -116182,7 +116182,7 @@ dither and stipple patterns." @techreport{plvt-edecl-96 , author = "P. Parodi and R. Lancewicki and A. Vijh and J. K. Tsotsos" -, title = "Empirically-derived Estimates of the Complexity of Labelling Line Drawings of Polyhedral Scenes" +, title = "Empirically-derived Estimates of the Complexity of Labeling Line Drawings of Polyhedral Scenes" , number = "RBCV-TR-96-52" , institution = "Dept. Comput. Sci., Univ. Toronto" , address = "Toronto, ON" @@ -116759,7 +116759,7 @@ dither and stipple patterns." @article{p-rflg-72 , author = "T. Pavlidis" -, title = "Representation of figures by labelled graphs" +, title = "Representation of figures by labeled graphs" , journal = "Pattern Recogn." , volume = 4 , year = 1972 @@ -133630,7 +133630,7 @@ Contains C code." @inproceedings{sc-aipta-86 , author = "J. K. Sircar and J. A. Cerbrian" -, title = "Application of image processing techniques to the automated labelling of raster digitized contours" +, title = "Application of image processing techniques to the automated labeling of raster digitized contours" , booktitle = "Proc. 2nd Internat. Sympos. Spatial Data Handling" , year = 1986 , pages = "171--184" @@ -151991,7 +151991,7 @@ month = {jun}, articleno = {156}, numpages = {14}, keywords = {polygonal surface mesh, Surface reconstruction, kinetic framework, surface approximation} -} +} @article{levismooth, title={Smooth Rotation Enhanced As-Rigid-As-Possible Mesh Animation}, diff --git a/Filtered_kernel/include/CGAL/Lazy.h b/Filtered_kernel/include/CGAL/Lazy.h index 2f1201ee239..d8f714a1831 100644 --- a/Filtered_kernel/include/CGAL/Lazy.h +++ b/Filtered_kernel/include/CGAL/Lazy.h @@ -1377,7 +1377,7 @@ struct Ith { typedef T2 result_type; // We keep a Sign member object - // for future utilisation, in case + // for future utilization, in case // we have pairs of 2 T2 objects e.g. // for a numeric_point vector returned // from a construction of a possible diff --git a/Generalized_map/include/CGAL/GMap_cell_iterators.h b/Generalized_map/include/CGAL/GMap_cell_iterators.h index 55dbbff8308..1dbef9dcd6e 100644 --- a/Generalized_map/include/CGAL/GMap_cell_iterators.h +++ b/Generalized_map/include/CGAL/GMap_cell_iterators.h @@ -24,7 +24,7 @@ namespace CGAL { * - GMap_cell_iterator: one dart per each i-cell * - GMap_one_dart_per_incident_cell_iterator * - GMap_one_dart_per_cell_iterator - * - one specialisation of the CMap_cell_iterator for the + * - one specialization of the CMap_cell_iterator for the * GMap_dart_iterator_basic_of_all iterator */ diff --git a/Generalized_map/include/CGAL/GMap_dart_iterators.h b/Generalized_map/include/CGAL/GMap_dart_iterators.h index b2eaaf97b70..3e8b843eb6f 100644 --- a/Generalized_map/include/CGAL/GMap_dart_iterators.h +++ b/Generalized_map/include/CGAL/GMap_dart_iterators.h @@ -249,7 +249,7 @@ namespace CGAL { class GMap_dart_iterator_basic_of_two_alpha; /* Class CMap_dart_iterator_basic_of_two_alpha: to iterate * on the darts of the orbit : Ai:: run(*this, d1, ah); mark(*it, amark); @@ -3471,7 +3471,7 @@ namespace CGAL { , 0>:: run(*this,d1,d2); - // We initialise the 0-atttrib to ah + // We initialize the 0-atttrib to ah CGAL::internal::Set_i_attribute_of_dart_functor:: run(*this, d2, ah); } diff --git a/Generalized_map/include/CGAL/Generalized_map_operations.h b/Generalized_map/include/CGAL/Generalized_map_operations.h index 4c65af865db..47fc476bfc9 100644 --- a/Generalized_map/include/CGAL/Generalized_map_operations.h +++ b/Generalized_map/include/CGAL/Generalized_map_operations.h @@ -35,7 +35,7 @@ namespace CGAL { static bool run(const GMap& amap, typename GMap::Dart_const_descriptor adart) { - // TODO? Optimisation for dim-2, and to not test all the darts of the cell? + // TODO? Optimization for dim-2, and to not test all the darts of the cell? bool res = true; for ( CGAL::GMap_dart_const_iterator_of_cell it(amap, adart); res && it.cont(); ++it ) @@ -258,7 +258,7 @@ namespace CGAL { static bool run(const GMap& amap, typename GMap::Dart_const_descriptor adart) { - // TODO ? Optimisation possible to not test all the darts of the cell ? + // TODO ? Optimization possible to not test all the darts of the cell ? bool res = true; for ( CGAL::GMap_dart_const_iterator_of_cell it(amap, adart); res && it.cont(); ++it ) diff --git a/Generator/doc/Generator/CGAL/Random.h b/Generator/doc/Generator/CGAL/Random.h index abf2e0da6ab..d46697dc229 100644 --- a/Generator/doc/Generator/CGAL/Random.h +++ b/Generator/doc/Generator/CGAL/Random.h @@ -15,7 +15,7 @@ a state that uniquely determines the subsequent numbers being produced. It can be very useful, e.g. for debugging, to reproduce a sequence of -random numbers. This can be done by either initialising with a fixed +random numbers. This can be done by either initializing with a fixed seed, or by using the state functions as described below. \note A `Random` object is not deterministic when used by several threads at diff --git a/GraphicsView/demo/Triangulation_2/include/CGAL/Lipschitz_sizing_field_criteria_2.h b/GraphicsView/demo/Triangulation_2/include/CGAL/Lipschitz_sizing_field_criteria_2.h index ad844db31ac..1df267ad955 100644 --- a/GraphicsView/demo/Triangulation_2/include/CGAL/Lipschitz_sizing_field_criteria_2.h +++ b/GraphicsView/demo/Triangulation_2/include/CGAL/Lipschitz_sizing_field_criteria_2.h @@ -62,7 +62,7 @@ public: const double& size() const { return second; } const double& sine() const { return first; } - // q1pivotPoint(); } /*! Sets the Camera's position() and orientation() from an OpenGL ModelView matrix. -This enables a Camera initialisation from an other OpenGL application. \p +This enables a Camera initialization from an other OpenGL application. \p modelView is a 16 GLdouble vector representing a valid OpenGL ModelView matrix, such as one can get using: \code GLdouble mvm[16]; glGetDoublev(GL_MODELVIEW_MATRIX, mvm); diff --git a/HalfedgeDS/include/CGAL/HalfedgeDS_vector.h b/HalfedgeDS/include/CGAL/HalfedgeDS_vector.h index f13214b9bf9..871a27e9179 100644 --- a/HalfedgeDS/include/CGAL/HalfedgeDS_vector.h +++ b/HalfedgeDS/include/CGAL/HalfedgeDS_vector.h @@ -604,7 +604,7 @@ public: // This guard is needed here because, rr==ll==begin, might be true // at this point, causing the decrement to result in undefined - // behaviour. + // behavior. // [Fernando Cacciola] if ( ll < rr ) { diff --git a/Hash_map/include/CGAL/Hash_map/internal/chained_map.h b/Hash_map/include/CGAL/Hash_map/internal/chained_map.h index bea9b0993f0..27e38ee59d5 100644 --- a/Hash_map/include/CGAL/Hash_map/internal/chained_map.h +++ b/Hash_map/include/CGAL/Hash_map/internal/chained_map.h @@ -17,6 +17,7 @@ #define CGAL_HASH_MAP_INTERNAL_CHAINED_MAP_H #include +#include #include #include #include diff --git a/Hash_map/package_info/Hash_map/dependencies b/Hash_map/package_info/Hash_map/dependencies index 25b30f26b79..b611de33d8e 100644 --- a/Hash_map/package_info/Hash_map/dependencies +++ b/Hash_map/package_info/Hash_map/dependencies @@ -1,3 +1,5 @@ Hash_map Installation +Kernel_23 +Profiling_tools STL_Extension diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md index 5b10c290afa..6bef3dfa53a 100644 --- a/Installation/CHANGES.md +++ b/Installation/CHANGES.md @@ -1915,7 +1915,7 @@ Release date: April 2018 after the observer is notified that the edge has been removed. This is symmetric (opposite) to the order of notification when an edge is inserted. - The user can restore old (non-symmetric) behaviour by defining the macro: + The user can restore old (non-symmetric) behavior by defining the macro: `CGAL_NON_SYMETRICAL_OBSERVER_EDGE_REMOVAL_BACKWARD_COMPATIBILITY` @@ -3456,7 +3456,7 @@ Release date: October 2013 vertices which would move of very small displacements. - Introduce new data structures and options for speed-up and compacity. Note that `Compact_mesh_cell_base_3` and - `Mesh_vertex_base_3` are now our favoured implementations of the + `Mesh_vertex_base_3` are now our favored implementations of the concepts MeshCellBase\_3 and MeshVertexBase\_3. - Introduce a new constructor for `Polyhedral_mesh_domain_3` that takes a bounding polyhedron to be meshed along with a polyhedral @@ -4567,9 +4567,9 @@ fixes for this release. - The new macro CGAL\_NO\_DEPRECATED\_CODE can be defined to disable deprecated code, helping users discover if they rely on code that may be removed in subsequent releases. -- Assertion behaviour: It is not possible anymore to set the CONTINUE +- Assertion behavior: It is not possible anymore to set the CONTINUE mode for assertion failures. Functions that allow to change the - assertion behaviour are now declared in + assertion behavior are now declared in ``. - Qt3 based demos are still there but the documentation has been removed as the CGAL::Qt\_Widget will be deprecated. @@ -5118,7 +5118,7 @@ static runtime (/ML). - 2D Placement of Streamlines (new package) Visualizing vector fields is important for many application domains. A good way to do it is to generate streamlines that describe the - flow behaviour. This package implements the "Farthest Point Seeding" + flow behavior. This package implements the "Farthest Point Seeding" algorithm for placing streamlines in 2D vector fields. It generates a list of streamlines corresponding to an input flow using a specified separating distance. The algorithm uses a Delaunay @@ -5140,7 +5140,7 @@ static runtime (/ML). structures. The package supports exact or inexact operations on primitives which move along polynomial trajectories. - Smallest Enclosing Ellipsoid (new package) - This algorithm is new in the chapter Geometric Optimisation. + This algorithm is new in the chapter Geometric Optimization. - 2D Arrangement (major revision) This package can be used to construct, maintain, alter, and display arrangements in the plane. Once an arrangement is constructed, the @@ -5155,9 +5155,9 @@ static runtime (/ML). construction history of the arrangement, such that it is possible to obtain the originating curve of an arrangement subcurve. -- Geometric Optimisation (major revision) +- Geometric Optimization (major revision) The underlying QP solver which is the foundation for several - algorithms in the Geometric Optimisation chapter has been completely + algorithms in the Geometric Optimization chapter has been completely rewritten. - 3D Triangulation (new functionality) Regular\_triangulation\_3 now offers vertex removal. @@ -5483,7 +5483,7 @@ The following functionality has been added or changed: Face\_handle or Vertex\_handle. - New classes Triangulation\_vertex\_base\_with\_info\_2 (and 3) and Triangulation\_face\_base\_with\_info\_2 (and 3) to make - easier the customisation of base classes in most cases. + easier the customization of base classes in most cases. - 2D Triangulation - Regular triangulation provides an easy access to hidden points. - The Triangulation\_hierarchy\_2, which provide an efficient @@ -5985,7 +5985,7 @@ kernels themselves can be used as traits classes in many instances. - The traits class requirements have been changed. - The simplicity test has a completely new implementation. - Properties like convexity, simplicity and area can now be cached - by polygons. You need to set a flag to select this behaviour. + by polygons. You need to set a flag to select this behavior. @@ -6158,7 +6158,7 @@ The following functionality has been added: stored within a class, debugging is easier using this kernel. This kernel can also be faster in some cases than the reference-counted Cartesian kernel. -- New optimisation algorithms +- New optimization algorithms - Min\_annulus\_d - Algorithm for computing the smallest enclosing annulus of points in arbitrary dimension - Polytope\_distance\_d - Algorithm for computing the (squared) @@ -6215,7 +6215,7 @@ The following functionality has been added: triangulations. - Triangulations in 3D were added, both Delaunay triangulations and regular triangulations. -- Min\_quadrilateral optimisations have been added. These are +- Min\_quadrilateral optimizations have been added. These are algorithms to compute the minimum enclosing rectangle/parallelogram (arbitrary orientation) and the minimum enclosing strip of a convex point set. diff --git a/Installation/cmake/modules/FindCORE.cmake b/Installation/cmake/modules/FindCORE.cmake index 6effa1d5e52..adb2ad05f15 100644 --- a/Installation/cmake/modules/FindCORE.cmake +++ b/Installation/cmake/modules/FindCORE.cmake @@ -3,8 +3,6 @@ # CORE_INCLUDE_DIR - the CORE include directory # CORE_LIBRARIES - Libraries needed to use CORE -# TODO: support Windows and MacOSX - # CORE needs GMP include(FindPackageHandleStandardArgs) @@ -17,7 +15,7 @@ if(GMP_FOUND) find_path(CORE_INCLUDE_DIR NAMES CORE.h DOC "The directory containing the CORE include files") find_library(CORE_LIBRARIES NAMES core++ DOC "Path to the core++ library") - + get_filename_component(CORE_LIBRARIES_DIR ${CORE_LIBRARIES} PATH) FIND_PACKAGE_HANDLE_STANDARD_ARGS(CORE "DEFAULT_MSG" CORE_LIBRARIES CORE_INCLUDE_DIR ) diff --git a/Installation/cmake/modules/FindGMP.cmake b/Installation/cmake/modules/FindGMP.cmake index f452c0287f7..38108f3420a 100644 --- a/Installation/cmake/modules/FindGMP.cmake +++ b/Installation/cmake/modules/FindGMP.cmake @@ -5,8 +5,6 @@ # GMP_LIBRARIES_DIR - directory where the GMP libraries are located # GMP_LIBRARIES - Link these to use GMP -# TODO: support MacOSX - include(FindPackageHandleStandardArgs) include(${CMAKE_CURRENT_LIST_DIR}/CGAL_GeneratorSpecificSettings.cmake) diff --git a/Installation/cmake/modules/FindGMPXX.cmake b/Installation/cmake/modules/FindGMPXX.cmake index 277e4b19ef1..ce05fd70346 100644 --- a/Installation/cmake/modules/FindGMPXX.cmake +++ b/Installation/cmake/modules/FindGMPXX.cmake @@ -4,8 +4,6 @@ # GMPXX_INCLUDE_DIR - the GMPXX include directory # GMPXX_LIBRARIES - Libraries needed to use GMPXX -# TODO: support Windows and MacOSX - # GMPXX needs GMP find_package( GMP QUIET ) diff --git a/Installation/cmake/modules/FindMPFR.cmake b/Installation/cmake/modules/FindMPFR.cmake index 4d1bc43553d..b0507120ce0 100644 --- a/Installation/cmake/modules/FindMPFR.cmake +++ b/Installation/cmake/modules/FindMPFR.cmake @@ -4,8 +4,6 @@ # MPFR_LIBRARIES_DIR - Directory where the MPFR libraries are located # MPFR_LIBRARIES - the MPFR libraries -# TODO: support MacOSX - include(FindPackageHandleStandardArgs) include(${CMAKE_CURRENT_LIST_DIR}/CGAL_GeneratorSpecificSettings.cmake) diff --git a/Installation/include/CGAL/config.h b/Installation/include/CGAL/config.h index bd5dafbf017..3506137af1a 100644 --- a/Installation/include/CGAL/config.h +++ b/Installation/include/CGAL/config.h @@ -243,20 +243,6 @@ # define CGAL_SUNPRO_INITIALIZE(C) #endif -//----------------------------------------------------------------------// -// MacOSX specific. -//----------------------------------------------------------------------// - -#ifdef __APPLE__ -# if defined(__GNUG__) && (__GNUG__ == 4) && (__GNUC_MINOR__ == 0) \ - && defined(__OPTIMIZE__) && !defined(CGAL_NO_WARNING_FOR_MACOSX_GCC_4_0_BUG) -# warning "Your configuration may exhibit run-time errors in CGAL code" -# warning "This appears with g++ 4.0 on MacOSX when optimizing" -# warning "You can disable this warning using -DCGAL_NO_WARNING_FOR_MACOSX_GCC_4_0_BUG" -# warning "For more information, see https://www.cgal.org/FAQ.html#mac_optimization_bug" -# endif -#endif - //-------------------------------------------------------------------// // When the global min and max are no longer defined (as macros) // because of NOMINMAX flag definition, we define our own global diff --git a/Installation/include/CGAL/license/Polygon_mesh_processing/combinatorial_repair.h b/Installation/include/CGAL/license/Polygon_mesh_processing/combinatorial_repair.h index cf07529839b..8f3640a725d 100644 --- a/Installation/include/CGAL/license/Polygon_mesh_processing/combinatorial_repair.h +++ b/Installation/include/CGAL/license/Polygon_mesh_processing/combinatorial_repair.h @@ -9,7 +9,7 @@ // // Author(s) : Andreas Fabri // -// Warning: this file is generated, see include/CGAL/licence/README.md +// Warning: this file is generated, see include/CGAL/license/README.md // not entirely true due to the backward compatibility issue #ifndef CGAL_LICENSE_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_H diff --git a/Intersections_3/test/Intersections_3/test_intersections_Line_3.cpp b/Intersections_3/test/Intersections_3/test_intersections_Line_3.cpp index 936e077e018..7285c22be72 100644 --- a/Intersections_3/test/Intersections_3/test_intersections_Line_3.cpp +++ b/Intersections_3/test/Intersections_3/test_intersections_Line_3.cpp @@ -156,9 +156,9 @@ public: Pl pl(pl0, pl1, pl2); P pl3 = pl0 + FT(this->r.get_double()) * V(pl1 - pl0) + FT(this->r.get_double()) * V(pl1 - pl0); if(pl.has_on(l1)) - Base::template check_intersection(L(pl3, l1), pl, L(pl3, l1)); // both points on the plane + Base::check_intersection(L(pl3, l1), pl, L(pl3, l1)); // both points on the plane else - Base::template check_intersection(L(pl3, l1), pl, pl3); // single point on the plane + Base::check_intersection(L(pl3, l1), pl, pl3); // single point on the plane if(pl.oriented_side(l0) != pl.oriented_side(l1)) // l0 xor l1 on pl is fine { diff --git a/Jet_fitting_3/examples/Jet_fitting_3/PolyhedralSurf_rings.h b/Jet_fitting_3/examples/Jet_fitting_3/PolyhedralSurf_rings.h index a5866bee2ad..9c7e08268a8 100644 --- a/Jet_fitting_3/examples/Jet_fitting_3/PolyhedralSurf_rings.h +++ b/Jet_fitting_3/examples/Jet_fitting_3/PolyhedralSurf_rings.h @@ -19,7 +19,7 @@ protected: // typedef typename boost::property_traits::value_type vpm_value_type; // typedef typename boost::property_traits::key_type vpm_key_type; - //vertex indices are initialised to -1 + //vertex indices are initialized to -1 static void reset_ring_indices(std::vector < Vertex * >&vces, VertexPropertyMap& vpm); diff --git a/Kinetic_space_partition/include/CGAL/KSP/utils.h b/Kinetic_space_partition/include/CGAL/KSP/utils.h index d8e99ddddc2..64a2d997296 100644 --- a/Kinetic_space_partition/include/CGAL/KSP/utils.h +++ b/Kinetic_space_partition/include/CGAL/KSP/utils.h @@ -41,7 +41,6 @@ #include #include #include -#include // Boost includes. #include diff --git a/Kinetic_space_partition/include/CGAL/KSP_3/Data_structure.h b/Kinetic_space_partition/include/CGAL/KSP_3/Data_structure.h index 5a64606321a..25a855079e5 100644 --- a/Kinetic_space_partition/include/CGAL/KSP_3/Data_structure.h +++ b/Kinetic_space_partition/include/CGAL/KSP_3/Data_structure.h @@ -205,13 +205,6 @@ public: } }; - struct Reconstructed_model { - std::vector pfaces; - void clear() { - pfaces.clear(); - } - }; - private: std::vector m_support_planes; std::vector m_initial_support_planes; @@ -239,7 +232,6 @@ private: std::vector m_face2sp; std::vector > m_sp2input_polygon; std::map m_input_polygon_map; // Maps index of input polygon onto support plane indices. - Reconstructed_model m_reconstructed_model; public: Data_structure(const Parameters& parameters, const std::string &prefix) : to_exact(), from_exact(), m_parameters(parameters), m_prefix(prefix) { @@ -266,7 +258,6 @@ public: m_volumes.clear(); m_pface_neighbors.clear(); m_input_polygon_map.clear(); - m_reconstructed_model.clear(); } void precompute_iedge_data() { @@ -594,9 +585,6 @@ public: const std::vector &face(std::size_t face_index) const { return m_face2vertices[face_index]; } const Point_3& vertex(std::size_t vertex_index) const { return m_vertices[vertex_index]; } - Reconstructed_model& reconstructed_model() { return m_reconstructed_model; } - const Reconstructed_model& reconstructed_model() const { return m_reconstructed_model; } - /******************************* ** SUPPORT PLANES ** ********************************/ diff --git a/Kinetic_space_partition/include/CGAL/KSP_3/Initializer.h b/Kinetic_space_partition/include/CGAL/KSP_3/Initializer.h index be34da2cb05..74b29a5d461 100644 --- a/Kinetic_space_partition/include/CGAL/KSP_3/Initializer.h +++ b/Kinetic_space_partition/include/CGAL/KSP_3/Initializer.h @@ -17,14 +17,14 @@ // CGAL includes. #include -#include -#include +//#include +//#include #include #include #include #include -#include -#include +//#include +//#include // Internal includes. #include @@ -74,7 +74,7 @@ private: using From_exact = CGAL::Cartesian_converter; using Bbox_3 = CGAL::Bbox_3; - using OBB_traits = CGAL::Oriented_bounding_box_traits_3; + //using OBB_traits = CGAL::Oriented_bounding_box_traits_3; using Parameters = KSP::internal::Parameters_3; diff --git a/Kinetic_space_partition/include/CGAL/Kinetic_space_partition_3.h b/Kinetic_space_partition/include/CGAL/Kinetic_space_partition_3.h index ab53a84a6d9..d231b48e1ee 100644 --- a/Kinetic_space_partition/include/CGAL/Kinetic_space_partition_3.h +++ b/Kinetic_space_partition/include/CGAL/Kinetic_space_partition_3.h @@ -566,7 +566,15 @@ public: #ifndef DOXYGEN_RUNNING void partition(std::size_t k, FT& partition_time, FT& finalization_time, FT& conformal_time) { - m_volumes.clear(); + if (!m_volumes.empty()) { + for (Sub_partition& node : m_partition_nodes) { + node.m_data->reset_to_initialization(); + node.face_neighbors.clear(); + node.face2vertices.clear(); + node.volumes.clear(); + } + m_volumes.clear(); + } Timer timer; timer.start(); partition_time = 0; @@ -2271,6 +2279,7 @@ private: m_points.clear(); m_points.reserve(count); + m_polygons.clear(); m_polygons.reserve(m_input_polygons.size()); To_exact to_exact; @@ -2313,6 +2322,7 @@ private: max_count = (std::max)(max_count, node); } + m_partition_nodes.clear(); m_partition_nodes.resize(leaf_count); m_node2partition.resize(max_count + 1, std::size_t(-1)); diff --git a/Kinetic_space_partition/package_info/Kinetic_space_partition/dependencies b/Kinetic_space_partition/package_info/Kinetic_space_partition/dependencies index 737b0d92b95..831b16749e8 100644 --- a/Kinetic_space_partition/package_info/Kinetic_space_partition/dependencies +++ b/Kinetic_space_partition/package_info/Kinetic_space_partition/dependencies @@ -1,20 +1,16 @@ Algebraic_foundations Arithmetic_kernel -Arrangement_on_surface_2 BGL -Boolean_set_operations_2 Bounding_volumes CGAL_Core Cartesian_kernel Circulator Combinatorial_map Convex_hull_2 -Convex_hull_3 Distance_2 Distance_3 Filtered_kernel Generalized_map -HalfedgeDS Hash_map Homogeneous_kernel Installation @@ -27,7 +23,6 @@ Kinetic_space_partition Linear_cell_complex Modular_arithmetic Number_types -Optimal_bounding_box Orthtree Point_set_3 Point_set_processing_3 @@ -43,7 +38,5 @@ Solver_interface Spatial_sorting Stream_support Surface_mesh -Surface_sweep_2 TDS_2 Triangulation_2 -Union_find diff --git a/Kinetic_surface_reconstruction/examples/Kinetic_surface_reconstruction/ksr_basic.cpp b/Kinetic_surface_reconstruction/examples/Kinetic_surface_reconstruction/ksr_basic.cpp index ce3ef97db1d..d34ab8a44ef 100644 --- a/Kinetic_surface_reconstruction/examples/Kinetic_surface_reconstruction/ksr_basic.cpp +++ b/Kinetic_surface_reconstruction/examples/Kinetic_surface_reconstruction/ksr_basic.cpp @@ -25,23 +25,23 @@ int main() { auto param = CGAL::parameters::maximum_distance(0.5) .maximum_angle(10) .k_neighbors(12) - .minimum_region_size(50); + .minimum_region_size(250); // Algorithm. KSR ksr(point_set, param); ksr.detection_and_partition(1, param); - std::cout << ksr.detect_planar_shapes() << " planar shapes detected" << std::endl; + std::cout << ksr.detected_planar_shapes().size() << " planar shapes detected" << std::endl; std::vector vtx; std::vector > polylist; - ksr.reconstruct_with_ground(0.5, std::back_inserter(vtx), std::back_inserter(polylist)); + ksr.reconstruct_with_ground(0.7, std::back_inserter(vtx), std::back_inserter(polylist)); if (polylist.size() > 0) { std::cout << polylist.size() << " faces in reconstruction" << std::endl; - CGAL::IO::write_polygon_soup("building_0.5.ply", vtx, polylist); + CGAL::IO::write_polygon_soup("building_0.7.ply", vtx, polylist); return EXIT_SUCCESS; } else { diff --git a/Kinetic_surface_reconstruction/examples/Kinetic_surface_reconstruction/ksr_parameters.cpp b/Kinetic_surface_reconstruction/examples/Kinetic_surface_reconstruction/ksr_parameters.cpp index 123c7066af3..9ac52e26b9c 100644 --- a/Kinetic_surface_reconstruction/examples/Kinetic_surface_reconstruction/ksr_parameters.cpp +++ b/Kinetic_surface_reconstruction/examples/Kinetic_surface_reconstruction/ksr_parameters.cpp @@ -13,19 +13,19 @@ #include "include/Parameters.h" #include "include/Terminal_parser.h" -using Kernel = CGAL::Exact_predicates_inexact_constructions_kernel; -using FT = typename Kernel::FT; -using Point_3 = typename Kernel::Point_3; -using Vector_3 = typename Kernel::Vector_3; +using Kernel = CGAL::Exact_predicates_inexact_constructions_kernel; +using FT = typename Kernel::FT; +using Point_3 = typename Kernel::Point_3; +using Vector_3 = typename Kernel::Vector_3; using Segment_3 = typename Kernel::Segment_3; -using Point_set = CGAL::Point_set_3; -using Point_map = typename Point_set::Point_map; -using Normal_map = typename Point_set::Vector_map; +using Point_set = CGAL::Point_set_3; +using Point_map = typename Point_set::Point_map; +using Normal_map = typename Point_set::Vector_map; using KSR = CGAL::Kinetic_surface_reconstruction_3; -using Parameters = CGAL::KSR::All_parameters; +using Parameters = CGAL::KSR::All_parameters; using Terminal_parser = CGAL::KSR::Terminal_parser; using Timer = CGAL::Real_timer; @@ -50,10 +50,10 @@ void parse_terminal(Terminal_parser& parser, Parameters& parameters) { parser.add_str_parameter("-data", parameters.data); // Shape detection. - parser.add_val_parameter("-kn" , parameters.k_neighbors); - parser.add_val_parameter("-dist" , parameters.maximum_distance); + parser.add_val_parameter("-kn", parameters.k_neighbors); + parser.add_val_parameter("-dist", parameters.maximum_distance); parser.add_val_parameter("-angle", parameters.maximum_angle); - parser.add_val_parameter("-minp" , parameters.min_region_size); + parser.add_val_parameter("-minp", parameters.min_region_size); // Shape regularization. @@ -167,10 +167,18 @@ int main(const int argc, const char** argv) { // Algorithm. KSR ksr(point_set, param); + FT max_d, max_dev; + std::size_t num; + ksr.estimate_detection_parameters(max_d, max_dev, num); + std::cout << "d: " << max_d << std::endl; + std::cout << "dev: " << max_dev << std::endl; + std::cout << "num: " << num << std::endl; + Timer timer; timer.start(); std::size_t num_shapes = ksr.detect_planar_shapes(param); + std::cout << num_shapes << " detected planar shapes" << std::endl; FT after_shape_detection = timer.time(); @@ -198,12 +206,12 @@ int main(const int argc, const char** argv) { FT after_reconstruction = timer.time(); if (polylist.size() > 0) - CGAL::IO::write_polygon_soup("polylist_" + std::to_string(parameters.graphcut_lambda) + (parameters.use_ground ? "_g" : "_") + ".off", vtx, polylist); + CGAL::IO::write_polygon_soup("building_c_" + std::to_string(parameters.graphcut_lambda) + (parameters.use_ground ? "_g" : "_") + ".off", vtx, polylist); timer.stop(); const FT time = static_cast(timer.time()); - std::vector lambdas{0.3, 0.5, 0.6, 0.7, 0.73, 0.75, 0.77, 0.8, 0.9, 0.95, 0.99}; + std::vector lambdas{ 0.3, 0.5, 0.6, 0.7, 0.73, 0.75, 0.77, 0.8, 0.9, 0.95, 0.99 }; bool non_empty = false; @@ -214,7 +222,6 @@ int main(const int argc, const char** argv) { vtx.clear(); polylist.clear(); - if (parameters.use_ground) ksr.reconstruct_with_ground(l, std::back_inserter(vtx), std::back_inserter(polylist)); else @@ -223,7 +230,7 @@ int main(const int argc, const char** argv) { if (polylist.size() > 0) { non_empty = true; - CGAL::IO::write_polygon_soup("polylist_" + std::to_string(l) + (parameters.use_ground ? "_g" : "_") + ".off", vtx, polylist); + CGAL::IO::write_polygon_soup("building_c_" + std::to_string(l) + (parameters.use_ground ? "_g" : "_") + ".off", vtx, polylist); } } diff --git a/Kinetic_surface_reconstruction/include/CGAL/Kinetic_surface_reconstruction_3.h b/Kinetic_surface_reconstruction/include/CGAL/Kinetic_surface_reconstruction_3.h index 7df975df13c..6cc639e6749 100644 --- a/Kinetic_surface_reconstruction/include/CGAL/Kinetic_surface_reconstruction_3.h +++ b/Kinetic_surface_reconstruction/include/CGAL/Kinetic_surface_reconstruction_3.h @@ -94,6 +94,9 @@ public: const NamedParameters& np = CGAL::parameters::default_values()) : m_points(points), m_ground_polygon_index(-1), m_kinetic_partition(np) { m_verbose = parameters::choose_parameter(parameters::get_parameter(np, internal_np::verbose), false); m_debug = parameters::choose_parameter(parameters::get_parameter(np, internal_np::debug), false); + + m_point_map = Point_set_processing_3_np_helper::get_point_map(m_points, np); + m_normal_map = Point_set_processing_3_np_helper::get_normal_map(m_points, np); } /*! @@ -133,7 +136,7 @@ public: \cgalParamNBegin{minimum_region_size} \cgalParamDescription{Shape detection: minimum number of 3D points a region must have} \cgalParamType{`std::size_t`} - \cgalParamDefault{1% of input points} + \cgalParamDefault{0.5% of input points} \cgalParamNEnd \cgalParamNBegin{angle_tolerance} \cgalParamDescription{Shape regularization: maximum allowed angle in degrees between plane normals used for parallelism, orthogonality, and axis symmetry} @@ -189,9 +192,6 @@ public: m_regions.clear(); m_planar_regions.clear(); - m_point_map = Point_set_processing_3_np_helper::get_point_map(m_points, np); - m_normal_map = Point_set_processing_3_np_helper::get_normal_map(m_points, np); - create_planar_shapes(np); CGAL_assertion(m_planes.size() == m_polygons.size()); @@ -266,7 +266,7 @@ public: \cgalParamNBegin{minimum_region_size} \cgalParamDescription{Shape detection: minimum number of 3D points a region must have} \cgalParamType{`std::size_t`} - \cgalParamDefault{1% of input points} + \cgalParamDefault{0.5% of input points} \cgalParamNEnd \cgalParamNBegin{angle_tolerance} \cgalParamDescription{Shape regularization: maximum allowed angle in degrees between plane normals used for parallelism, orthogonality, and axis symmetry} @@ -323,6 +323,31 @@ public: partition(k); } + void estimate_detection_parameters(FT& max_distance, FT& normal_dev, std::size_t& min_inliers) { + if (!m_neighbor_query) { + m_neighbor_query = std::unique_ptr(new Neighbor_query(m_points, parameters::point_map(m_point_map).k_neighbors(12))); + m_sorting = std::unique_ptr(new Sorting(m_points, *m_neighbor_query, parameters::point_map(m_point_map))); + m_sorting->sort(); + } + + max_distance = 4 * m_sorting->mean_distance(); + normal_dev = m_sorting->mean_deviation(); + min_inliers = m_points.size() * 0.005; // difficult to estimate as it depends on the kind of data, e.g., object scan vs. large scale urban acquisition + } + + std::size_t estimate_max_subdivision_depth() { + std::size_t max_depth = 1; + std::size_t num_shapes = m_polygon_indices.size(); + + if (num_shapes > 60) + while (num_shapes > 20) { + max_depth++; + num_shapes >>= 3; + } + + return max_depth; + } + /*! \brief initializes the kinetic partition. @@ -347,8 +372,6 @@ public: */ template void initialize_partition(const CGAL_NP_CLASS& np = parameters::default_values()) { - m_kinetic_partition.insert(m_polygon_pts, m_polygon_indices, np); - m_kinetic_partition.initialize(np); } @@ -408,6 +431,9 @@ public: */ template void reconstruct_with_ground(FT lambda, OutputPointIterator pit, OutputPolygonIterator polyit) { + if (m_kinetic_partition.number_of_volumes() == 0) + return; + KSR_3::Graphcut gc(lambda); // add ground consideration here @@ -482,6 +508,9 @@ public: */ template void reconstruct(FT lambda, std::map external_nodes, OutputPointIterator pit, OutputPolygonIterator polyit) { + if (m_kinetic_partition.number_of_volumes() == 0) + return; + KSR_3::Graphcut gc(lambda); // add node consideration here @@ -565,6 +594,9 @@ private: bool m_verbose; bool m_debug; + std::unique_ptr m_neighbor_query; + std::unique_ptr m_sorting; + Point_range &m_points; Point_map m_point_map; Normal_map m_normal_map; @@ -619,7 +651,9 @@ private: m_face_inliers.clear(); auto face_range = m_lcc.template one_dart_per_cell<2>(); + m_faces_lcc.clear(); m_faces_lcc.reserve(face_range.size()); + m_attrib2index_lcc.clear(); for (auto& d : face_range) { typename LCC::Dart_descriptor dh = m_lcc.dart_descriptor(d); @@ -643,9 +677,13 @@ private: // Create value arrays for graph cut m_face_inliers.resize(m_faces_lcc.size()); m_face_area.resize(m_faces_lcc.size()); + m_face_area_lcc.clear(); m_face_area_lcc.resize(m_faces_lcc.size()); + m_face_neighbors_lcc.clear(); m_face_neighbors_lcc.resize(m_faces_lcc.size(), std::pair(-1, -1)); + m_neighbors2index_lcc.clear(); + m_cost_matrix.clear(); m_cost_matrix.resize(2); m_cost_matrix[0].resize(m_kinetic_partition.number_of_volumes() + 6, 0); m_cost_matrix[1].resize(m_kinetic_partition.number_of_volumes() + 6, 0); @@ -1534,7 +1572,7 @@ private: // Start extraction of a border from each dart (each dart is a 1/n-edge) // Search starting darts by searching faces //borders contains Attribute<0> handles casted to std::size_t - std::vector processed(m_lcc.number_of_darts(), false); + std::vector processed(m_lcc.upper_bound_on_dart_ids(), false); borders_per_region.resize(region_index.size()); @@ -1687,13 +1725,8 @@ private: m_volumes[i] = 0; } -// std::size_t count_faces = 0; -// std::size_t count_points = 0; - From_exact from_exact; -// std::size_t idx = 0; - for (std::size_t i = 0; i < m_faces_lcc.size(); i++) { std::size_t v[] = { std::size_t(-1), std::size_t(-1) }; Point_3 c[2]; @@ -1776,17 +1809,40 @@ private: } if (m_verbose) std::cout << "* getting planar shapes using region growing" << std::endl; + FT xmin, ymin, zmin, xmax, ymax, zmax; + auto pit = m_points.begin(); + const Point_3& p = get(m_point_map, *pit); + xmin = xmax = p.x(); + ymin = ymax = p.y(); + zmin = zmax = p.z(); + + pit++; + + while (pit != m_points.end()) { + const Point_3& p = get(m_point_map, *pit); + xmin = (std::min)(xmin, p.x()); + xmax = (std::max)(xmax, p.x()); + ymin = (std::min)(ymin, p.y()); + ymax = (std::max)(ymax, p.y()); + zmin = (std::min)(zmin, p.z()); + zmax = (std::max)(zmax, p.z()); + pit++; + } + + FT diag = CGAL::sqrt((xmax - xmin) * (xmax - xmin) + (ymax - ymin) * (ymax - ymin) + (zmax - zmin) * (zmax - zmin)); + // Parameters. const std::size_t k = parameters::choose_parameter(parameters::get_parameter(np, internal_np::k_neighbors), 12); - const FT max_distance_to_plane = parameters::choose_parameter(parameters::get_parameter(np, internal_np::maximum_distance), FT(1)); + const FT max_distance_to_plane = parameters::choose_parameter(parameters::get_parameter(np, internal_np::maximum_distance), diag * 0.02); const FT max_accepted_angle = parameters::choose_parameter(parameters::get_parameter(np, internal_np::maximum_angle), FT(15)); - const std::size_t min_region_size = parameters::choose_parameter(parameters::get_parameter(np, internal_np::minimum_region_size), 50); + const std::size_t min_region_size = parameters::choose_parameter(parameters::get_parameter(np, internal_np::minimum_region_size), m_points.size() * 0.005); m_detection_distance_tolerance = max_distance_to_plane; // Region growing. - Neighbor_query neighbor_query = CGAL::Shape_detection::Point_set::make_k_neighbor_query( - m_points, CGAL::parameters::k_neighbors(k)); + if (!m_neighbor_query) { + m_neighbor_query = std::unique_ptr(new Neighbor_query(m_points, parameters::point_map(m_point_map).k_neighbors(k))); + } Region_type region_type = CGAL::Shape_detection::Point_set::make_least_squares_plane_fit_region( m_points, @@ -1795,11 +1851,13 @@ private: maximum_angle(max_accepted_angle). minimum_region_size(min_region_size)); - Sorting sorting = CGAL::Shape_detection::Point_set::make_least_squares_plane_fit_sorting(m_points, neighbor_query); - sorting.sort(); + if (!m_sorting) { + m_sorting = std::unique_ptr(new Sorting(m_points, *m_neighbor_query, parameters::point_map(m_point_map))); + m_sorting->sort(); + } Region_growing region_growing( - m_points, sorting.ordered(), neighbor_query, region_type); + m_points, m_sorting->ordered(), *m_neighbor_query, region_type); region_growing.detect(std::back_inserter(m_regions)); std::size_t unassigned = 0; @@ -1818,12 +1876,15 @@ private: std::size_t num_shapes = m_regions.size(); + if (m_regions.empty()) + return; + const bool regularize_axis_symmetry = parameters::choose_parameter(parameters::get_parameter(np, internal_np::regularize_axis_symmetry), false); - const bool regularize_coplanarity = parameters::choose_parameter(parameters::get_parameter(np, internal_np::regularize_coplanarity), false); + const bool regularize_coplanarity = parameters::choose_parameter(parameters::get_parameter(np, internal_np::regularize_coplanarity), true); const bool regularize_orthogonality = parameters::choose_parameter(parameters::get_parameter(np, internal_np::regularize_orthogonality), false); const bool regularize_parallelism = parameters::choose_parameter(parameters::get_parameter(np, internal_np::regularize_parallelism), false); - const FT angle_tolerance = parameters::choose_parameter(parameters::get_parameter(np, internal_np::angle_tolerance), 25); - const FT maximum_offset = parameters::choose_parameter(parameters::get_parameter(np, internal_np::maximum_offset), 0.01); + const FT angle_tolerance = parameters::choose_parameter(parameters::get_parameter(np, internal_np::angle_tolerance), 5); + const FT maximum_offset = parameters::choose_parameter(parameters::get_parameter(np, internal_np::maximum_offset), max_distance_to_plane * 0.5); // Regularize detected planes. @@ -1936,6 +1997,8 @@ private: } num_shapes = m_planar_regions.size(); + + m_kinetic_partition = KSP(m_polygon_pts, m_polygon_indices); } void map_points_to_faces(const std::size_t polygon_index, const std::vector& pts, std::vector > >& face_to_points) { @@ -2041,14 +2104,14 @@ private: // 4 xmin // 5 zmax const double force = static_cast(m_total_inliers * 3); - // 0 - cost for labelled as outside + // 0 - cost for labeled as outside cost_matrix[0][0] = 0; cost_matrix[0][1] = 0; cost_matrix[0][2] = 0; cost_matrix[0][3] = 0; cost_matrix[0][4] = 0; cost_matrix[0][5] = 0; - // 1 - cost for labelled as inside + // 1 - cost for labeled as inside cost_matrix[1][0] = 0; cost_matrix[1][1] = 0; cost_matrix[1][2] = 0; diff --git a/Kinetic_surface_reconstruction/package_info/Kinetic_surface_reconstruction/dependencies b/Kinetic_surface_reconstruction/package_info/Kinetic_surface_reconstruction/dependencies index 50beb4822f2..485a6ca615e 100644 --- a/Kinetic_surface_reconstruction/package_info/Kinetic_surface_reconstruction/dependencies +++ b/Kinetic_surface_reconstruction/package_info/Kinetic_surface_reconstruction/dependencies @@ -1,20 +1,16 @@ Algebraic_foundations Arithmetic_kernel -Arrangement_on_surface_2 BGL -Boolean_set_operations_2 Bounding_volumes Cartesian_kernel CGAL_Core Circulator Combinatorial_map Convex_hull_2 -Convex_hull_3 Distance_2 Distance_3 Filtered_kernel Generalized_map -HalfedgeDS Hash_map Homogeneous_kernel Installation @@ -28,7 +24,6 @@ Kinetic_surface_reconstruction Linear_cell_complex Modular_arithmetic Number_types -Optimal_bounding_box Orthtree Point_set_3 Point_set_processing_3 @@ -48,9 +43,7 @@ Spatial_sorting Stream_support Surface_mesh Surface_mesh_segmentation -Surface_sweep_2 TDS_2 TDS_3 Triangulation_2 Triangulation_3 -Union_find diff --git a/Lab/demo/Lab/Plugins/Mesh_2/mesh_2_dialog.ui b/Lab/demo/Lab/Plugins/Mesh_2/mesh_2_dialog.ui index b809786a2b6..fad384423b7 100644 --- a/Lab/demo/Lab/Plugins/Mesh_2/mesh_2_dialog.ui +++ b/Lab/demo/Lab/Plugins/Mesh_2/mesh_2_dialog.ui @@ -66,7 +66,7 @@ - Run Lloyd Optimisation + Run Lloyd Optimization Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter diff --git a/Lab/demo/Lab/Plugins/Mesh_3/Volume_plane.h b/Lab/demo/Lab/Plugins/Mesh_3/Volume_plane.h index a5399210b43..062755fb0cc 100644 --- a/Lab/demo/Lab/Plugins/Mesh_3/Volume_plane.h +++ b/Lab/demo/Lab/Plugins/Mesh_3/Volume_plane.h @@ -280,7 +280,7 @@ private: //according to the tag, a,b,c dim change but not the scale. We look for the max dimension of the whole image. //A high scale factor will often go with a low dimension, to compensate it. So we don't want a max being the - //higher scale * the higher dim, hence the tag specialisation. + //higher scale * the higher dim, hence the tag specialization. //TODO: set the scale factors according to the dimensipon to avoid doing that. double compute_maxDim(x_tag) const { diff --git a/Lab/demo/Lab/Plugins/Point_set/CMakeLists.txt b/Lab/demo/Lab/Plugins/Point_set/CMakeLists.txt index 6ea28f077af..e6ed10c00dc 100644 --- a/Lab/demo/Lab/Plugins/Point_set/CMakeLists.txt +++ b/Lab/demo/Lab/Plugins/Point_set/CMakeLists.txt @@ -65,6 +65,15 @@ if(TARGET CGAL::Eigen3_support) features_detection_plugin PRIVATE scene_points_with_normal_item CGAL::Eigen3_support) + qt6_wrap_ui(kinetic_surface_reconstruction_pluginUI_FILES Kinetic_surface_reconstruction_plugin.ui) + cgal_lab_plugin( + kinetic_surface_reconstruction_plugin Kinetic_surface_reconstruction_plugin + ${kinetic_surface_reconstruction_pluginUI_FILES} KEYWORDS PointSetProcessing) + target_link_libraries( + kinetic_surface_reconstruction_plugin PRIVATE scene_points_with_normal_item + CGAL::Eigen3_support scene_polygon_soup_item + scene_surface_mesh_item scene_points_with_normal_item) + cgal_lab_plugin(point_set_smoothing_plugin Point_set_smoothing_plugin KEYWORDS PointSetProcessing) target_link_libraries( diff --git a/Lab/demo/Lab/Plugins/Point_set/Kinetic_surface_reconstruction_plugin.cpp b/Lab/demo/Lab/Plugins/Point_set/Kinetic_surface_reconstruction_plugin.cpp new file mode 100644 index 00000000000..f3d9561abda --- /dev/null +++ b/Lab/demo/Lab/Plugins/Point_set/Kinetic_surface_reconstruction_plugin.cpp @@ -0,0 +1,602 @@ + +#include "ui_Kinetic_surface_reconstruction_plugin.h" + +#include "Color_map.h" +#include "Color_ramp.h" +#include "id_printing.h" +#include "Messages_interface.h" + +#include "Scene.h" +#include "Scene_polygon_soup_item.h" +#include "Scene_surface_mesh_item.h" +#include "Scene_points_with_normal_item.h" + +#include +#include +#include + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + + +#include + +using namespace CGAL::Three; + +using FT = typename Kernel::FT; +using Point_3 = typename Kernel::Point_3; +using Vector_3 = typename Kernel::Vector_3; +using Segment_3 = typename Kernel::Segment_3; + +using Point_map = typename Point_set::Point_map; +using Normal_map = typename Point_set::Vector_map; + +using KSR = CGAL::Kinetic_surface_reconstruction_3; + +Viewer_interface* (&getActiveViewer)() = Three::activeViewer; + +class DockWidget + : public QDockWidget, + public Ui::KineticSurfaceReconstructionWidget +{ +public: + DockWidget(const QString& name, QWidget* parent) + : QDockWidget(name, parent) + { + setupUi(this); + } +}; + +class Kinetic_surface_reconstruction_plugin + : public QObject, + public CGAL_Lab_plugin_helper +{ + Q_OBJECT + Q_INTERFACES(CGAL::Three::CGAL_Lab_plugin_interface) + Q_PLUGIN_METADATA(IID "com.geometryfactory.CGALLab.PluginInterface/1.0") +private: + QAction* actionKineticSurfaceReconstruction; + + DockWidget* dock_widget; + + Scene_points_with_normal_item* m_pwn_item = nullptr; + + // A dock widget allows switching between items which makes managing parameters and intermediate results a mess. + // I could create a map from item to KSR and also reference intermediate results (in case they are recalculated with changed parameters)? + + KSR *m_ksr = nullptr; + bool m_known_file = false; + +public: + virtual ~Kinetic_surface_reconstruction_plugin() { + if (m_ksr) + delete m_ksr; + m_ksr = nullptr; + } + + bool applicable(QAction*) const override + { + Scene_item* item = scene->item(scene->mainSelectionIndex()); + if (!item) + return false; + + Scene_points_with_normal_item* pwn_item = qobject_cast(item); + + if (pwn_item != nullptr && pwn_item->has_normals()) + return true; + else + return false; + } + + QList actions() const override + { + return QList() << actionKineticSurfaceReconstruction; + } + + void init(QMainWindow* mw, + Scene_interface* sc, + Messages_interface*) override + { + this->scene = sc; + this->mw = mw; + + // Main action + actionKineticSurfaceReconstruction = new QAction(QString("Kinetic Surface Reconstruction"), mw); + actionKineticSurfaceReconstruction->setObjectName("actionKineticSurfaceReconstruction"); + + connect(actionKineticSurfaceReconstruction, SIGNAL(triggered()), + this, SLOT(openDialog())); + + Scene* scene_item = static_cast(scene); + connect(scene_item, SIGNAL(itemIndexSelected(int)), + this, SLOT(onItemIndexSelected(int))); + + // Dock Widget + dock_widget = new DockWidget("Kinetic Surface Reconstruction", mw); + addDockWidget(dock_widget); + + dock_widget->setVisible(false); + //dock_widget->setEnabled(false); + + connect(dock_widget->sdRunButton, SIGNAL(clicked(bool)), this, SLOT(run_detection())); + connect(dock_widget->partRunButton, SIGNAL(clicked(bool)), this, SLOT(run_partition())); + connect(dock_widget->recRunButton, SIGNAL(clicked(bool)), this, SLOT(run_reconstruction())); + connect(dock_widget->partSubdivisionCheck, SIGNAL(stateChanged(int)), this, SLOT(onSubdivisionStateChanged(int))); + connect(dock_widget, SIGNAL(visibilityChanged(bool)), this, SLOT(onVisibilityChanged(bool))); + } +private Q_SLOTS: + void openDialog() + { + if (!dock_widget->isVisible()) + dock_widget->show(); + dock_widget->raise(); + } + + void closure() override + { + dock_widget->hide(); + if (m_ksr) { + delete m_ksr; + m_ksr = nullptr; + } + } + + void onItemIndexSelected(int item_index) { + if (!dock_widget->isVisible()) + return; + + Scene_points_with_normal_item *selection = qobject_cast(scene->item(item_index)); + if (selection == nullptr) { + // Keep old reference if no new point cloud has been selected. + if (m_pwn_item == nullptr) + dock_widget->setEnabled(false); + + return; + } + + if (m_pwn_item == selection) { + // The point cloud may have normals added after loading. + if (m_pwn_item->has_normals()) { + enable_detection(true); + enable_regularization(true); + } + return; + } + + QObject* scene_obj = dynamic_cast(scene); + + if (m_pwn_item) { + disconnect(m_pwn_item, nullptr, this, SLOT(onItemChanged())); + + if (scene_obj) + disconnect(scene_obj, SIGNAL(itemAboutToBeDestroyed(CGAL::Three::Scene_item*)), this, SLOT(onItemDestroyed(CGAL::Three::Scene_item*))); + } + + m_pwn_item = selection; + connect(m_pwn_item, SIGNAL(itemChanged()), this, SLOT(onItemChanged())); + + if (scene_obj) + connect(scene_obj, SIGNAL(itemAboutToBeDestroyed(CGAL::Three::Scene_item*)), this, SLOT(onItemDestroyed(CGAL::Three::Scene_item*))); + + if (m_ksr) { + delete m_ksr; + m_ksr = nullptr; + } + + dock_widget->setEnabled(true); + + if (m_pwn_item && m_pwn_item->has_normals()) { + enable_detection(true); + enable_regularization(true); + } + else { + enable_detection(false); + enable_regularization(false); + } + + enable_partition(false); + enable_reconstruction(false); + + prefill_parameters(); + } + + void onItemChanged() { + // Enable detection if the point set item has normals now + assert(m_pwn_item); + + if (m_pwn_item->has_normals()) + enable_detection(true); + } + + void onItemDestroyed(CGAL::Three::Scene_item* item) { + if (m_pwn_item == item) { + m_pwn_item = nullptr; + if (m_ksr) { + delete m_ksr; + m_ksr = nullptr; + } + + enable_detection(false); + enable_regularization(false); + enable_partition(false); + enable_reconstruction(false); + dock_widget->hide(); + } + } + + void run_detection() { + assert(m_pwn_item); + + if (!m_pwn_item->has_normals()) + return; + + m_ksr->detect_planar_shapes(CGAL::parameters::maximum_distance(dock_widget->sdMaxDistanceBox->value()) + .maximum_angle(dock_widget->sdMaxAngleBox->value()) + .k_neighbors(dock_widget->sdkNeighborsBox->value()) + .minimum_region_size(dock_widget->sdMinRegionSizeBox->value()) + .regularize_parallelism(dock_widget->srParallelismCheck->isChecked()) + .regularize_coplanarity(dock_widget->srCoplanarityCheck->isChecked()) + .regularize_orthogonality(dock_widget->srOrthogonalityCheck->isChecked()) + .regularize_axis_symmetry(false) + .angle_tolerance(dock_widget->srAngleToleranceBox->value()) + .maximum_offset(dock_widget->srMaxOffsetBox->value())); + + CGAL::Three::Three::information(QString::number(m_ksr->detected_planar_shapes().size()) + " regularized planar shapes detected"); + + if (m_ksr->detected_planar_shapes().empty()) { + enable_partition(false); + enable_reconstruction(false); + + return; + } + + const std::vector &planes = m_ksr->detected_planar_shapes(); + const std::vector> ®ions = m_ksr->detected_planar_shape_indices(); + + SMesh* mesh = new SMesh(); + std::vector > polys; + for (std::size_t i = 0; i < regions.size(); i++) + convex_hull(regions[i], planes[i], polys); + + for (std::size_t i = 0; i < polys.size(); i++) { + std::vector vtx(polys[i].size()); + for (std::size_t j = 0; j < polys[i].size(); j++) + vtx[j] = mesh->add_vertex(polys[i][j]); + mesh->add_face(vtx); + } + + Scene_surface_mesh_item* new_item = new Scene_surface_mesh_item(mesh); + new_item->setName(tr("%1 convex shapes d%2 a%3").arg(m_pwn_item->name()).arg(dock_widget->sdMaxDistanceBox->value()).arg(dock_widget->sdMaxAngleBox->value())); + new_item->setColor(Qt::darkCyan); + scene->addItem(new_item); + + if (!m_known_file) { + std::size_t max_depth = m_ksr->estimate_max_subdivision_depth(); + dock_widget->partReorientCheck->setChecked(true); + dock_widget->partSubdivisionCheck->setChecked(true); + dock_widget->partMaxDepthBox->setValue(max_depth); + dock_widget->partPolygonsPerNodeBox->setValue(40); + dock_widget->partKBox->setValue(2); + } + + enable_partition(true); + enable_reconstruction(false); + } + + void run_partition() { + assert(m_pwn_item); + assert(m_ksr); + assert(!m_ksr->detected_planar_shapes().empty()); + + m_ksr->initialize_partition(CGAL::parameters::reorient_bbox(dock_widget->partReorientCheck->checkState() == Qt::Checked) + .max_octree_depth(dock_widget->partSubdivisionCheck->checkState() == Qt::Checked ? dock_widget->partMaxDepthBox->value() : 0) + .max_octree_node_size(dock_widget->partPolygonsPerNodeBox->value())); + + m_ksr->partition(dock_widget->partKBox->value()); + + CGAL::Three::Three::information(QString::number(m_ksr->kinetic_partition().number_of_volumes()) + " volumes in partition"); + + if (m_ksr->kinetic_partition().number_of_volumes() != 0) + enable_reconstruction(true); + else std::cout << "kinetic partition is empty!" << std::endl; + } + + void run_reconstruction() { + assert(m_pwn_item); + assert(m_ksr); + assert(m_ksr->kinetic_partition().number_of_volumes() != 0); + + std::vector vtx; + std::vector > polylist; + + std::map external_nodes; + + if (dock_widget->recGroundCheck->checkState() == Qt::Checked) { + external_nodes[KSR::KSP::Face_support::ZMIN] = false; + m_ksr->reconstruct_with_ground(dock_widget->recLambdaBox->value(), std::back_inserter(vtx), std::back_inserter(polylist)); + } + else { + m_ksr->reconstruct(dock_widget->recLambdaBox->value(), external_nodes, std::back_inserter(vtx), std::back_inserter(polylist)); + } + + if (!polylist.empty()) + { + // Add polygon mesh to scene + Scene_polygon_soup_item* new_item = new Scene_polygon_soup_item(); + new_item->load(vtx, polylist); + new_item->setName(tr("%1 ksr lambda %2").arg(m_pwn_item->name()).arg(dock_widget->recLambdaBox->value())); + new_item->setColor(Qt::darkGray); + new_item->invalidateOpenGLBuffers(); + scene->addItem(new_item); + } + } + + void onSubdivisionStateChanged(int state) { + dock_widget->partMaxDepthBox->setEnabled(state != 0); + dock_widget->partPolygonsPerNodeBox->setEnabled(state != 0); + } + + void onVisibilityChanged(bool) { + if (!dock_widget->isVisible()) + return; + std::cout << "in visibility changed" << std::endl; + } + +private: + void convex_hull(const std::vector& region, const CGAL::Epick::Plane_3& plane, std::vector > &polys) { + if (m_pwn_item == nullptr) + return; + + Point_set* points = m_pwn_item->point_set(); + + std::vector pts2d; + pts2d.reserve(region.size()); + for (const std::size_t idx : region) { + CGAL_assertion(idx < points->size()); + const auto& p = points->point(idx); + const auto q = plane.projection(p); + const auto point = plane.to_2d(q); + pts2d.push_back(point); + } + CGAL_assertion(pts2d.size() == region.size()); + + std::vector ch; + CGAL::convex_hull_2(pts2d.begin(), pts2d.end(), std::back_inserter(ch)); + + std::vector polygon; + for (const auto& p : ch) { + const auto point = plane.to_3d(p); + polygon.push_back(point); + } + + polys.push_back(polygon); + } + void enable_detection(bool enable) { + dock_widget->shapeDetectionGroup->setEnabled(enable); + dock_widget->sdRunButton->setEnabled(enable); + } + + void enable_regularization(bool enable) { + dock_widget->shapeRegularizationGroup->setEnabled(enable); + } + + void enable_partition(bool enable) { + dock_widget->kineticPartitionGroup->setEnabled(enable); + dock_widget->partRunButton->setEnabled(enable); + } + + void enable_reconstruction(bool enable) { + dock_widget->kineticReconstructionGroup->setEnabled(enable); + dock_widget->recRunButton->setEnabled(enable); + } + + void prefill_parameters() { + if (m_pwn_item == nullptr) + return; + + std::string filename = m_pwn_item->name().toStdString(); + + m_known_file = true; + + if (m_ksr) { + delete m_ksr; + m_ksr = nullptr; + } + + Point_set* points = m_pwn_item->point_set(); + m_ksr = new KSR(*points); + + if (filename == "foam_box" || filename == "foam_box_new") { + // Shape detection parameters + dock_widget->sdMaxDistanceBox->setValue(0.05); + dock_widget->sdMaxAngleBox->setValue(15); + dock_widget->sdMinRegionSizeBox->setValue(250); + dock_widget->sdkNeighborsBox->setValue(12); + // Shape regularization parameters + dock_widget->srParallelismCheck->setChecked(true); + dock_widget->srOrthogonalityCheck->setChecked(false); + dock_widget->srCoplanarityCheck->setChecked(true); + dock_widget->srAngleToleranceBox->setValue(10); + dock_widget->srMaxOffsetBox->setValue(0.01); + // Partition parameters + dock_widget->partReorientCheck->setChecked(false); + dock_widget->partSubdivisionCheck->setChecked(true); + dock_widget->partMaxDepthBox->setValue(3); + dock_widget->partPolygonsPerNodeBox->setValue(40); + dock_widget->partKBox->setValue(2); + // Reconstruction parameters + dock_widget->recGroundCheck->setChecked(false); + dock_widget->recLambdaBox->setValue(0.7); + } + else if (filename == "lans") { + // Shape detection parameters + dock_widget->sdMaxDistanceBox->setValue(0.15); + dock_widget->sdMaxAngleBox->setValue(20); + dock_widget->sdMinRegionSizeBox->setValue(300); + dock_widget->sdkNeighborsBox->setValue(12); + // Shape regularization parameters + dock_widget->srParallelismCheck->setChecked(true); + dock_widget->srOrthogonalityCheck->setChecked(false); + dock_widget->srCoplanarityCheck->setChecked(true); + dock_widget->srAngleToleranceBox->setValue(8); + dock_widget->srMaxOffsetBox->setValue(0.08); + // Partition parameters + dock_widget->partReorientCheck->setChecked(false); + dock_widget->partSubdivisionCheck->setChecked(true); + dock_widget->partMaxDepthBox->setValue(3); + dock_widget->partPolygonsPerNodeBox->setValue(40); + dock_widget->partKBox->setValue(2); + // Reconstruction parameters + dock_widget->recGroundCheck->setChecked(false); + dock_widget->recLambdaBox->setValue(0.7); + } + else if (filename == "building_c_1M") { + // Shape detection parameters + dock_widget->sdMaxDistanceBox->setValue(1.1); + dock_widget->sdMaxAngleBox->setValue(26); + dock_widget->sdMinRegionSizeBox->setValue(500); + dock_widget->sdkNeighborsBox->setValue(15); + // Shape regularization parameters + dock_widget->srParallelismCheck->setChecked(true); + dock_widget->srOrthogonalityCheck->setChecked(false); + dock_widget->srCoplanarityCheck->setChecked(true); + dock_widget->srAngleToleranceBox->setValue(3); + dock_widget->srMaxOffsetBox->setValue(0.5); + // Partition parameters + dock_widget->partReorientCheck->setChecked(false); + dock_widget->partSubdivisionCheck->setChecked(true); + dock_widget->partMaxDepthBox->setValue(3); + dock_widget->partPolygonsPerNodeBox->setValue(40); + dock_widget->partKBox->setValue(2); + // Reconstruction parameters + dock_widget->recGroundCheck->setChecked(true); + dock_widget->recLambdaBox->setValue(0.77); + } + else if (filename == "dragon") { + // Shape detection parameters + dock_widget->sdMaxDistanceBox->setValue(0.7); + dock_widget->sdMaxAngleBox->setValue(26); + dock_widget->sdMinRegionSizeBox->setValue(150); + dock_widget->sdkNeighborsBox->setValue(10); + // Shape regularization parameters + dock_widget->srParallelismCheck->setChecked(false); + dock_widget->srOrthogonalityCheck->setChecked(false); + dock_widget->srCoplanarityCheck->setChecked(false); + dock_widget->srAngleToleranceBox->setValue(0); + dock_widget->srMaxOffsetBox->setValue(0); + // Partition parameters + dock_widget->partReorientCheck->setChecked(false); + dock_widget->partSubdivisionCheck->setChecked(true); + dock_widget->partMaxDepthBox->setValue(3); + dock_widget->partPolygonsPerNodeBox->setValue(40); + dock_widget->partKBox->setValue(1); + // Reconstruction parameters + dock_widget->recGroundCheck->setChecked(false); + dock_widget->recLambdaBox->setValue(0.75); + } + else if (filename == "full_thing_pds_1M") { + // Shape detection parameters + dock_widget->sdMaxDistanceBox->setValue(0.3); + dock_widget->sdMaxAngleBox->setValue(36); + dock_widget->sdMinRegionSizeBox->setValue(30); + dock_widget->sdkNeighborsBox->setValue(12); + // Shape regularization parameters + dock_widget->srParallelismCheck->setChecked(true); + dock_widget->srOrthogonalityCheck->setChecked(false); + dock_widget->srCoplanarityCheck->setChecked(true); + dock_widget->srAngleToleranceBox->setValue(3); + dock_widget->srMaxOffsetBox->setValue(0.05); + // Partition parameters + dock_widget->partReorientCheck->setChecked(false); + dock_widget->partSubdivisionCheck->setChecked(true); + dock_widget->partMaxDepthBox->setValue(3); + dock_widget->partPolygonsPerNodeBox->setValue(40); + dock_widget->partKBox->setValue(3); + // Reconstruction parameters + dock_widget->recGroundCheck->setChecked(false); + dock_widget->recLambdaBox->setValue(0.5); + } + else if (filename == "hilbert_cube2_pds_100k") { + // Shape detection parameters + dock_widget->sdMaxDistanceBox->setValue(0.3); + dock_widget->sdMaxAngleBox->setValue(10); + dock_widget->sdMinRegionSizeBox->setValue(10); + dock_widget->sdkNeighborsBox->setValue(12); + // Shape regularization parameters + dock_widget->srParallelismCheck->setChecked(true); + dock_widget->srOrthogonalityCheck->setChecked(true); + dock_widget->srCoplanarityCheck->setChecked(true); + dock_widget->srAngleToleranceBox->setValue(5); + dock_widget->srMaxOffsetBox->setValue(0.03); + // Partition parameters + dock_widget->partReorientCheck->setChecked(false); + dock_widget->partSubdivisionCheck->setChecked(true); + dock_widget->partMaxDepthBox->setValue(3); + dock_widget->partPolygonsPerNodeBox->setValue(40); + dock_widget->partKBox->setValue(4); + // Reconstruction parameters + dock_widget->recGroundCheck->setChecked(false); + dock_widget->recLambdaBox->setValue(0.5); + } + else if (filename == "Meetingroom_3M") { + // Shape detection parameters + dock_widget->sdMaxDistanceBox->setValue(0.03); + dock_widget->sdMaxAngleBox->setValue(19); + dock_widget->sdMinRegionSizeBox->setValue(100); + dock_widget->sdkNeighborsBox->setValue(15); + // Shape regularization parameters + dock_widget->srParallelismCheck->setChecked(true); + dock_widget->srOrthogonalityCheck->setChecked(true); + dock_widget->srCoplanarityCheck->setChecked(true); + dock_widget->srAngleToleranceBox->setValue(10); + dock_widget->srMaxOffsetBox->setValue(0.03); + // Partition parameters + dock_widget->partReorientCheck->setChecked(false); + dock_widget->partSubdivisionCheck->setChecked(true); + dock_widget->partMaxDepthBox->setValue(3); + dock_widget->partPolygonsPerNodeBox->setValue(40); + dock_widget->partKBox->setValue(3); + // Reconstruction parameters + dock_widget->recGroundCheck->setChecked(false); + dock_widget->recLambdaBox->setValue(0.5); + } + else { + m_known_file = false; + FT max_distance, max_angle; + std::size_t min_region_size; + m_ksr->estimate_detection_parameters(max_distance, max_angle, min_region_size); + dock_widget->sdMaxDistanceBox->setValue(max_distance); + dock_widget->sdMaxAngleBox->setValue(max_angle); + dock_widget->sdMinRegionSizeBox->setValue(min_region_size); + dock_widget->sdkNeighborsBox->setValue(12); + dock_widget->srCoplanarityCheck->setChecked(true); + dock_widget->srMaxOffsetBox->setValue(max_distance * 0.5); + } + } +}; + +#include "Kinetic_surface_reconstruction_plugin.moc" diff --git a/Lab/demo/Lab/Plugins/Point_set/Kinetic_surface_reconstruction_plugin.ui b/Lab/demo/Lab/Plugins/Point_set/Kinetic_surface_reconstruction_plugin.ui new file mode 100644 index 00000000000..96d63e2d325 --- /dev/null +++ b/Lab/demo/Lab/Plugins/Point_set/Kinetic_surface_reconstruction_plugin.ui @@ -0,0 +1,425 @@ + + + KineticSurfaceReconstructionWidget + + + true + + + + 0 + 0 + 372 + 590 + + + + + 0 + 0 + + + + + 372 + 590 + + + + Kinetic Surface Reconstruction + + + + + + + partition + + + + + + + false + + + Shape Detection + + + + + + Maximum angle + + + + + + + Maximum distance + + + + + + + Smallest allowed size for a primitive + + + 5 + + + 10000 + + + 50 + + + 500 + + + + + + + Minimum region size + + + + + + + Maximum distance from a point to a plane. + + + 1.0 + + + false + + + + + + + Maximum angle in degrees between the normal of a point and the normal of a plane. + + + 25 + + + + + + + k neighbors + + + + + + + K neighborhood of a point considered for region growing + + + 100 + + + 5 + + + 12 + + + + + + + + + + false + + + Shape Regularization + + + + + + Maximum allowed orthogonal distance between two parallel planes such that they are considered to be coplanar. + + + 25 + + + + + + + Angle tolerance + + + + + + + Maximum allowed angle in degrees between plane normals used for parallelism and orthogonality. + + + 1.0 + + + false + + + + + + + Maximum offset + + + + + + + + + Planes, which are detected as near parallel, are made exactly parallel. + + + Parallelism + + + + + + + Parallel planes, which are detected as near coplanar, are made exactly coplanar. + + + Coplanarity + + + + + + + Planes, which are detected as near orthogonal, are made exactly orthogonal. + + + Orthogonality + + + + + + + + + + + + false + + + Kinetic Surface Reconstruction + + + + + + Estimates a ground level from the detected shapes. Sets the outside label of all faces on the bounding box below the ground level to inside. + + + Estimate ground + + + + + + + + + + Lambda + + + + + + + + + + Lambda trades data faithfulness for low complexity in the energy minimization. + + + 0.7 + + + false + + + + + + + + + + false + + + Kinetic Space Partition + + + + + + K + + + + + + + Maximum depth + + + + + + + Maximum number of intersections that can occur for a polygon before its expansion stops + + + 1 + + + 100 + + + 1 + + + 2 + + + + + + + + + Aligns the x-axis of the bounding box with the direction of the largest variation in horizontal direction of the input data while maintaining the z-axis. + + + Bounding box reorientation + + + + + + + The kinetic partition is split into subpartitions using an octree if the number of intersecting polygons per node is larger than specified. + + + Subdivision + + + true + + + + + + + + + Maximum octree depth for subdivision + + + 1 + + + 100 + + + 1 + + + 3 + + + + + + + Polygons per Node + + + + + + + Maximum number of intersecting polygons for an octree node before it is split + + + 1 + + + 100 + + + 1 + + + 40 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + detect and regularize + + + + + + + reconstruct + + + + + + + + + DoubleEdit + QLineEdit +
CGAL_double_edit.h
+
+
+ + +
diff --git a/Lab/demo/Lab/Plugins/Point_set/Point_set_normal_estimation_plugin.cpp b/Lab/demo/Lab/Plugins/Point_set/Point_set_normal_estimation_plugin.cpp index 505e7e6d769..5ebd97614e1 100644 --- a/Lab/demo/Lab/Plugins/Point_set/Point_set_normal_estimation_plugin.cpp +++ b/Lab/demo/Lab/Plugins/Point_set/Point_set_normal_estimation_plugin.cpp @@ -287,6 +287,7 @@ void CGAL_Lab_point_set_normal_estimation_plugin::on_actionNormalEstimation_trig // Updates scene item->invalidateOpenGLBuffers(); scene->itemChanged(index); + item->itemChanged(); QApplication::restoreOverrideCursor(); } diff --git a/Lab/demo/Lab/Scene_item.cpp b/Lab/demo/Lab/Scene_item.cpp index 1b54ec52993..104d2af1c10 100644 --- a/Lab/demo/Lab/Scene_item.cpp +++ b/Lab/demo/Lab/Scene_item.cpp @@ -15,6 +15,7 @@ CGAL::Three::Scene_item::Scene_item(int buffers_size, int vaos_size) are_buffers_filled(false), rendering_mode(FlatPlusEdges), defaultContextMenu(nullptr), + context_menu_outdated(false), buffersSize(buffers_size), vaosSize(vaos_size), vaos(vaos_size) @@ -94,6 +95,11 @@ QString CGAL::Three::Scene_item::renderingModeName() const } QMenu* CGAL::Three::Scene_item::contextMenu() { + if (context_menu_outdated && defaultContextMenu) { + delete defaultContextMenu; + defaultContextMenu = nullptr; + } + if(defaultContextMenu) { defaultContextMenu->setTitle(name()); return defaultContextMenu; @@ -111,14 +117,17 @@ QMenu* CGAL::Three::Scene_item::contextMenu() slotName(RenderingMode(mode))); defaultContextMenu->actions().last()->setProperty("is_groupable", true); } + + context_menu_outdated = false; + return defaultContextMenu; } void CGAL::Three::Scene_item::resetMenu() { - delete defaultContextMenu; - defaultContextMenu = nullptr; + context_menu_outdated = true; } + CGAL::Three::Scene_group_item* CGAL::Three::Scene_item::parentGroup() const { return parent_group; } diff --git a/Lab/demo/Lab/Scene_points_with_normal_item.cpp b/Lab/demo/Lab/Scene_points_with_normal_item.cpp index 0423a7d99b9..a75bf57bf79 100644 --- a/Lab/demo/Lab/Scene_points_with_normal_item.cpp +++ b/Lab/demo/Lab/Scene_points_with_normal_item.cpp @@ -850,6 +850,7 @@ QMenu* Scene_points_with_normal_item::contextMenu() container->menuAction()->setProperty("is_groupable", true); container->addAction(sliderAction); menu->addMenu(container); + d->normal_Slider->show(); } QMenu *container = new QMenu(tr("Points Size")); QWidgetAction *sliderAction = new QWidgetAction(nullptr); @@ -861,6 +862,7 @@ QMenu* Scene_points_with_normal_item::contextMenu() container->menuAction()->setProperty("is_groupable", true); container->addAction(sliderAction); menu->addMenu(container); + d->point_Slider->show(); d->actionDeleteSelection = menu->addAction(tr("Delete Selection")); d->actionDeleteSelection->setObjectName("actionDeleteSelection"); diff --git a/Lab/demo/Lab/Viewer.h b/Lab/demo/Lab/Viewer.h index 9989344a402..3af444f63b9 100644 --- a/Lab/demo/Lab/Viewer.h +++ b/Lab/demo/Lab/Viewer.h @@ -144,15 +144,15 @@ protected: void paintEvent(QPaintEvent *)override; void paintGL()override; - //!Defines the behaviour for the mouse press events + //!Defines the behavior for the mouse press events void mousePressEvent(QMouseEvent*)override; void mouseDoubleClickEvent(QMouseEvent*)override; void wheelEvent(QWheelEvent *)override; - //!Defines the behaviour for the key press events + //!Defines the behavior for the key press events void keyPressEvent(QKeyEvent*)override; //!Deal with context menu events void contextMenuEvent(QContextMenuEvent*)override; - //!Defines the behaviour for the key release events + //!Defines the behavior for the key release events void keyReleaseEvent(QKeyEvent *)override; protected: diff --git a/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp b/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp index 9237d191347..855d26e4bb6 100644 --- a/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp +++ b/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp @@ -2780,7 +2780,7 @@ void MainWindow::sierpinski_carpet_copy_attributes_and_embed_vertex LCC::Helper::Foreach_enabled_attributes_except , 0>:: run(*(scene.lcc),sierpinskiCarpetSurfaces[0],it); - // We initialise the 0-atttrib to ah + // We initialize the 0-atttrib to ah scene.lcc->set_dart_attribute<0>(it, ah); } } diff --git a/Linear_cell_complex/doc/Linear_cell_complex/Linear_cell_complex.txt b/Linear_cell_complex/doc/Linear_cell_complex/Linear_cell_complex.txt index cac02fc6200..d58e0f6e2e5 100644 --- a/Linear_cell_complex/doc/Linear_cell_complex/Linear_cell_complex.txt +++ b/Linear_cell_complex/doc/Linear_cell_complex/Linear_cell_complex.txt @@ -252,7 +252,7 @@ Before applying the sew operation, the eight vertices of the first cube are colo \subsection Linear_cell_complexAutomaticAttributesManagement Automatic Attribute Management \anchor ssecAttributesManagement -The following example illustrates the use of the automatic attributes management for a linear cell complex. An off file is loaded into a 2D linear cell complex embedded in 3D. Then, a certain percentage of edges is removed from the linear cell complex. The same method is applied twice: the first time by using the automatic attributes management (which is the default behaviour) and the second time by calling first \link GenericMap::set_automatic_attributes_management `set_automatic_attributes_management(false)`\endlink to disable the automatic updating of attributes. +The following example illustrates the use of the automatic attributes management for a linear cell complex. An off file is loaded into a 2D linear cell complex embedded in 3D. Then, a certain percentage of edges is removed from the linear cell complex. The same method is applied twice: the first time by using the automatic attributes management (which is the default behavior) and the second time by calling first \link GenericMap::set_automatic_attributes_management `set_automatic_attributes_management(false)`\endlink to disable the automatic updating of attributes. We can observe that the second run is faster than the first one. Indeed, updating attribute for each edge removal give a bigger complexity. Moreover, the gain increases when the percentage of removed edges increases. diff --git a/MacOSX/auxiliary/cgal_app.icns b/MacOSX/auxiliary/cgal_app.icns deleted file mode 100644 index 19cc33fadb1..00000000000 Binary files a/MacOSX/auxiliary/cgal_app.icns and /dev/null differ diff --git a/MacOSX/package_info/MacOSX/copyright b/MacOSX/package_info/MacOSX/copyright deleted file mode 100644 index 0f433a97f01..00000000000 --- a/MacOSX/package_info/MacOSX/copyright +++ /dev/null @@ -1 +0,0 @@ -Foundation for Research and Technology-Hellas (Greece). \ No newline at end of file diff --git a/MacOSX/package_info/MacOSX/description.txt b/MacOSX/package_info/MacOSX/description.txt deleted file mode 100644 index 93fd0201502..00000000000 --- a/MacOSX/package_info/MacOSX/description.txt +++ /dev/null @@ -1,3 +0,0 @@ -Package for MacOSX support. -Contains scripts and icon files needed for creating demos -in the MacOSX operating system. diff --git a/MacOSX/package_info/MacOSX/maintainer b/MacOSX/package_info/MacOSX/maintainer deleted file mode 100644 index b172ee135bb..00000000000 --- a/MacOSX/package_info/MacOSX/maintainer +++ /dev/null @@ -1 +0,0 @@ -Menelaos Karavelas diff --git a/MacOSX/scripts/cgal_make_macosx_app b/MacOSX/scripts/cgal_make_macosx_app deleted file mode 100755 index 045cec21c0a..00000000000 --- a/MacOSX/scripts/cgal_make_macosx_app +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh - -# Copyright (c) 2005,2006,2013 -# Foundation for Research and Technology-Hellas (Greece). -# All rights reserved. -# -# This file is part of CGAL (www.cgal.org); you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; version 3 of the License, -# or (at your option) any later version. -# -# Licensees holding a valid commercial license may use this file in -# accordance with the commercial license agreement provided with the software. -# -# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -# -# $URL$ -# $Id$ -# SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -# -# Authors: Herve Bronnimann -# Menelaos Karavelas -# Eric Berberich - -# This script creates the appropriate directory structure so that a CGAL -# Qt demo can be run on MacOSX - -usage() -{ - echo "Usage: cgal_make_macosx_app executable" -} - - -case $# in - 0) usage - exit 1 -esac - - -for i do - if [ -x "$i" ] ; then - EXECUTABLE=$i - else - usage - exit 1 - fi -done - -if [ -z "$EXECUTABLE.app" ] ; then - mkdir $EXECUTABLE.app -fi - -test -d $EXECUTABLE.app/Contents/MacOS/ || mkdir -p $EXECUTABLE.app/Contents/MacOS/ -strip $EXECUTABLE -cp $EXECUTABLE $EXECUTABLE.app/Contents/MacOS/$EXECUTABLE - -rm -f $EXECUTABLE.app/Contents/PkgInfo -echo "APPL????" > $EXECUTABLE.app/Contents/PkgInfo - -rm -f $EXECUTABLE.app/Contents/Info.plist -cat > $EXECUTABLE.app/Contents/Info.plist < - - - - CFBundleIconFile - cgal_app.icns - CFBundlePackageType - APPL - CFBundleGetInfoString - Created by CGAL - CFBundleSignature - ttxt - CFBundleExecutable - $EXECUTABLE -ENDINFO - -if [ -d "help" ] ; then -cat >> $EXECUTABLE.app/Contents/Info.plist <CFBundleHelpBookFolder - Help - CFBundleHelpBookName - Help -ENDINFO - test -d $EXECUTABLE.app/Contents/Resources/Help || mkdir -p $EXECUTABLE.app/Contents/Resources/Help - cp -r help/* $EXECUTABLE.app/Contents/Resources/Help - ln -s index.html $EXECUTABLE.app/Contents/Resources/Help/Help.html -fi - -cat >> $EXECUTABLE.app/Contents/Info.plist <NOTE - This file was generated by CGAL/scripts/cgal_make_macosx_app. - - -ENDINFO - -test -d $EXECUTABLE.app/Contents/Resources || mkdir -p $EXECUTABLE.app/Contents/Resources -DIR=$( cd "$( dirname "$0" )" && pwd ) -cp $DIR/../auxiliary/cgal_app.icns $EXECUTABLE.app/Contents/Resources -echo "created $EXECUTABLE.app ..." diff --git a/Matrix_search/doc/Matrix_search/Matrix_search.txt b/Matrix_search/doc/Matrix_search/Matrix_search.txt index 268c96cf716..002c6110c97 100644 --- a/Matrix_search/doc/Matrix_search/Matrix_search.txt +++ b/Matrix_search/doc/Matrix_search/Matrix_search.txt @@ -10,7 +10,7 @@ namespace CGAL { `monotone_matrix_search()` and `sorted_matrix_search()` are techniques that deal with the problem of efficiently finding largest entries in matrices with certain structural properties. Many -concrete problems can be modelled as matrix search problems, and for +concrete problems can be modeled as matrix search problems, and for some of them we provide explicit solutions that allow you to solve them without knowing about the matrix search technique. Examples are, the computation of all furthest neighbors for the vertices of a convex diff --git a/Mesh_2/include/CGAL/Delaunay_mesh_size_criteria_2.h b/Mesh_2/include/CGAL/Delaunay_mesh_size_criteria_2.h index eb3bb083b00..adf57dfe194 100644 --- a/Mesh_2/include/CGAL/Delaunay_mesh_size_criteria_2.h +++ b/Mesh_2/include/CGAL/Delaunay_mesh_size_criteria_2.h @@ -58,7 +58,7 @@ public: const double& size() const { return second; } const double& sine() const { return first; } - // q1 (or ). + // [a,b] intersects surface_patch labeled (or ). // It may be false, further rafinement will improve precision const Subdomain_index value_a = r_domain_.function_(a); const Subdomain_index value_b = r_domain_.function_(b); diff --git a/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h b/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h index 3bb1e91e2d4..6845cb8a4ba 100644 --- a/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h +++ b/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h @@ -59,7 +59,7 @@ struct Slivers_ex_att_t_aux { return c->slivers_exuder_restore_attributes(attr); } -}; // end partial specialisation Slivers_ex_att_t_aux +}; // end partial specialization Slivers_ex_att_t_aux template struct Slivers_exuder_cell_attributes_traits diff --git a/Mesh_3/include/CGAL/Mesh_3/config.h b/Mesh_3/include/CGAL/Mesh_3/config.h index cc2e5187f9b..3fd66c2f866 100644 --- a/Mesh_3/include/CGAL/Mesh_3/config.h +++ b/Mesh_3/include/CGAL/Mesh_3/config.h @@ -18,7 +18,7 @@ //#define CGAL_MESH_3_VERBOSE 1 -// Use optimisations of Mesh_3 +// Use optimizations of Mesh_3 # define CGAL_CONSTRUCT_INTRUSIVE_LIST_RANGE_CONSTRUCTOR 1 # define CGAL_MESH_3_NEW_GET_FACETS 1 # define CGAL_MESH_3_GET_FACETS_USING_INTRUSIVE_LIST 1 diff --git a/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h b/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h index 0c828665cc2..27a3bd4679d 100644 --- a/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h +++ b/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h @@ -65,7 +65,7 @@ public: /** * @brief General traversal query * @param query the query - * @param traits the traversal traits that define the traversal behaviour + * @param traits the traversal traits that define the traversal behavior * @param nb_primitives the number of primitive * * General traversal query. The traits class allows using it for the various @@ -79,7 +79,7 @@ public: /** * @param other_node root node of a tree which we want to traverse in parallel - * @param traits the traversal traits that define the traversal behaviour + * @param traits the traversal traits that define the traversal behavior * @param nb_primitives the number of primitives in this tree * @param nb_primitives_other the number of primitives in the other tree * @param first_stationary if true, the other_node is the translatable tree's root diff --git a/Nef_2/include/CGAL/Nef_2/PM_point_locator.h b/Nef_2/include/CGAL/Nef_2/PM_point_locator.h index ed10484d574..7777ff293db 100644 --- a/Nef_2/include/CGAL/Nef_2/PM_point_locator.h +++ b/Nef_2/include/CGAL/Nef_2/PM_point_locator.h @@ -536,7 +536,7 @@ protected: The efficiency of this point location module is mostly based on heuristics. Therefore worst case bounds are not very expressive. The query operations take up to linear time for subsequent query - operations though they are better in practise. They trigger a one-time + operations though they are better in practice. They trigger a one-time initialization which needs worst case $O(n^2)$ time though runtime tests often show subquadratic results. The necessary space for the query structure is subsumed in the storage space $O(n)$ of the input diff --git a/Nef_2/include/CGAL/Nef_2/gen_point_location.h b/Nef_2/include/CGAL/Nef_2/gen_point_location.h index 1430b785ae0..622eb6b93a3 100644 --- a/Nef_2/include/CGAL/Nef_2/gen_point_location.h +++ b/Nef_2/include/CGAL/Nef_2/gen_point_location.h @@ -320,7 +320,7 @@ class PointLocator { If the ray does not intersect any node or edge of |G|, then |nil| is returned.\\ The class |\Mtype| is generic, it is parameterized with a traits class - |PLocTraits| which widely controls its behaviour. + |PLocTraits| which widely controls its behavior. The traits may even change the return type of a query and its semantics. There are predined traits classes for the LEDA graph types, which are described below in a separate section. diff --git a/Nef_3/doc/Nef_3/Nef_3.txt b/Nef_3/doc/Nef_3/Nef_3.txt index a19fce2c522..d205dd42a11 100644 --- a/Nef_3/doc/Nef_3/Nef_3.txt +++ b/Nef_3/doc/Nef_3/Nef_3.txt @@ -420,7 +420,7 @@ the symbolical value, large but finite, for the size of the infimaximal box. \subsection Nef_3DrawNefPolyhedron Draw a Nef Polyhedron -A nef polyhedron can be visualised by calling the \link PkgDrawNef3 CGAL::draw() \endlink function as shown in the following example. This function opens a new window showing the given Nef Polyhedron. +A nef polyhedron can be visualized by calling the \link PkgDrawNef3 CGAL::draw() \endlink function as shown in the following example. This function opens a new window showing the given Nef Polyhedron. \cgalExample{Nef_3/draw_nef_3.cpp} diff --git a/Number_types/doc/Number_types/CGAL/Gmpfi.h b/Number_types/doc/Number_types/CGAL/Gmpfi.h index b48623b2212..20836152818 100644 --- a/Number_types/doc/Number_types/CGAL/Gmpfi.h +++ b/Number_types/doc/Number_types/CGAL/Gmpfi.h @@ -26,7 +26,7 @@ All interval operations are performed by the \mpfi library. The class `Gmpfi` is counted, but its members are. The default precision of `Gmpfi` is local to each thread and independent of -the default precision of `Gmpfr` (in contrast to the behaviour of the \mpfi +the default precision of `Gmpfr` (in contrast to the behavior of the \mpfi and \mpfr libraries, which share a default precision). diff --git a/Number_types/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h b/Number_types/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h index 2e416946c20..074c3517ed8 100644 --- a/Number_types/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h +++ b/Number_types/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h @@ -22,7 +22,7 @@ template class Algebraic_extension_traits > { /* needed to 'add up' sqrt_extensions in iterator range such that all roots are collected in order to keep operation time minimal all scalar coeffs - are set to 1 by standardise. + are set to 1 by default. TODO .. find a better name, if you want to. */ template diff --git a/Number_types/include/CGAL/Sqrt_extension/Fraction_traits.h b/Number_types/include/CGAL/Sqrt_extension/Fraction_traits.h index 1f884370c74..73ed329a837 100644 --- a/Number_types/include/CGAL/Sqrt_extension/Fraction_traits.h +++ b/Number_types/include/CGAL/Sqrt_extension/Fraction_traits.h @@ -37,7 +37,7 @@ namespace Intern{ /*! \ingroup CGAL_Sqrt_extension \ingroup CGAL_Fraction_traits_spec - \brief Specialisation of CGAL::Fraction_traits for CGAL::Sqrt_extension. + \brief Specialization of CGAL::Fraction_traits for CGAL::Sqrt_extension. * * Extensions provide suitable specializations of \c CGAL::Fraction_traits. * They are decomposable iff their coefficient type is. diff --git a/Number_types/include/CGAL/boost_mp_type.h b/Number_types/include/CGAL/boost_mp_type.h index cf18678c011..9f21e7ba40f 100644 --- a/Number_types/include/CGAL/boost_mp_type.h +++ b/Number_types/include/CGAL/boost_mp_type.h @@ -301,7 +301,7 @@ namespace Boost_MP_internal { const int64_t msb_num = static_cast(boost::multiprecision::msb(xnum)); const int64_t msb_den = static_cast(boost::multiprecision::msb(xden)); -#if 0 // Optimisation for the case of input that are double +#if 0 // Optimization for the case of input that are double // An alternative strategy would be to convert numerator and denominator to // intervals, then divide. However, this would require setting the rounding // mode (and dividing intervals is not completely free). An important diff --git a/Number_types/include/CGAL/leda_integer.h b/Number_types/include/CGAL/leda_integer.h index eedd073aa18..7d47b953c1c 100644 --- a/Number_types/include/CGAL/leda_integer.h +++ b/Number_types/include/CGAL/leda_integer.h @@ -60,7 +60,7 @@ template <> class Algebraic_structure_traits< leda_integer > CGAL_IMPLICIT_INTEROPERABLE_BINARY_OPERATOR( Type ) }; - // Unfortunately the behaviour of leda has changed here several times + // Unfortunately the behavior of leda has changed here several times // The following Div_mod is invariant under these changes // However, the Div and Mod defined below might be more efficient // TODO: recover Div Mod implementation for all leda versions diff --git a/Number_types/test/Number_types/Sqrt_extension.h b/Number_types/test/Number_types/Sqrt_extension.h index 825ba19d252..6bd28362bf4 100644 --- a/Number_types/test/Number_types/Sqrt_extension.h +++ b/Number_types/test/Number_types/Sqrt_extension.h @@ -575,7 +575,7 @@ void test_algebraic_extension_traits(){ typedef CGAL::Sqrt_extension RAT2_EXT; typedef CGAL::Sqrt_extension INT2_EXT; - // normalisation factor + // normalization factor typedef CGAL::Algebraic_extension_traits RAT1_EXT_ANT; typedef CGAL::Algebraic_extension_traits INT1_EXT_ANT; typedef CGAL::Algebraic_extension_traits RAT2_EXT_ANT; diff --git a/Optimisation_basic/package_info/Optimisation_basic/description.txt b/Optimisation_basic/package_info/Optimisation_basic/description.txt index 8516e6ed728..28bb613c998 100644 --- a/Optimisation_basic/package_info/Optimisation_basic/description.txt +++ b/Optimisation_basic/package_info/Optimisation_basic/description.txt @@ -1 +1 @@ -Basic stuff for geometric optimisation +Basic stuff for geometric optimization diff --git a/Orthtree/doc/Orthtree/Orthtree.txt b/Orthtree/doc/Orthtree/Orthtree.txt index eb7b2559b2a..38d979f1aed 100644 --- a/Orthtree/doc/Orthtree/Orthtree.txt +++ b/Orthtree/doc/Orthtree/Orthtree.txt @@ -197,7 +197,7 @@ Figure \cgalFigureRef{Orthtree_traversal_fig} shows in which order nodes are visited depending on the traversal method used. \cgalFigureBegin{Orthtree_traversal_fig, quadtree_traversal.png} -%Quadtree visualized as a graph. Each node is labelled according to the +%Quadtree visualized as a graph. Each node is labeled according to the order in which it is visited by the traversal. When using leaves and level traversals, the quadtree is only partially traversed. \cgalFigureEnd diff --git a/Orthtree/include/CGAL/Orthtree.h b/Orthtree/include/CGAL/Orthtree.h index 9774c6b5398..074d90b8bc4 100644 --- a/Orthtree/include/CGAL/Orthtree.h +++ b/Orthtree/include/CGAL/Orthtree.h @@ -1410,7 +1410,7 @@ public: } void dump_box_to_polylines(const Bbox_2& box, std::ostream& os) const { - // dump in 3D for visualisation + // dump in 3D for visualization os << "5 " << box.xmin() << " " << box.ymin() << " 0 " << box.xmin() << " " << box.ymax() << " 0 " diff --git a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h index 160cbfc0a67..e50c12ae6f7 100644 --- a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h +++ b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h @@ -2211,7 +2211,7 @@ Gt, Tds >::insert_first(const Point& p) /// Virtual faces, two per periodic domain Face_handle faces[3][3][2]; - // Initialise vertices: + // initialize vertices: vir_vertices[0][0] = _tds.create_vertex(); vir_vertices[0][0]->set_point(p); _virtual_vertices_reverse[vir_vertices[0][0]] = std::vector(); @@ -2221,7 +2221,7 @@ Gt, Tds >::insert_first(const Point& p) { if ((i != 0) || (j != 0)) { - // Initialise virtual vertices out of the domain for debugging + // initialize virtual vertices out of the domain for debugging vir_vertices[i][j] = _tds.create_vertex(); vir_vertices[i][j]->set_point(p); //+Offset(i,j)); _virtual_vertices[vir_vertices[i][j]] = Virtual_vertex( diff --git a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_dummy_12.h b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_dummy_12.h index 465ad8c83b0..562fc28b8bb 100644 --- a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_dummy_12.h +++ b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_dummy_12.h @@ -25,12 +25,12 @@ Periodic_2_triangulation_2::insert_dummy_points() // 6 faces per row, 4 rows Face_handle faces[24]; - // Initialise vertices: + // initialize vertices: for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { - // Initialise virtual vertices out of the domain for debugging + // initialize virtual vertices out of the domain for debugging vertices[3 * i + j] = _tds.create_vertex(); Point p(j * (1.0 / 3.0) + i * (1.0 / 6.0), i * (1.0 / 4.0) ); p = Point((p.x() > FT(0.9375) ? (std::max)( p.x() - 1, FT(0) ) : p.x()), diff --git a/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h b/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h index df3be1a4851..33420371bfc 100644 --- a/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h +++ b/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h @@ -1190,7 +1190,7 @@ Protect_edges_sizing_field:: try_to_move_dummy_vertex(const Vertex_handle dummy_vertex, const Weighted_point& new_position) { - // Insert first to maximise likeliness of success + // Insert first to maximize likeliness of success Vertex_handle new_dummy = insert_dummy_point(new_position); if(!try_to_remove_dummy_vertex(dummy_vertex)) diff --git a/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/config.h b/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/config.h index dc27a86fe57..4b529afbce7 100644 --- a/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/config.h +++ b/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/config.h @@ -35,7 +35,7 @@ // memory boolean in the vertex base #define CGAL_PERIODIC_TRIANGULATION_USE_VISITED_VERTEX_BOOLEAN -// Avoid optimisations of Mesh_3 +// Avoid optimizations of Mesh_3 #define CGAL_NO_STRUCTURAL_FILTERING #ifdef CGAL_MESH_3_SIZING_FIELD_INEXACT_LOCATE #undef CGAL_MESH_3_SIZING_FIELD_INEXACT_LOCATE diff --git a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h index c1001de10c5..5848af0a527 100644 --- a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h +++ b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h @@ -2784,7 +2784,7 @@ Periodic_3_triangulation_3::create_initial_triangulation(const Point& p) /// Virtual cells, 6 per periodic instance Cell_handle cells[3][3][3][6]; - // Initialise vertices: + // initialize vertices: vir_vertices[0][0][0] = _tds.create_vertex(); vir_vertices[0][0][0]->set_point(p); virtual_vertices_reverse[vir_vertices[0][0][0]] = std::vector(); @@ -2792,7 +2792,7 @@ Periodic_3_triangulation_3::create_initial_triangulation(const Point& p) for(int j=0; j<_cover[1]; j++) { for(int k=0; k<_cover[2]; k++) { if((i!=0)||(j!=0)||(k!=0)) { - // Initialise virtual vertices out of the domain for debugging + // initialize virtual vertices out of the domain for debugging vir_vertices[i][j][k] = _tds.create_vertex(); vir_vertices[i][j][k]->set_point(p); //+Offset(i,j,k)); diff --git a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h index 097a6016360..a1ce85ef1cb 100644 --- a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h +++ b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h @@ -682,11 +682,11 @@ static const int O[216][4] = { Vertex_handle vertices[36]; Cell_handle cells[216]; - // Initialise vertices: + // initialize vertices: for (int i=0; i<4; i++) { for (int j=0; j<3; j++) { for (int k=0; k<3; k++) { - // Initialise virtual vertices out of the domain for debugging + // initialize virtual vertices out of the domain for debugging vertices[9*i+3*j+k] = _tds.create_vertex(); Point p(k*(1.0/3.0) + i*(1.0/6.0), j*(1.0/3.0) + i*(1.0/6.0), i*(1.0/4.0) ); diff --git a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/include/CGAL/_count_alpha_periodic_3.h b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/include/CGAL/_count_alpha_periodic_3.h index 7175cc850cf..8ee0d297273 100644 --- a/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/include/CGAL/_count_alpha_periodic_3.h +++ b/Periodic_3_triangulation_3/test/Periodic_3_triangulation_3/include/CGAL/_count_alpha_periodic_3.h @@ -264,7 +264,7 @@ test_filtration(AS &A, bool verbose) typename AS::NT alpha; if(verbose) { std::cerr << std::endl; - std::cerr << "Analyse filtration " << std::endl; + std::cerr << "Analyze filtration " << std::endl; } for (; filtre_it != filtration.end(); filtre_it++) { if(assign(vertex, *filtre_it)) { diff --git a/Point_set_3/include/CGAL/Point_set_3.h b/Point_set_3/include/CGAL/Point_set_3.h index cda73643534..3ebbe70f809 100644 --- a/Point_set_3/include/CGAL/Point_set_3.h +++ b/Point_set_3/include/CGAL/Point_set_3.h @@ -161,7 +161,7 @@ public: #ifdef DOXYGEN_RUNNING typedef unspecified_type iterator; ///< Iterator type of the point set with value type `Index` is model of `RandomAccessIterator` - typedef unspecified_type const_iterator; ///< Constant iterator type of the point set with value type `Index` is model of `RandomA.ccessIterator` + typedef unspecified_type const_iterator; ///< Constant iterator type of the point set with value type `Index` is model of `RandomAccessIterator` #else typedef typename Index_map::iterator iterator; ///< Iterator type of the point set typedef typename Index_map::const_iterator const_iterator; ///< Constant iterator type of the point set @@ -245,8 +245,8 @@ public: m_base = ps.m_base; m_indices = this->property_map ("index").value(); m_points = this->property_map ("point").value(); - m_normals = this->property_map ("normal").value(); m_nb_removed = ps.m_nb_removed; + copy_properties(ps); return *this; } @@ -257,7 +257,7 @@ public: m_base = ps.m_base; m_indices = this->property_map ("index").value(); m_points = this->property_map ("point").value(); - m_normals = this->property_map ("normal").value(); + copy_properties(ps); m_nb_removed = ps.m_nb_removed; } /// \endcond diff --git a/Point_set_3/test/Point_set_3/point_set_test.cpp b/Point_set_3/test/Point_set_3/point_set_test.cpp index b745fe6e94e..086feabface 100644 --- a/Point_set_3/test/Point_set_3/point_set_test.cpp +++ b/Point_set_3/test/Point_set_3/point_set_test.cpp @@ -28,6 +28,26 @@ void test (bool expr, const char* msg) ++ nb_success; } +bool copy_and_assignement() +{ + Point_set ps1; + ps1.add_property_map("prop", int(3)); + ps1.add_normal_map(); + Point_set ps2 = ps1; + if (!ps2.has_property_map("prop")) return false; + if (!ps2.has_normal_map()) return false; + Point_set ps3(ps1); + if (!ps3.has_property_map("prop")) return false; + if (!ps3.has_normal_map()) return false; + ps1=Point_set(); + Point_set ps4 = ps1; + if (ps4.has_property_map("prop")) return false; + if (ps4.has_normal_map()) return false; + Point_set ps5(ps1); + if (ps5.has_property_map("prop")) return false; + if (ps5.has_normal_map()) return false; + return true; +} int main (int, char**) { @@ -130,7 +150,9 @@ int main (int, char**) std::unordered_set std_hash; boost::unordered_set boost_hash; + test(copy_and_assignement(), "copy and assignement"); + std::cerr << nb_success << "/" << nb_test << " test(s) succeeded." << std::endl; - return EXIT_SUCCESS; + return nb_success==nb_test ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/Poisson_surface_reconstruction_3/include/CGAL/Poisson_mesh_cell_criteria_3.h b/Poisson_surface_reconstruction_3/include/CGAL/Poisson_mesh_cell_criteria_3.h index 4c78d772ce5..513d2be4376 100644 --- a/Poisson_surface_reconstruction_3/include/CGAL/Poisson_mesh_cell_criteria_3.h +++ b/Poisson_surface_reconstruction_3/include/CGAL/Poisson_mesh_cell_criteria_3.h @@ -67,7 +67,7 @@ public: double sq_size() const { return second; } double aspect() const { return first; } - // q1m_status.first=boost::logic::indeterminate; this->m_stop=true; diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h index 19adcd48319..a21e4333ec0 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h @@ -582,7 +582,7 @@ struct Filter_wrapper_for_cap_needle_removal -// work around for old compilers (Apple clang < 11 for example) -#define HAS_FILESYSTEM 1 -#if defined(__has_include) -#if !__has_include() -#undef HAS_FILESYSTEM -#define HAS_FILESYSTEM 0 -#endif -#endif -#if HAS_FILESYSTEM - #include #include #include @@ -94,12 +84,3 @@ int main() { return 0; } -#else - -int main() -{ - std::cout << "Warning: filesystem feature is not present on the system, nothing will be tested\n"; - return 0; -} - -#endif diff --git a/Polynomial/include/CGAL/Polynomial/bezout_matrix.h b/Polynomial/include/CGAL/Polynomial/bezout_matrix.h index 3b8f3447ec0..4c04acd51a0 100644 --- a/Polynomial/include/CGAL/Polynomial/bezout_matrix.h +++ b/Polynomial/include/CGAL/Polynomial/bezout_matrix.h @@ -172,7 +172,7 @@ symmetric_bezout_matrix Matrix B(d); - // 1st step: Initialisation + // 1st step: initialization for(i=0;im) ? NT(0) : -coeff(f,i+sub)*coeff(g,(j+sub)+1); diff --git a/Polynomial/include/CGAL/Polynomial/determinant.h b/Polynomial/include/CGAL/Polynomial/determinant.h index e7cd0be84ef..0c7cc5644d2 100644 --- a/Polynomial/include/CGAL/Polynomial/determinant.h +++ b/Polynomial/include/CGAL/Polynomial/determinant.h @@ -134,7 +134,7 @@ namespace internal { /*! \ingroup CGAL_determinant * \brief Will determine and execute a suitable determinant routine and * return the determinant of \a A. - * (specialisation for CGAL::Matrix_d) + * (specialization for CGAL::Matrix_d) */ template inline NT determinant(const internal::Simple_matrix& A) @@ -214,7 +214,7 @@ namespace internal { /*! \ingroup CGAL_determinant * \brief Computes the determinant of \a A according to the method proposed * by Berkowitz. - * (specialisation for CGAL::Matrix_d) + * (specialization for CGAL::Matrix_d) * * Note that this routine is completely free of divisions! */ diff --git a/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_2.h b/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_2.h index b5e189e51ce..1128457fa92 100644 --- a/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_2.h +++ b/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_2.h @@ -5,7 +5,7 @@ namespace CGAL { \ingroup PkgPolytopeDistanceDRef The class `Polytope_distance_d_traits_2` is a traits class for the \f$ d\f$-dimensional -optimisation algorithms using the two-dimensional \cgal kernel. +optimization algorithms using the two-dimensional \cgal kernel. \tparam K must be a model for `Kernel`. diff --git a/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_3.h b/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_3.h index 207b4a8bd7b..e5ef4a3c86d 100644 --- a/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_3.h +++ b/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_3.h @@ -5,7 +5,7 @@ namespace CGAL { \ingroup PkgPolytopeDistanceDRef The class `Polytope_distance_d_traits_3` is a traits class for the \f$ d\f$-dimensional -optimisation algorithms using the three-dimensional \cgal kernel. +optimization algorithms using the three-dimensional \cgal kernel. \tparam K must be a model for `Kernel`. diff --git a/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_d.h b/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_d.h index 37ad80ae56b..18b5197a91f 100644 --- a/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_d.h +++ b/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Polytope_distance_d_traits_d.h @@ -5,7 +5,7 @@ namespace CGAL { \ingroup PkgPolytopeDistanceDRef The class `Polytope_distance_d_traits_d` is a traits class for the \f$ d\f$-dimensional -optimisation algorithms using the \f$ d\f$-dimensional \cgal kernel. +optimization algorithms using the \f$ d\f$-dimensional \cgal kernel. \tparam K must be a model for `Kernel`. diff --git a/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Width_3.h b/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Width_3.h index 45bacc2bcea..b240e3a3bd5 100644 --- a/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Width_3.h +++ b/Polytope_distance_d/doc/Polytope_distance_d/CGAL/Width_3.h @@ -25,9 +25,10 @@ width-planes. \f$ \mathcal{W(S)}=\mathcal{W}_{d_{opt}}\mathcal{(S)}\f$ -Note: There might be several optimal build directions. Hence +\note There might be several optimal build directions. Hence neither the width-planes nor the direction \f$ \mathbf{d}_{opt}\f$ are -unique - only the width is. +unique - only the width is. There may also be duplicates reported, +different vectors having the same or the opposite directions. \tparam Traits must be a model for `WidthTraits_3`. @@ -54,7 +55,7 @@ Because there is no need for dividing values during the algorithm, the numbers can get really huge (all the computations are made using a lot of multiplications). Therefore it is strongly recommended to use a number type that can handle numbers of arbitrary length (e.g., -`leda_integer` in combination with the homogeneous representation +`Exact_integer` in combination with the homogeneous representation of the points). But these large numbers have a disadvantage: Operations on them are slower as greater the number gets. Therefore it is possible to shorten the numbers by using the compiler flag diff --git a/Polytope_distance_d/doc/Polytope_distance_d/Concepts/AllFurthestNeighborsTraits_2.h b/Polytope_distance_d/doc/Polytope_distance_d/Concepts/AllFurthestNeighborsTraits_2.h index 874782161e7..452ade88fee 100644 --- a/Polytope_distance_d/doc/Polytope_distance_d/Concepts/AllFurthestNeighborsTraits_2.h +++ b/Polytope_distance_d/doc/Polytope_distance_d/Concepts/AllFurthestNeighborsTraits_2.h @@ -16,14 +16,10 @@ convex polygon using the function `all_furthest_neighbors_2()`. \sa `CGAL::all_furthest_neighbors_2()` -\cgalHeading{Notes} - -
    -
  • `AllFurthestNeighborsTraits_2::Less_xy_2` and +\note `AllFurthestNeighborsTraits_2::Less_xy_2` and `AllFurthestNeighborsTraits_2::Orientation_2` are used for (expensive) precondition checking only. Therefore, they need not to be specified, in case that precondition checking is disabled. -
*/ diff --git a/Polytope_distance_d/doc/Polytope_distance_d/Concepts/PolytopeDistanceDTraits.h b/Polytope_distance_d/doc/Polytope_distance_d/Concepts/PolytopeDistanceDTraits.h index 32004e174ba..39d8b30417c 100644 --- a/Polytope_distance_d/doc/Polytope_distance_d/Concepts/PolytopeDistanceDTraits.h +++ b/Polytope_distance_d/doc/Polytope_distance_d/Concepts/PolytopeDistanceDTraits.h @@ -4,7 +4,7 @@ \cgalConcept This concept defines the requirements for traits classes of \f$ d\f$-dimensional -optimisation algorithms. +optimization algorithms. \cgalHasModelsBegin \cgalHasModels{CGAL::Polytope_distance_d_traits_2} diff --git a/Polytope_distance_d/doc/Polytope_distance_d/Concepts/WidthTraits_3.h b/Polytope_distance_d/doc/Polytope_distance_d/Concepts/WidthTraits_3.h index 5686aec87e1..8699ebd7b32 100644 --- a/Polytope_distance_d/doc/Polytope_distance_d/Concepts/WidthTraits_3.h +++ b/Polytope_distance_d/doc/Polytope_distance_d/Concepts/WidthTraits_3.h @@ -24,7 +24,7 @@ class WidthTraits_3 { public: /// \name Types -/// Notes: If you want to compute the width of a polyhedron then you have to make sure that the point type in the traits class and the point type in the polyhedron class are the same! The same holds for `Traits::Plane_3` and `Polyhedron::Plane_3`. +/// \note If you want to compute the width of a polyhedron then you have to make sure that the point type in the traits class and the point type in the polyhedron class are the same! The same holds for `Traits::Plane_3` and `Polyhedron::Plane_3`. /// @{ /*! diff --git a/Polytope_distance_d/examples/Polytope_distance_d/width_simplex.cpp b/Polytope_distance_d/examples/Polytope_distance_d/width_simplex.cpp index b909f263d9c..7463a929641 100644 --- a/Polytope_distance_d/examples/Polytope_distance_d/width_simplex.cpp +++ b/Polytope_distance_d/examples/Polytope_distance_d/width_simplex.cpp @@ -1,20 +1,11 @@ #include #include #include +#include #include #include -#if defined(CGAL_USE_GMP) -#include -typedef CGAL::Gmpz RT; -#elif defined (CGAL_USE_LEDA) -#include -typedef leda_integer RT; -#else -#include -typedef CGAL::MP_Float RT; -#endif - +typedef CGAL::Exact_integer RT; typedef CGAL::Homogeneous Kernel; typedef Kernel::Point_3 Point_3; typedef Kernel::Plane_3 Plane_3; diff --git a/Polytope_distance_d/test/Polytope_distance_d/test_PD.cpp b/Polytope_distance_d/test/Polytope_distance_d/test_PD.cpp index 8ac73723282..64bb8f26197 100644 --- a/Polytope_distance_d/test/Polytope_distance_d/test_PD.cpp +++ b/Polytope_distance_d/test/Polytope_distance_d/test_PD.cpp @@ -13,7 +13,7 @@ // // file : test/Polytope_distance_d/test_PD.C // package : $CGAL_Package: Polytope_distance_d $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // revision : $Id$ // revision_date : $Date$ diff --git a/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d.h b/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d.h index d0122d83486..67e7ff08e2b 100644 --- a/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d.h +++ b/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d.h @@ -13,7 +13,7 @@ // // file : test/Polytope_distance_d/test_Polytope_distance_d.h // package : $CGAL_Package: Polytope_distance_d $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // revision : $Id$ // revision_date : $Date$ diff --git a/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d_2.cpp b/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d_2.cpp index 86d75b83e57..11d7c1efecd 100644 --- a/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d_2.cpp +++ b/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d_2.cpp @@ -13,7 +13,7 @@ // // file : test/Polytope_distance_d/test_Polytope_distance_d_2.C // package : $CGAL_Package: Polytope_distance_d $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // source : web/Polytope_distance_d.aw // revision : $Id$ diff --git a/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d_3.cpp b/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d_3.cpp index f2f2730a73b..b4b516260d0 100644 --- a/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d_3.cpp +++ b/Polytope_distance_d/test/Polytope_distance_d/test_Polytope_distance_d_3.cpp @@ -13,7 +13,7 @@ // // file : test/Polytope_distance_d/test_Polytope_distance_d_3.C // package : $CGAL_Package: Polytope_distance_d $ -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // source : web/Polytope_distance_d.aw // revision : $Id$ diff --git a/Polytope_distance_d/test/Polytope_distance_d/test_width_cube.cpp b/Polytope_distance_d/test/Polytope_distance_d/test_width_cube.cpp index f72484d6f15..4b9f2597abc 100644 --- a/Polytope_distance_d/test/Polytope_distance_d/test_width_cube.cpp +++ b/Polytope_distance_d/test/Polytope_distance_d/test_width_cube.cpp @@ -13,7 +13,7 @@ // // file : test/test_width_cube.C // package : Width_3 (1.6) -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // revision : $Id$ // revision_date : $Date$ diff --git a/Polytope_distance_d/test/Polytope_distance_d/test_width_simplex.cpp b/Polytope_distance_d/test/Polytope_distance_d/test_width_simplex.cpp index a2bdead6b09..ca13502c108 100644 --- a/Polytope_distance_d/test/Polytope_distance_d/test_width_simplex.cpp +++ b/Polytope_distance_d/test/Polytope_distance_d/test_width_simplex.cpp @@ -13,7 +13,7 @@ // // file : test/test_width_simplex.C // package : Width_3 (1.6) -// chapter : Geometric Optimisation +// chapter : Geometric Optimization // // revision : $Id$ // revision_date : $Date$ diff --git a/Profiling_tools/include/CGAL/Memory_sizer.h b/Profiling_tools/include/CGAL/Memory_sizer.h index 6d0551ef7f9..b7106f412e2 100644 --- a/Profiling_tools/include/CGAL/Memory_sizer.h +++ b/Profiling_tools/include/CGAL/Memory_sizer.h @@ -15,7 +15,7 @@ #include #include -// This has only been implemented for MacOSX/Darwin, Linux and VC++ for now. +// This has only been implemented for macOS/Darwin, Linux and VC++ for now. #if !defined _MSC_VER && !defined __linux__ && !defined __APPLE__ #include diff --git a/QP_solver/doc/QP_solver/fig_src/documentation/algorithmicx.sty b/QP_solver/doc/QP_solver/fig_src/documentation/algorithmicx.sty index 0b681debab7..a56c52dd301 100644 --- a/QP_solver/doc/QP_solver/fig_src/documentation/algorithmicx.sty +++ b/QP_solver/doc/QP_solver/fig_src/documentation/algorithmicx.sty @@ -6,7 +6,7 @@ % Based on Peter Williams's algorithmic.sty % % -% *** INITIALISING *** +% *** INITIALIZING *** % % \NeedsTeXFormat{LaTeX2e} diff --git a/QP_solver/test/QP_solver/master_mps_to_derivatives.cpp b/QP_solver/test/QP_solver/master_mps_to_derivatives.cpp index ad6fd7abc89..62ced5959a4 100644 --- a/QP_solver/test/QP_solver/master_mps_to_derivatives.cpp +++ b/QP_solver/test/QP_solver/master_mps_to_derivatives.cpp @@ -320,7 +320,7 @@ void create_free_instance(CGAL::Quadratic_program_from_mps& qp, const char *dir) { // This routine converts the given instance into an equivalent - // problem where all bounds are modelled by additional rows of A and + // problem where all bounds are modeled by additional rows of A and // where all variables are free. // // That is, the quantities c and D do not change, but A, b, and diff --git a/REUSE.toml b/REUSE.toml index 5cca2b91384..4efaf5271c5 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -45,7 +45,6 @@ path = [ "Installation/auxiliary/cgal_create_cmake_script.1", "Installation/auxiliary/gmp/README", "Installation/include/CGAL/license/gpl_package_list.txt", - "MacOSX/auxiliary/cgal_app.icns", "copyright", ] precedence = "aggregate" diff --git a/Ridges_3/examples/Ridges_3/PolyhedralSurf_rings.h b/Ridges_3/examples/Ridges_3/PolyhedralSurf_rings.h index 0b11736513c..c3e5aefec98 100644 --- a/Ridges_3/examples/Ridges_3/PolyhedralSurf_rings.h +++ b/Ridges_3/examples/Ridges_3/PolyhedralSurf_rings.h @@ -25,7 +25,7 @@ protected: typedef std::map Vertex2int_map; Vertex2int_map ring_index_map; - //vertex indices are initialised to -1 + //vertex indices are initialized to -1 void reset_ring_indices(std::vector &vces); //i >= 1; from a start vertex on the current i-1 ring, push non-visited neighbors diff --git a/Ridges_3/test/Ridges_3/PolyhedralSurf_rings.h b/Ridges_3/test/Ridges_3/PolyhedralSurf_rings.h index 0b11736513c..c3e5aefec98 100644 --- a/Ridges_3/test/Ridges_3/PolyhedralSurf_rings.h +++ b/Ridges_3/test/Ridges_3/PolyhedralSurf_rings.h @@ -25,7 +25,7 @@ protected: typedef std::map Vertex2int_map; Vertex2int_map ring_index_map; - //vertex indices are initialised to -1 + //vertex indices are initialized to -1 void reset_ring_indices(std::vector &vces); //i >= 1; from a start vertex on the current i-1 ring, push non-visited neighbors diff --git a/STL_Extension/doc/STL_Extension/PackageDescription.txt b/STL_Extension/doc/STL_Extension/PackageDescription.txt index 552378e03e6..266a3b15f52 100644 --- a/STL_Extension/doc/STL_Extension/PackageDescription.txt +++ b/STL_Extension/doc/STL_Extension/PackageDescription.txt @@ -7,7 +7,7 @@ /// \defgroup PkgSTLExtensionUtilities Utilities /// \ingroup PkgSTLExtensionRef -/// \defgroup PkgSTLExtensionAssertions Assertions and Failure Behaviour +/// \defgroup PkgSTLExtensionAssertions Assertions and Failure Behavior /// \ingroup PkgSTLExtensionRef /*! @@ -16,7 +16,7 @@ \cgalPkgPicture{plusplus.png} \cgalPkgSummaryBegin \cgalPkgAuthors{Michael Hoffmann, Lutz Kettner, Sylvain Pion, and Ron Wein} -\cgalPkgDesc{\cgal is designed in the spirit of the generic programming paradigm to work together with the Standard Template Library (\stl). This package provides non-geometric \stl-like algorithms and datastructures that are not in the \stl standard, as well as functions to change the failure behaviour of assertions.} +\cgalPkgDesc{\cgal is designed in the spirit of the generic programming paradigm to work together with the Standard Template Library (\stl). This package provides non-geometric \stl-like algorithms and datastructures that are not in the \stl standard, as well as functions to change the failure behavior of assertions.} \cgalPkgManuals{Chapter_STL_Extensions_for_CGAL,PkgSTLExtensionRef} \cgalPkgSummaryEnd \cgalPkgShortInfoBegin diff --git a/Scripts/developer_scripts/create_internal_release b/Scripts/developer_scripts/create_internal_release index 2db9f7f9ef8..e17165cec0a 100755 --- a/Scripts/developer_scripts/create_internal_release +++ b/Scripts/developer_scripts/create_internal_release @@ -63,7 +63,7 @@ EOF my $TEMPFILE="TEMPFILE.$$"; #----------------------------------------------------# -# Initialisation # +# initialization # #----------------------------------------------------# my ( diff --git a/Scripts/developer_scripts/create_macosx_installer b/Scripts/developer_scripts/create_macosx_installer deleted file mode 100755 index 1fcdc60e1c9..00000000000 --- a/Scripts/developer_scripts/create_macosx_installer +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/tcsh -# -# create the MacOSX CGAL disk image and package -# -# For releases 3.2 and on -# -# The script assumes that the current directory is the MacOSX_Installer -# directory of the Maintenance package -# -# Author(s): Menelaos Karavelas, 2006 - -# Modify the following lines according to your release and configuration - -# modify the following line for your release -setenv CGALVER $2 - -# modify the following line to reflect the size of the disk image you -# want to create -setenv VOLSIZE 7m - -# modify the following lines if the MacOSX applications reside at different -# paths than the ones shown below -setenv HDIUTIL /usr/bin/hdiutil -setenv PACKAGEMAKERAPP /Developer/Applications/Utilities/PackageMaker.app -setenv PACKAGEMAKER ${PACKAGEMAKERAPP}/Contents/MacOS/PackageMaker - -# this is the directory where the script temporarily puts files -setenv TMP_ROOT /tmp/MacOSX_Installer - -####### DO NOT TOUCH ANYTHING BEYIND THIS POINT ####### -setenv CUR_DIR `pwd` -setenv VOLNAME CGAL-${CGALVER} - -# cleanup files that should not be there -rm -f ${VOLNAME}.dmg -rm -fr ${TMP_ROOT} - -# create a copy of the CGAL package structure -mkdir -p ${TMP_ROOT} -cp -rp Package_root ${TMP_ROOT} -cp -rp Resources ${TMP_ROOT} -cp -rp CGAL-absolute.pmproj ${TMP_ROOT} -cd ${TMP_ROOT} - -# copy the CGAL tarball at its correct place and uncompress it -cp -p $1 Package_root -cd Package_root -tar xvfz CGAL-${CGALVER}.tar.gz -rm -f CGAL-${CGALVER}.tar.gz - -# now the building phase starts -cd .. - -# build the package -${PACKAGEMAKER} -build -ds -proj CGAL-absolute.pmproj -p CGAL.pkg -v - -# create the disk image -${HDIUTIL} create -ov -size ${VOLSIZE} -fs HFS+ -type UDIF -volname ${VOLNAME} CGAL-tmp.dmg - -# mount the disk image -${HDIUTIL} attach CGAL-tmp.dmg - -# move the CGAL package to the disk image -mv CGAL.pkg /Volumes/${VOLNAME} - -# unmount the disk image -${HDIUTIL} detach /Volumes/${VOLNAME} - -# convert the disk image to a read-only one -${HDIUTIL} convert -ov CGAL-tmp.dmg -format UDRO -o CGAL-RO.dmg -rm -f CGAL-tmp.dmg - -# copy the converted disk image to the original directory -cp -p CGAL-RO.dmg ${CUR_DIR}/${VOLNAME}.dmg - -# cleanup temporary files -rm -fr ${TMP_ROOT} - diff --git a/Scripts/developer_scripts/licensecheck b/Scripts/developer_scripts/licensecheck index c470c5b8057..e9a9f4c5be2 100755 --- a/Scripts/developer_scripts/licensecheck +++ b/Scripts/developer_scripts/licensecheck @@ -89,7 +89,7 @@ The two configuration files F and F<~/.devscripts> are sourced by a shell in that order to set configuration variables. Command line options can be used to override configuration file settings. Environment variable settings are -ignored for this purpose. The currently recognised variables are: +ignored for this purpose. The currently recognized variables are: =over 4 diff --git a/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2.txt b/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2.txt index db694f9de60..c8e22d04b12 100644 --- a/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2.txt +++ b/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2.txt @@ -450,7 +450,7 @@ class is used, the possible values are `Field_with_sqrt_tag` and \section secsdg2hierarchy The Segment Delaunay Graph Hierarchy The `Segment_Delaunay_graph_hierarchy_2` -class is the analogue of the `Triangulation_hierarchy_2` or the +class is the analog of the `Triangulation_hierarchy_2` or the `Apollonius_graph_hierarchy_2` classes, applied to the segment Delaunay graph. It consists of a hierarchy of segment Delaunay graphs constructed in a manner analogous to the diff --git a/Shape_detection/doc/Shape_detection/Concepts/NeighborQuery.h b/Shape_detection/doc/Shape_detection/Concepts/NeighborQuery.h index f0522b061ef..3f7f188334f 100644 --- a/Shape_detection/doc/Shape_detection/Concepts/NeighborQuery.h +++ b/Shape_detection/doc/Shape_detection/Concepts/NeighborQuery.h @@ -16,7 +16,7 @@ class NeighborQuery { public: - /// The reference type to the elements of the input range, e.g., a const_iterator of the input range. + /// The reference type to the elements of the input range, e.g., a `const_iterator` of the input range. Must be a model of `Hashable`. typedef unspecified_type Item; /*! diff --git a/Shape_detection/doc/Shape_detection/Concepts/RegionType.h b/Shape_detection/doc/Shape_detection/Concepts/RegionType.h index e1f2551fa5b..efbc11a8eee 100644 --- a/Shape_detection/doc/Shape_detection/Concepts/RegionType.h +++ b/Shape_detection/doc/Shape_detection/Concepts/RegionType.h @@ -24,10 +24,10 @@ public: /// The parameters of the primitive covering the region. typedef unspecified_type Primitive; - /// The reference type to the elements of the input range, e.g., a const_iterator of the input range. + /// The reference type to the elements of the input range, e.g., a `const_iterator` of the input range. Must be a model of `Hashable`. typedef unspecified_type Item; - // The region types is defined by a vector of Items. + // The Region type is defined by a `vector` of items. typedef std::vector Region; /*! @@ -38,11 +38,11 @@ public: typedef unspecified_type Region_index_map; /*! - checks if the item `i` can be added to the region represented by `region`. + checks if the `Item` `i` can be added to the `Region` represented by `region`. `CGAL::Shape_detection::Region_growing` calls this function each time when - trying to add a new item to a region. If this function returns `true`, the - item with the index `i`, is added to the region, otherwise ignored. + trying to add a new item to a `Region`. If this function returns `true`, the + item with the index `i`, is added to the `region`, otherwise ignored. */ bool is_part_of_region( const Item i, @@ -53,8 +53,8 @@ public: checks if `region` satisfies all necessary conditions. `CGAL::Shape_detection::Region_growing` calls this function at the end of each - propagation phase. If this function returns `true`, the region is accepted, - otherwise rejected. If the region is rejected, all its items are released and + propagation phase. If this function returns `true`, the `region` is accepted, + otherwise rejected. If the `region` is rejected, all its items are released and available for region growing again. */ bool is_valid_region( @@ -69,7 +69,7 @@ public: } /*! - enables to update any information about the region represented by the collection of Items `region`. + enables to update any information about the region represented by the collection of items `region`. `CGAL::Shape_detection::Region_growing` calls this function each time when a new seed item is selected. This case can be identified by checking the @@ -77,8 +77,8 @@ public: when enlarging the region. This case can be identified by checking the condition `region.size() > 1`. - This function also returns a Boolean at the first call when a new region - with one seed item is being created. When it is `true`, the new region is + This function also returns a boolean at the first call when a new `region` + with one seed item is being created. When it is `true`, the new `region` is further propagated, otherwise, it is rejected. */ bool update( diff --git a/Shape_detection/examples/Shape_detection/region_growing_with_custom_classes.cpp b/Shape_detection/examples/Shape_detection/region_growing_with_custom_classes.cpp index a1d32efa020..f7058906cfe 100644 --- a/Shape_detection/examples/Shape_detection/region_growing_with_custom_classes.cpp +++ b/Shape_detection/examples/Shape_detection/region_growing_with_custom_classes.cpp @@ -69,7 +69,14 @@ namespace Custom { using Item = std::vector::const_iterator; using Region = std::vector; - using Region_unordered_map = std::unordered_map >; + struct hash_item { + std::size_t operator()(Item i) const { + using boost::hash_value; + return boost::hash_value(i.operator->()); + } + }; + + using Region_unordered_map = std::unordered_map; using Region_index_map = boost::associative_property_map; Region_index_map region_index_map() { diff --git a/Shape_detection/include/CGAL/Shape_detection/Region_growing/Point_set/Least_squares_plane_fit_sorting.h b/Shape_detection/include/CGAL/Shape_detection/Region_growing/Point_set/Least_squares_plane_fit_sorting.h index 209f2cf6186..51f633fd204 100644 --- a/Shape_detection/include/CGAL/Shape_detection/Region_growing/Point_set/Least_squares_plane_fit_sorting.h +++ b/Shape_detection/include/CGAL/Shape_detection/Region_growing/Point_set/Least_squares_plane_fit_sorting.h @@ -44,12 +44,17 @@ namespace Point_set { \tparam PointMap a model of `ReadablePropertyMap` whose key type is the value type of the input range and value type is `Kernel::Point_3` + + \tparam NormalMap + a model of `ReadablePropertyMap` whose key type is the value type of the input + range and value type is `Kernel::Vector_3` */ template< typename GeomTraits, typename Item_, typename NeighborQuery, - typename PointMap> + typename PointMap, + typename NormalMap> class Least_squares_plane_fit_sorting { public: @@ -60,6 +65,7 @@ namespace Point_set { using Traits = GeomTraits; using Neighbor_query = NeighborQuery; using Point_map = PointMap; + using Normal_map = NormalMap; /// \endcond /// Item type. @@ -108,6 +114,10 @@ namespace Point_set { \cgalParamDescription{an instance of `PointMap` that maps an item to `Kernel::Point_3`} \cgalParamDefault{`PointMap()`} \cgalParamNEnd + \cgalParamNBegin{normal_map} + \cgalParamDescription{an instance of `NormalMap` that maps an item to `Kernel::Vector_3`} + \cgalParamDefault{`NormalMap()`} + \cgalParamNEnd \cgalParamNBegin{geom_traits} \cgalParamDescription{an instance of `GeomTraits`} \cgalParamDefault{`GeomTraits()`} @@ -123,6 +133,7 @@ namespace Point_set { const CGAL_NP_CLASS& np = parameters::default_values()) : m_neighbor_query(neighbor_query), m_point_map(Point_set_processing_3_np_helper::get_const_point_map(input_range, np)), + m_normal_map(Point_set_processing_3_np_helper::get_normal_map(input_range, np)), m_traits(parameters::choose_parameter(parameters::get_parameter(np, internal_np::geom_traits))) { CGAL_precondition(input_range.size() > 0); @@ -174,28 +185,76 @@ namespace Point_set { const Seed_range &ordered() { return m_ordered; } + + /*! + \brief the average of the maximal point to fitted plane distance in each neighborhood. + */ + + double mean_distance() { + return mean_d; + } + + /*! + \brief the average of the maximal normal deviation to fitted plane in each neighborhood. + */ + double mean_deviation() { + return mean_dev; + } /// @} private: Neighbor_query& m_neighbor_query; const Point_map m_point_map; + const Normal_map m_normal_map; const Traits m_traits; Seed_range m_ordered; std::vector m_scores; + double mean_d; + double mean_dev; + void compute_scores() { std::vector neighbors; std::size_t idx = 0; + + mean_d = 0; + mean_dev = 0; + for (const Item& item : m_ordered) { neighbors.clear(); m_neighbor_query(item, neighbors); neighbors.push_back(item); - m_scores[idx++] = internal::create_plane( - neighbors, m_point_map, m_traits).second; + auto p = internal::create_plane( + neighbors, m_point_map, m_traits); + + auto plane = p.first; + + double max_dist = 0; + double max_dev = 0; + + for (const Item &n : neighbors) { + double d = CGAL::to_double((get(m_point_map, n) - plane.point()) * plane.orthogonal_vector()); + double dev = acos(CGAL::to_double(CGAL::abs(get(m_normal_map, n) * plane.orthogonal_vector()))); + + if (d > max_dist) + max_dist = d; + + if (dev > max_dev) + max_dev = dev; + } + + mean_d += max_dist; + mean_dev += max_dev; + + m_scores[idx++] = p.second; } + + mean_d /= m_scores.size(); + mean_dev /= m_scores.size(); + mean_dev *= 180 / CGAL_PI; } }; @@ -210,7 +269,8 @@ using Least_squares_plane_fit_sorting_for_point_set = Least_squares_plane_fit_sorting::Kernel, typename PointSet3::Index, NeighborQuery, - typename PointSet3::Point_map>; + typename PointSet3::Point_map, + typename PointSet3::Vector_map>; /*! \ingroup PkgShapeDetectionRGOnPointSet3 diff --git a/Shape_detection/test/Shape_detection/test_region_growing_on_point_set_3_with_sorting.cpp b/Shape_detection/test/Shape_detection/test_region_growing_on_point_set_3_with_sorting.cpp index a110f376a22..811f4095f76 100644 --- a/Shape_detection/test/Shape_detection/test_region_growing_on_point_set_3_with_sorting.cpp +++ b/Shape_detection/test/Shape_detection/test_region_growing_on_point_set_3_with_sorting.cpp @@ -30,7 +30,7 @@ using Normal_map = typename Input_range::Vector_map; using Neighbor_query = SD::Point_set::K_neighbor_query; using Plane_region = SD::Point_set::Least_squares_plane_fit_region; -using Plane_sorting = SD::Point_set::Least_squares_plane_fit_sorting; +using Plane_sorting = SD::Point_set::Least_squares_plane_fit_sorting; using Sphere_region = SD::Point_set::Least_squares_sphere_fit_region; using Sphere_sorting = SD::Point_set::Least_squares_sphere_fit_sorting; using Cylinder_region = SD::Point_set::Least_squares_cylinder_fit_region; diff --git a/Shape_detection/test/Shape_detection/test_region_growing_strict.cpp b/Shape_detection/test/Shape_detection/test_region_growing_strict.cpp index 82ed06f3ca4..7f6030e1876 100644 --- a/Shape_detection/test/Shape_detection/test_region_growing_strict.cpp +++ b/Shape_detection/test/Shape_detection/test_region_growing_strict.cpp @@ -312,7 +312,7 @@ bool test_planes_points_with_normals() { using Neighbor_query = CGAL::Shape_detection::Point_set::K_neighbor_query; using Region_type = CGAL::Shape_detection::Point_set::Least_squares_plane_fit_region; - using Sorting_type = CGAL::Shape_detection::Point_set::Least_squares_plane_fit_sorting; + using Sorting_type = CGAL::Shape_detection::Point_set::Least_squares_plane_fit_sorting; using Region_growing = CGAL::Shape_detection::Region_growing; // Create parameter classes. diff --git a/Straight_skeleton_2/examples/Straight_skeleton_2/include/CGAL/input_helpers.h b/Straight_skeleton_2/examples/Straight_skeleton_2/include/CGAL/input_helpers.h index ad41ff7a91f..f4e3e7507a3 100644 --- a/Straight_skeleton_2/examples/Straight_skeleton_2/include/CGAL/input_helpers.h +++ b/Straight_skeleton_2/examples/Straight_skeleton_2/include/CGAL/input_helpers.h @@ -13,12 +13,12 @@ #include #include #include -#include #include #include #include #include +#include template bool read_dat_polygon(const char* filename, @@ -36,7 +36,7 @@ bool read_dat_polygon(const char* filename, } bool is_number_of_CC_in_input = false; - if(CGAL::IO::internal::get_file_extension(filename) == "poly") + if(std::filesystem::path(filename).extension().string() == ".poly") { is_number_of_CC_in_input = true; } @@ -109,8 +109,8 @@ template bool read_input_polygon(const char* filename, PolygonWithHoles& p) { - std::string ext = CGAL::IO::internal::get_file_extension(filename); - if(ext == "dat") + std::string ext = std::filesystem::path(filename).extension().string(); + if(ext == ".dat") { return read_dat_polygon(filename, p); } diff --git a/Stream_support/doc/Stream_support/IOstream.txt b/Stream_support/doc/Stream_support/IOstream.txt index fb4d9fe8afa..89a5ba1f98a 100644 --- a/Stream_support/doc/Stream_support/IOstream.txt +++ b/Stream_support/doc/Stream_support/IOstream.txt @@ -210,11 +210,11 @@ of `Output_rep`. If you do not specialize `Output_rep` for `T`, `T`'s stream output operator is called from within `Output_rep`, by -default. If you want another behaviour for your type `T`, you +default. If you want another behavior for your type `T`, you have to provide a specialization for that type. Furthermore, you can provide specializations with a second template parameter (a formatting tag). The second template parameter defaults to `Null_tag` and means -default behaviour. +default behavior. For example, specializing `Output_rep` for `CORE::BigRat` (without a formatting tag parameter) could look like this: diff --git a/Stream_support/include/CGAL/IO/OI/Inventor_ostream.h b/Stream_support/include/CGAL/IO/OI/Inventor_ostream.h index 94c2f8b5787..4a9a2bbda43 100644 --- a/Stream_support/include/CGAL/IO/OI/Inventor_ostream.h +++ b/Stream_support/include/CGAL/IO/OI/Inventor_ostream.h @@ -59,9 +59,9 @@ public: std::ostream& os() const { - // The behaviour if m_os == nullptr could be changed to return + // The behavior if m_os == nullptr could be changed to return // cerr or a file handle to /dev/null. The latter one would - // mimic the behaviour that one can still use a stream with + // mimic the behavior that one can still use a stream with // an invalid stream, but without producing any output. CGAL_assertion( m_os != nullptr ); return *m_os; diff --git a/Stream_support/include/CGAL/IO/VRML/VRML_2_ostream.h b/Stream_support/include/CGAL/IO/VRML/VRML_2_ostream.h index 23d94c3f9d5..a97f36ebff7 100644 --- a/Stream_support/include/CGAL/IO/VRML/VRML_2_ostream.h +++ b/Stream_support/include/CGAL/IO/VRML/VRML_2_ostream.h @@ -55,9 +55,9 @@ public: std::ostream& os() const { - // The behaviour if m_os == nullptr could be changed to return + // The behavior if m_os == nullptr could be changed to return // cerr or a file handle to /dev/null. The latter one would - // mimic the behaviour that one can still use a stream with + // mimic the behavior that one can still use a stream with // an invalid stream, but without producing any output. CGAL_assertion( m_os != nullptr ); return *m_os; diff --git a/Stream_support/include/CGAL/IO/io.h b/Stream_support/include/CGAL/IO/io.h index aa7d650e72b..74f8dd34bab 100644 --- a/Stream_support/include/CGAL/IO/io.h +++ b/Stream_support/include/CGAL/IO/io.h @@ -152,7 +152,7 @@ typedef IO_rep_is_not_specialized_aux IO_rep_is_not_specialized; The purpose of `Output_rep` is to provide a way to control output formatting that works independently of the object's stream output operator. -If you dont specialize `Output_rep` for `T`, `T`'s stream output operator is called from within `Output_rep`, by default. If you want another behaviour for your type `T`, you have to provide a specialization for that type. Furthermore, you can provide specializations with a second template parameter (a formatting tag). The second template parameter defaults to `Null_tag` and means *default behaviour*. +If you dont specialize `Output_rep` for `T`, `T`'s stream output operator is called from within `Output_rep`, by default. If you want another behavior for your type `T`, you have to provide a specialization for that type. Furthermore, you can provide specializations with a second template parameter (a formatting tag). The second template parameter defaults to `Null_tag` and means *default behavior*. Specializations of `Output_rep` should provide the following features: diff --git a/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h b/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h index cb949abcc30..83ca6a3b4b7 100644 --- a/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h +++ b/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h @@ -870,7 +870,7 @@ public: #endif /// @cond CGAL_DOCUMENT_INTERNALS - // typedefs which make it easier to write the partial specialisation of boost::graph_traits + // typedefs which make it easier to write the partial specialization of boost::graph_traits typedef Vertex_index vertex_index; typedef P vertex_property_type; diff --git a/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h b/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h index b1794891ef5..acd3a20707e 100644 --- a/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h +++ b/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h @@ -218,7 +218,7 @@ public: for(face_descriptor f : face_range) { - // get area in parameterised mesh + // get area in parameterized mesh const halfedge_descriptor h = halfedge(f, tmesh); const NT a_2D = abs(CGAL::area(get(uvmap, source(h, tmesh)), get(uvmap, target(h, tmesh)), @@ -531,7 +531,7 @@ private: theta_sum += theta; } - // Normalise the angle + // Normalize the angle double factor = 2. / theta_sum; factor *= CGAL_PI; for(int n=0; nm_type << " " << " time: " << event->m_distanceEstimate << " "; - std::cout << "cancelled? " << event->m_cancelled << " " ; + std::cout << "canceled? " << event->m_cancelled << " " ; if (!event->m_cancelled) { @@ -2200,7 +2200,7 @@ private: } else if (m_debugOutput) { - std::cout << "Found cancelled event for node: " << event->m_parent << std::endl; + std::cout << "Found canceled event for node: " << event->m_parent << std::endl; } delete event; @@ -2416,7 +2416,7 @@ public: \details No change to the internal shortest paths data structure occurs until either `Surface_mesh_shortest_path::build_sequence_tree()` or the first shortest path query is done. - Behaviour is undefined if the source point `it` was already removed. + Behavior is undefined if the source point `it` was already removed. \param it iterator to the source point to be removed */ diff --git a/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h b/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h index 16caafb4f27..c4aa3b41b05 100644 --- a/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h +++ b/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h @@ -67,7 +67,7 @@ namespace draw_function_for_lcc // template // struct LCC_geom_utils; -// Specialisation for face graph; otherwise use the LCC_geom_utils of LCC. +// Specialization for face graph; otherwise use the LCC_geom_utils of LCC. template struct LCC_geom_utils, Local_kernel, 3> { diff --git a/Surface_mesher/doc/Surface_mesher/Surface_mesher.txt b/Surface_mesher/doc/Surface_mesher/Surface_mesher.txt index 658dc7bae53..df31bc2de1e 100644 --- a/Surface_mesher/doc/Surface_mesher/Surface_mesher.txt +++ b/Surface_mesher/doc/Surface_mesher/Surface_mesher.txt @@ -313,7 +313,7 @@ class is not yet documented because its interface and code have not yet been stabilized. The Surface Mesh Generator demo allows to mesh not only gray level images, -but also segmented images, when voxels are labelled with a domain +but also segmented images, when voxels are labeled with a domain index. Such images are for example the result of a segmentation of 3D medical images. diff --git a/TDS_2/include/CGAL/Triangulation_ds_face_base_2.h b/TDS_2/include/CGAL/Triangulation_ds_face_base_2.h index bb4c448c669..23b59e3affa 100644 --- a/TDS_2/include/CGAL/Triangulation_ds_face_base_2.h +++ b/TDS_2/include/CGAL/Triangulation_ds_face_base_2.h @@ -340,7 +340,7 @@ operator<<(std::ostream &os, const Triangulation_ds_face_base_2 &) return os; } -// Specialisation for void. +// Specialization for void. template <> class Triangulation_ds_face_base_2 { diff --git a/TDS_3/include/CGAL/Triangulation_simplex_3.h b/TDS_3/include/CGAL/Triangulation_simplex_3.h index d00422df1ba..c6245e8bb9f 100644 --- a/TDS_3/include/CGAL/Triangulation_simplex_3.h +++ b/TDS_3/include/CGAL/Triangulation_simplex_3.h @@ -43,7 +43,7 @@ public: // Constructors - // Default constructor initialises to undefined simplex: + // Default constructor initializes to undefined simplex: Triangulation_simplex_3() : ref(-1), ch() { } Triangulation_simplex_3(Vertex_handle vh) { diff --git a/Three/include/CGAL/Three/Scene_item.h b/Three/include/CGAL/Three/Scene_item.h index 4fbe0558392..d6a4f0fc6da 100644 --- a/Three/include/CGAL/Three/Scene_item.h +++ b/Three/include/CGAL/Three/Scene_item.h @@ -375,7 +375,7 @@ public Q_SLOTS: //!Emits an aboutToBeDestroyed() signal. //!Override this function to delete what needs to be deleted on destruction. - //!This might be needed as items are not always deleted right away by Qt and this behaviour may cause simply a + //!This might be needed as items are not always deleted right away by Qt and this behavior may cause simply a //!memory leak, for example when multiple items are created at the same time. virtual void itemAboutToBeDestroyed(Scene_item*); //!Returns the alpha value for the item. @@ -443,6 +443,8 @@ protected: RenderingMode rendering_mode; //!The default context menu. QMenu* defaultContextMenu; + //!Specifies if the context menu should be rebuild on the next call. + bool context_menu_outdated = false; /*! Contains the previous RenderingMode. * This is used to determine if invalidateOpenGLBuffers should be called or not * in certain cases. diff --git a/Three/include/CGAL/Three/Scene_item_rendering_helper.h b/Three/include/CGAL/Three/Scene_item_rendering_helper.h index 83ee418e405..e6928c3dcb6 100644 --- a/Three/include/CGAL/Three/Scene_item_rendering_helper.h +++ b/Three/include/CGAL/Three/Scene_item_rendering_helper.h @@ -110,7 +110,7 @@ public: //! \brief setTriangleContainer sets the `id`th `Triangle_container` to `tc`. //! //! If `id` is bigger than the current size of the container vector, this vector is - //! resized accordingly. This means that for optimisation reasons, containers should be created + //! resized accordingly. This means that for optimization reasons, containers should be created //! decreasingly. //! void setTriangleContainer(std::size_t id, @@ -120,7 +120,7 @@ public: //! \brief setEdgeContainer sets the `id`th `Edge_container` to `tc`. //! //! If `id` is bigger than the current size of the container vector, this vector is - //! resized accordingly. This means that for optimisation reasons, containers should be created + //! resized accordingly. This means that for optimization reasons, containers should be created //! decreasingly. //! void setEdgeContainer(std::size_t id, @@ -130,7 +130,7 @@ public: //! \brief setPointContainer sets the `id`th `Point_container` to `tc`. //! //! If `id` is bigger than the current size of the container vector, this vector is - //! resized accordingly. This means that for optimisation reasons, containers should be created + //! resized accordingly. This means that for optimization reasons, containers should be created //! decreasingly. //! void setPointContainer(std::size_t id, diff --git a/Triangulation/include/CGAL/Triangulation_ds_vertex.h b/Triangulation/include/CGAL/Triangulation_ds_vertex.h index e6819f7431a..00e9fd6f730 100644 --- a/Triangulation/include/CGAL/Triangulation_ds_vertex.h +++ b/Triangulation/include/CGAL/Triangulation_ds_vertex.h @@ -75,7 +75,7 @@ public: return false; } bool found(false); - // These two typename below are OK because TDS fulfils the + // These two typename below are OK because TDS fulfills the // TriangulationDataStructure concept. typename TDS::Full_cell::Vertex_handle_iterator vit(full_cell()->vertices_begin()); typedef typename TDS::Vertex_handle Vertex_handle; diff --git a/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h b/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h index 714e9295b61..caed792fa5e 100644 --- a/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h @@ -925,7 +925,7 @@ template < class Gt, class Tds, class Itag > typename Constrained_Delaunay_triangulation_2::Vertex_handle Constrained_Delaunay_triangulation_2:: insert(const Point& a, Locate_type lt, Face_handle loc, int li) -// insert a point p, whose localisation is known (lt, f, i) +// insert a point p, whose localization is known (lt, f, i) // constrained edges are updated // Delaunay property is restored { diff --git a/Triangulation_2/include/CGAL/Constrained_triangulation_2.h b/Triangulation_2/include/CGAL/Constrained_triangulation_2.h index 90d6448f0e5..65ebc4b0fb0 100644 --- a/Triangulation_2/include/CGAL/Constrained_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Constrained_triangulation_2.h @@ -700,7 +700,7 @@ template < class Gt, class Tds, class Itag > typename Constrained_triangulation_2::Vertex_handle Constrained_triangulation_2:: insert(const Point& a, Locate_type lt, Face_handle loc, int li) -// insert a point p, whose localisation is known (lt, f, i) +// insert a point p, whose localization is known (lt, f, i) // in addition to what is done for non constrained triangulations // constrained edges are updated { diff --git a/Triangulation_2/include/CGAL/Regular_triangulation_2.h b/Triangulation_2/include/CGAL/Regular_triangulation_2.h index 54938928e5c..d7cae81c69e 100644 --- a/Triangulation_2/include/CGAL/Regular_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Regular_triangulation_2.h @@ -1491,7 +1491,7 @@ regularize(Vertex_handle v) if(dimension() < 1) return; - //initialise faces_around + //initialize faces_around if(dimension() == 1) { faces_around.push_back(v->face()); faces_around.push_back(v->face()->neighbor(1- v->face()->index(v))); diff --git a/Triangulation_2/include/CGAL/Triangulation_2.h b/Triangulation_2/include/CGAL/Triangulation_2.h index 433ea5cb5af..5078301504b 100644 --- a/Triangulation_2/include/CGAL/Triangulation_2.h +++ b/Triangulation_2/include/CGAL/Triangulation_2.h @@ -1465,7 +1465,7 @@ template typename Triangulation_2::Vertex_handle Triangulation_2:: insert(const Point& p, Locate_type lt, Face_handle loc, int li) - // insert a point p, whose localisation is known (lt, f, i) + // insert a point p, whose localization is known (lt, f, i) { if(number_of_vertices() == 0) { return(insert_first(p)); diff --git a/Triangulation_3/TODO b/Triangulation_3/TODO index 01707e3e30c..4e4042a5d81 100644 --- a/Triangulation_3/TODO +++ b/Triangulation_3/TODO @@ -32,7 +32,7 @@ Delaunay dual sont effectivement utilisees - remplacer les create_face du remove2D par des create_cell et virer les create_face de la tds -- optimiser remove : +- optimizer remove : - algo d'Olivier si constructions filtrees disponibles (cf Olivier rappel de la reunion a ce sujet) - pour la creation de la TDS_2, on devrait pouvoir faire plus simple, diff --git a/Triangulation_3/benchmark/Triangulation_3/Triangulation_benchmark_3.cpp b/Triangulation_3/benchmark/Triangulation_3/Triangulation_benchmark_3.cpp index fa052480c6b..9d155f287fc 100644 --- a/Triangulation_3/benchmark/Triangulation_3/Triangulation_benchmark_3.cpp +++ b/Triangulation_3/benchmark/Triangulation_3/Triangulation_benchmark_3.cpp @@ -306,7 +306,7 @@ void benchmark_remove(std::vector& pts, if (nb_pts > max_pts) { - std::cerr << "ERROR: nb_pts > max_pts. Cancelling..." << std::endl; + std::cerr << "ERROR: nb_pts > max_pts. Canceling..." << std::endl; return; } diff --git a/Triangulation_3/test/Triangulation_3/include/CGAL/_test_cls_triangulation_simplex_3.h b/Triangulation_3/test/Triangulation_3/include/CGAL/_test_cls_triangulation_simplex_3.h index 354b3934cb5..261276c8c15 100644 --- a/Triangulation_3/test/Triangulation_3/include/CGAL/_test_cls_triangulation_simplex_3.h +++ b/Triangulation_3/test/Triangulation_3/include/CGAL/_test_cls_triangulation_simplex_3.h @@ -61,7 +61,7 @@ _test_cls_triangulation_simplex_3(const Triangulation &) //######################################################################## Cls t; - // Initialise to a 3D triangulation: + // initialize to a 3D triangulation: t.insert(Point(0,0,0)); t.insert(Point(1,0,0)); t.insert(Point(0,1,0)); diff --git a/copyright b/copyright index b32d3a58fc8..79f53928578 100644 --- a/copyright +++ b/copyright @@ -69,7 +69,6 @@ R = RU Groningen LEDA ETIMU Largest_empty_rect_2 T Linear_cell_complex CNRS - MacOSX F Maintenance ETIMUG Manual ETIMU Manual_tools EIM, Modena Software, Silicon Graphics