diff --git a/AABB_tree/include/CGAL/AABB_traits.h b/AABB_tree/include/CGAL/AABB_traits.h index da2fd2da756..632f2256d4b 100644 --- a/AABB_tree/include/CGAL/AABB_traits.h +++ b/AABB_tree/include/CGAL/AABB_traits.h @@ -291,7 +291,8 @@ public: */ class Sort_primitives { - const AABB_traits& m_traits; + typedef AABB_traits Traits; + const Traits& m_traits; public: Sort_primitives(const AABB_traits& traits) : m_traits(traits) {} @@ -302,16 +303,16 @@ public: const typename AT::Bounding_box& bbox) const { PrimitiveIterator middle = first + (beyond - first)/2; - switch(longest_axis(bbox)) + switch(Traits::longest_axis(bbox)) { case AT::CGAL_AXIS_X: // sort along x - std::nth_element(first, middle, beyond, boost::bind(less_x,_1,_2,m_traits)); + std::nth_element(first, middle, beyond, boost::bind(Traits::less_x,_1,_2,m_traits)); break; case AT::CGAL_AXIS_Y: // sort along y - std::nth_element(first, middle, beyond, boost::bind(less_y,_1,_2,m_traits)); + std::nth_element(first, middle, beyond, boost::bind(Traits::less_y,_1,_2,m_traits)); break; case AT::CGAL_AXIS_Z: // sort along z - std::nth_element(first, middle, beyond, boost::bind(less_z,_1,_2,m_traits)); + std::nth_element(first, middle, beyond, boost::bind(Traits::less_z,_1,_2,m_traits)); break; default: CGAL_error(); diff --git a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d_1.h b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d_1.h index 905b6d8eba2..c60e509abea 100644 --- a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d_1.h +++ b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d_1.h @@ -201,7 +201,9 @@ public: }; // class Algebraic_real_traits - + + struct Construct_algebraic_real_1; + // Functors of Algebraic_kernel_d_1 struct Solve_1 { public: diff --git a/Alpha_shapes_2/include/CGAL/internal/Lazy_alpha_nt_2.h b/Alpha_shapes_2/include/CGAL/internal/Lazy_alpha_nt_2.h index eaafd27f71d..83eeac727d5 100644 --- a/Alpha_shapes_2/include/CGAL/internal/Lazy_alpha_nt_2.h +++ b/Alpha_shapes_2/include/CGAL/internal/Lazy_alpha_nt_2.h @@ -45,7 +45,7 @@ namespace internal { // template < class Input_traits, class Kernel_approx, class Kernel_exact, class Weighted_tag > -class Is_traits_point_convertible +class Is_traits_point_convertible_2 { typedef typename Kernel_traits::Kernel Kernel_input; @@ -60,7 +60,7 @@ public: }; template < class Input_traits, class Kernel_approx, class Kernel_exact > -class Is_traits_point_convertible { typedef typename Kernel_traits::Kernel Kernel_input; @@ -157,7 +157,7 @@ class Lazy_alpha_nt_2 Approx_point to_approx(const Input_point& wp) const { // The traits class' Point_2 must be convertible using the Cartesian converter - CGAL_static_assertion((Is_traits_point_convertible< + CGAL_static_assertion((Is_traits_point_convertible_2< Input_traits, Kernel_approx, Kernel_exact, Weighted_tag>::value)); To_approx converter; @@ -167,7 +167,7 @@ class Lazy_alpha_nt_2 Exact_point to_exact(const Input_point& wp) const { // The traits class' Point_2 must be convertible using the Cartesian converter - CGAL_static_assertion((Is_traits_point_convertible< + CGAL_static_assertion((Is_traits_point_convertible_2< Input_traits, Kernel_approx, Kernel_exact, Weighted_tag>::value)); To_exact converter; diff --git a/Alpha_shapes_3/include/CGAL/internal/Lazy_alpha_nt_3.h b/Alpha_shapes_3/include/CGAL/internal/Lazy_alpha_nt_3.h index 8a4effe1a4b..97005825a79 100644 --- a/Alpha_shapes_3/include/CGAL/internal/Lazy_alpha_nt_3.h +++ b/Alpha_shapes_3/include/CGAL/internal/Lazy_alpha_nt_3.h @@ -45,7 +45,7 @@ namespace internal{ // template < class Input_traits, class Kernel_approx, class Kernel_exact, class Weighted_tag > -class Is_traits_point_convertible +class Is_traits_point_convertible_3 { typedef typename Kernel_traits::Kernel Kernel_input; @@ -60,7 +60,7 @@ public: }; template < class Input_traits, class Kernel_approx, class Kernel_exact > -class Is_traits_point_convertible { typedef typename Kernel_traits::Kernel Kernel_input; @@ -148,7 +148,7 @@ class Lazy_alpha_nt_3{ Approx_point to_approx(const Input_point& wp) const { // The traits class' Point_3 must be convertible using the Cartesian converter - CGAL_static_assertion((Is_traits_point_convertible< + CGAL_static_assertion((Is_traits_point_convertible_3< Input_traits, Kernel_approx, Kernel_exact, Weighted_tag>::value)); To_approx converter; @@ -158,7 +158,7 @@ class Lazy_alpha_nt_3{ Exact_point to_exact(const Input_point& wp) const { // The traits class' Point_3 must be convertible using the Cartesian converter - CGAL_static_assertion((Is_traits_point_convertible< + CGAL_static_assertion((Is_traits_point_convertible_3< Input_traits, Kernel_approx, Kernel_exact, Weighted_tag>::value)); To_exact converter; diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_traits_2.h b/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_traits_2.h index 34c7931e702..ef0d6e94e4c 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_traits_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_traits_2.h @@ -163,6 +163,9 @@ public: /// \name Construction functors(based on the subcurve traits). //@{ +#ifndef DOXYGEN_RUNNING + class Push_back_2; +#endif /*! \class * A functor that divides an arc into x-monotone arcs. That are, arcs that * do not cross the identification arc. diff --git a/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h b/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h index 1ef10dcf3c9..6df312301ba 100644 --- a/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h @@ -347,6 +347,9 @@ public: return os; } + class Parameter_space_in_x_2; + class Parameter_space_in_y_2; + /*! A functor that computes intersections between x-monotone curves. */ class Intersect_2 { protected: diff --git a/CGAL_Core/include/CGAL/CORE/CoreDefs.h b/CGAL_Core/include/CGAL/CORE/CoreDefs.h index 90759e086fa..499d7b1dbf3 100644 --- a/CGAL_Core/include/CGAL/CORE/CoreDefs.h +++ b/CGAL_Core/include/CGAL/CORE/CoreDefs.h @@ -41,6 +41,7 @@ #include #include +#include #ifdef CGAL_HEADER_ONLY @@ -340,4 +341,6 @@ inline void setPositionalFormat(std::ostream& o = std::cout) { #include #endif // CGAL_HEADER_ONLY +#include + #endif // _CORE_COREDEFS_H_ diff --git a/GraphicsView/demo/Triangulation_2/TriangulationCircumcircle.h b/GraphicsView/demo/Triangulation_2/TriangulationCircumcircle.h index 59589cf1815..dad56939a61 100644 --- a/GraphicsView/demo/Triangulation_2/TriangulationCircumcircle.h +++ b/GraphicsView/demo/Triangulation_2/TriangulationCircumcircle.h @@ -33,6 +33,7 @@ protected: private: DT * dt; + typedef typename DT::Vertex_handle Vertex_handle; typename DT::Vertex_handle hint; typename DT::Face_handle fh; QGraphicsScene *scene_; @@ -89,8 +90,12 @@ TriangulationCircumcircle::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if(dt->dimension() != 2){ circle->hide(); + hint = Vertex_handle(); return; } + if (hint == Vertex_handle()){ + hint = dt->infinite_vertex(); + } typename T::Point p = typename T::Point(event->scenePos().x(), event->scenePos().y()); fh = dt->locate(p, hint->face()); hint = fh->vertex(0); diff --git a/Installation/include/CGAL/disable_warnings.h b/Installation/include/CGAL/disable_warnings.h index 6c180ab3514..587492aad9c 100644 --- a/Installation/include/CGAL/disable_warnings.h +++ b/Installation/include/CGAL/disable_warnings.h @@ -34,6 +34,7 @@ # pragma warning(disable: 4714) // function marked as __forceinline not inlined # pragma warning(disable: 4800) // forcing value to bool 'true' or 'false' (performance warning) # pragma warning(disable: 4913) // user defined binary operator ',' exists but no overload could convert all operands, default built-in binary operator ',' used +# pragma warning(disable: 4834) // discarding return value of function with 'nodiscard' attribute #endif diff --git a/Mesh_2/doc/Mesh_2/Mesh_2.txt b/Mesh_2/doc/Mesh_2/Mesh_2.txt index 7d6484b1f90..64012f69e97 100644 --- a/Mesh_2/doc/Mesh_2/Mesh_2.txt +++ b/Mesh_2/doc/Mesh_2/Mesh_2.txt @@ -98,11 +98,7 @@ printed. See \cgalFigureRef{Conformexampleconform} \cgalFigureBegin{Conformexampleconform,example-conform-Delaunay-Gabriel.png} -Initial triangulation and the corresponding Delaunay and Gabriel triangulation. -\cgalFigureEnd - -\cgalFigureBegin{ConformexampleconformDelaunay,example-conform-Delaunay.png} -The corresponding conforming Delaunay triangulation. +From left to right: Initial Delaunay triangulation, the corresponding conforming Delaunay, and the corresponding Gabriel triangulation. \cgalFigureEnd \section secMesh_2_meshes Meshes diff --git a/Mesh_2/doc/Mesh_2/fig/example-conform-Delaunay.png b/Mesh_2/doc/Mesh_2/fig/example-conform-Delaunay.png deleted file mode 100644 index 580db6feb3d..00000000000 Binary files a/Mesh_2/doc/Mesh_2/fig/example-conform-Delaunay.png and /dev/null differ diff --git a/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_traits_2.h b/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_traits_2.h index 7088fd1b83d..1eb99e9e72a 100644 --- a/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_traits_2.h +++ b/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_traits_2.h @@ -102,11 +102,11 @@ public: if (bbox.xmax()-bbox.xmin() >= bbox.ymax()-bbox.ymin()) { - std::nth_element(first, middle, beyond, less_x); // sort along x + std::nth_element(first, middle, beyond, AABB_traits_2::less_x); // sort along x } else { - std::nth_element(first, middle, beyond, less_y); // sort along y + std::nth_element(first, middle, beyond, AABB_traits_2::less_y); // sort along y } } }; diff --git a/Partition_2/include/CGAL/Partition_2/Rotation_tree_2.h b/Partition_2/include/CGAL/Partition_2/Rotation_tree_2.h index f9228e36d0b..a149a137f06 100644 --- a/Partition_2/include/CGAL/Partition_2/Rotation_tree_2.h +++ b/Partition_2/include/CGAL/Partition_2/Rotation_tree_2.h @@ -36,6 +36,8 @@ #ifndef CGAL_ROTATION_TREE_H #define CGAL_ROTATION_TREE_H +#include + #include @@ -178,6 +180,8 @@ private: #include +#include + #endif // CGAL_ROTATION_TREE_H // For the Emacs editor: diff --git a/Point_set_processing_3/include/CGAL/mst_orient_normals.h b/Point_set_processing_3/include/CGAL/mst_orient_normals.h index b46e626e91f..f441f209de9 100644 --- a/Point_set_processing_3/include/CGAL/mst_orient_normals.h +++ b/Point_set_processing_3/include/CGAL/mst_orient_normals.h @@ -501,11 +501,12 @@ create_mst_graph( /** \ingroup PkgPointSetProcessingAlgorithms Orients the normals of the range of `points` using the propagation - of a seed orientation through a minimum spanning tree of the Riemannian graph [Hoppe92]. - + of a seed orientation through a minimum spanning tree of the Riemannian graph. This method modifies the order of input points so as to pack all sucessfully oriented points first, and returns an iterator over the first point with an unoriented normal (see erase-remove idiom). For this reason it should not be called on sorted containers. + It is based on \cgalCite{cgal:hddms-srup-92}. + \warning This function may fail when Boost version 1.54 is used, because of the following bug: https://svn.boost.org/trac/boost/ticket/9012 diff --git a/Polynomial/include/CGAL/Polynomial_traits_d.h b/Polynomial/include/CGAL/Polynomial_traits_d.h index 42c96b05c15..1c8b7f827af 100644 --- a/Polynomial/include/CGAL/Polynomial_traits_d.h +++ b/Polynomial/include/CGAL/Polynomial_traits_d.h @@ -729,7 +729,9 @@ public: return gic( gc( p, exponent ), ev ); }; }; - + + typedef CGAL::internal::Monomial_representation Monomial_representation; + // Swap variable x_i with x_j struct Swap { typedef Polynomial_d result_type; @@ -1537,10 +1539,6 @@ struct Construct_innermost_coefficient_const_iterator_range }; - typedef - CGAL::internal::Monomial_representation - Monomial_representation; - // returns the Exponten_vector of the innermost leading coefficient struct Degree_vector{ typedef Exponent_vector result_type; diff --git a/STL_Extension/include/CGAL/internal/boost/array_binary_tree.hpp b/STL_Extension/include/CGAL/internal/boost/array_binary_tree.hpp index ed646779099..dc9e8a6b4e5 100644 --- a/STL_Extension/include/CGAL/internal/boost/array_binary_tree.hpp +++ b/STL_Extension/include/CGAL/internal/boost/array_binary_tree.hpp @@ -20,7 +20,7 @@ #ifndef CGAL_INTERNAL_ARRAY_BINARY_TREE_HPP #define CGAL_INTERNAL_ARRAY_BINARY_TREE_HPP -#include +#include #include #include @@ -52,12 +52,12 @@ public: struct children_type { struct iterator - : ::boost::iterator { // replace with iterator_adaptor implementation -JGS + typedef std::forward_iterator_tag Category; + typedef ArrayBinaryTreeNode value_type; + typedef size_type difference_type + typedef ArrayBinaryTreeNode* Pointer; + typedef ArrayBinaryTreeNode& Reference; inline iterator() : i(0), n(0) { } inline iterator(const iterator& x) : r(x.r), i(x.i), n(x.n), id(x.id) { } diff --git a/SearchStructures/include/CGAL/Segment_tree_d.h b/SearchStructures/include/CGAL/Segment_tree_d.h index 1c0b6dafe39..625050bd1c5 100644 --- a/SearchStructures/include/CGAL/Segment_tree_d.h +++ b/SearchStructures/include/CGAL/Segment_tree_d.h @@ -107,7 +107,8 @@ protected: typedef Segment_tree_node Segment_tree_node_t; typedef Segment_tree_node *link_type; - std::allocator alloc; + typedef std::allocator allocator_type; + allocator_type alloc; C_Interface m_interface; bool is_built; @@ -197,7 +198,11 @@ protected: { Segment_tree_node_t node(l,r,kl,kr); Segment_tree_node_t* node_ptr = alloc.allocate(1); +#ifdef CGAL_CXX11 + std::allocator_traits::construct(alloc, node_ptr, node); +#else alloc.construct(node_ptr, node); +#endif return node_ptr; } @@ -205,7 +210,11 @@ protected: { Segment_tree_node_t node(kl,kr); Segment_tree_node_t* node_ptr = alloc.allocate(1); +#ifdef CGAL_CXX11 + std::allocator_traits::construct(alloc, node_ptr, node); +#else alloc.construct(node_ptr, node); +#endif return node_ptr; } @@ -213,7 +222,11 @@ protected: { Segment_tree_node_t node; Segment_tree_node_t* node_ptr = alloc.allocate(1); +#ifdef CGAL_CXX11 + std::allocator_traits::construct(alloc, node_ptr, node); +#else alloc.construct(node_ptr, node); +#endif return node_ptr; } @@ -298,7 +311,11 @@ protected: void delete_node(Segment_tree_node_t* node_ptr) { +#ifdef CGAL_CXX11 + std::allocator_traits::destroy(alloc, node_ptr); +#else alloc.destroy(node_ptr); +#endif alloc.deallocate(node_ptr,1); }