Merge branch 'master' into Mesh_3-improve_polylines_to_protect-GF

This commit is contained in:
Laurent Rineau 2018-05-16 11:36:24 +02:00 committed by GitHub
commit 05d7baceb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
111 changed files with 170 additions and 206 deletions

View File

@ -66,7 +66,8 @@ typedef unspecified_type Construct_sphere_3;
/*! /*!
A functor object to compute the point on a geometric primitive which is closest from a query. Provides the operator: A functor object to compute the point on a geometric primitive which is closest from a query. Provides the operator:
`Point_3 operator()(const Type_2& type_2, const Point_3& p);` where `Type_2` is any type among `Segment_3` and `Triangle_3`. The operator returns the point on `type_2` which is closest to `p`. `Point_3 operator()(const Type_2& type_2, const Point_3& p);` where `Type_2` can be any of the following types : `Segment_3`, `Ray_3`, or `Triangle_3`.
The operator returns the point on `type_2` which is closest to `p`.
*/ */
typedef unspecified_type Construct_projected_point_3; typedef unspecified_type Construct_projected_point_3;

View File

@ -291,7 +291,8 @@ public:
*/ */
class Sort_primitives class Sort_primitives
{ {
const AABB_traits<GeomTraits,AABBPrimitive,BboxMap>& m_traits; typedef AABB_traits<GeomTraits,AABBPrimitive,BboxMap> Traits;
const Traits& m_traits;
public: public:
Sort_primitives(const AABB_traits<GeomTraits,AABBPrimitive,BboxMap>& traits) Sort_primitives(const AABB_traits<GeomTraits,AABBPrimitive,BboxMap>& traits)
: m_traits(traits) {} : m_traits(traits) {}
@ -302,16 +303,16 @@ public:
const typename AT::Bounding_box& bbox) const const typename AT::Bounding_box& bbox) const
{ {
PrimitiveIterator middle = first + (beyond - first)/2; PrimitiveIterator middle = first + (beyond - first)/2;
switch(longest_axis(bbox)) switch(Traits::longest_axis(bbox))
{ {
case AT::CGAL_AXIS_X: // sort along x 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; break;
case AT::CGAL_AXIS_Y: // sort along y 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; break;
case AT::CGAL_AXIS_Z: // sort along z 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; break;
default: default:
CGAL_error(); CGAL_error();

View File

@ -29,7 +29,7 @@
#include <CGAL/AABB_face_graph_triangle_primitive.h> #include <CGAL/AABB_face_graph_triangle_primitive.h>
#include <CGAL/AABB_halfedge_graph_segment_primitive.h> #include <CGAL/AABB_halfedge_graph_segment_primitive.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/disable_warnings.h> #include <CGAL/disable_warnings.h>

View File

@ -15,7 +15,6 @@
#include <CGAL/AABB_traits.h> #include <CGAL/AABB_traits.h>
#include <CGAL/AABB_face_graph_triangle_primitive.h> #include <CGAL/AABB_face_graph_triangle_primitive.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>

View File

@ -32,7 +32,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>

View File

@ -33,7 +33,6 @@
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>
#include <CGAL/AABB_traits.h> #include <CGAL/AABB_traits.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>

View File

@ -33,7 +33,6 @@
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>
#include <CGAL/AABB_traits.h> #include <CGAL/AABB_traits.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>

View File

@ -29,7 +29,6 @@
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>
#include <CGAL/AABB_traits.h> #include <CGAL/AABB_traits.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include "AABB_test_util.h" #include "AABB_test_util.h"

View File

@ -32,7 +32,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>

View File

@ -33,7 +33,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>

View File

@ -35,7 +35,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>

View File

@ -34,7 +34,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>

View File

@ -12,7 +12,6 @@
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>
#include <CGAL/AABB_traits.h> #include <CGAL/AABB_traits.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/AABB_face_graph_triangle_primitive.h> #include <CGAL/AABB_face_graph_triangle_primitive.h>
#include <CGAL/Timer.h> #include <CGAL/Timer.h>

View File

@ -201,7 +201,9 @@ public:
}; // class Algebraic_real_traits }; // class Algebraic_real_traits
struct Construct_algebraic_real_1;
// Functors of Algebraic_kernel_d_1 // Functors of Algebraic_kernel_d_1
struct Solve_1 { struct Solve_1 {
public: public:

View File

@ -45,7 +45,7 @@ namespace internal {
// //
template < class Input_traits, class Kernel_approx, class Kernel_exact, template < class Input_traits, class Kernel_approx, class Kernel_exact,
class Weighted_tag > class Weighted_tag >
class Is_traits_point_convertible class Is_traits_point_convertible_2
{ {
typedef typename Kernel_traits<typename Input_traits::Point_2>::Kernel Kernel_input; typedef typename Kernel_traits<typename Input_traits::Point_2>::Kernel Kernel_input;
@ -60,7 +60,7 @@ public:
}; };
template < class Input_traits, class Kernel_approx, class Kernel_exact > template < class Input_traits, class Kernel_approx, class Kernel_exact >
class Is_traits_point_convertible<Input_traits, Kernel_approx, Kernel_exact, class Is_traits_point_convertible_2<Input_traits, Kernel_approx, Kernel_exact,
::CGAL::Tag_true /* Weighted_tag */> ::CGAL::Tag_true /* Weighted_tag */>
{ {
typedef typename Kernel_traits<typename Input_traits::Point_2>::Kernel Kernel_input; typedef typename Kernel_traits<typename Input_traits::Point_2>::Kernel Kernel_input;
@ -157,7 +157,7 @@ class Lazy_alpha_nt_2
Approx_point to_approx(const Input_point& wp) const Approx_point to_approx(const Input_point& wp) const
{ {
// The traits class' Point_2 must be convertible using the Cartesian converter // 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)); Input_traits, Kernel_approx, Kernel_exact, Weighted_tag>::value));
To_approx converter; To_approx converter;
@ -167,7 +167,7 @@ class Lazy_alpha_nt_2
Exact_point to_exact(const Input_point& wp) const Exact_point to_exact(const Input_point& wp) const
{ {
// The traits class' Point_2 must be convertible using the Cartesian converter // 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)); Input_traits, Kernel_approx, Kernel_exact, Weighted_tag>::value));
To_exact converter; To_exact converter;

View File

@ -45,7 +45,7 @@ namespace internal{
// //
template < class Input_traits, class Kernel_approx, class Kernel_exact, template < class Input_traits, class Kernel_approx, class Kernel_exact,
class Weighted_tag > class Weighted_tag >
class Is_traits_point_convertible class Is_traits_point_convertible_3
{ {
typedef typename Kernel_traits<typename Input_traits::Point_3>::Kernel Kernel_input; typedef typename Kernel_traits<typename Input_traits::Point_3>::Kernel Kernel_input;
@ -60,7 +60,7 @@ public:
}; };
template < class Input_traits, class Kernel_approx, class Kernel_exact > template < class Input_traits, class Kernel_approx, class Kernel_exact >
class Is_traits_point_convertible<Input_traits, Kernel_approx, Kernel_exact, class Is_traits_point_convertible_3<Input_traits, Kernel_approx, Kernel_exact,
::CGAL::Tag_true /* Weighted_tag */> ::CGAL::Tag_true /* Weighted_tag */>
{ {
typedef typename Kernel_traits<typename Input_traits::Point_3>::Kernel Kernel_input; typedef typename Kernel_traits<typename Input_traits::Point_3>::Kernel Kernel_input;
@ -148,7 +148,7 @@ class Lazy_alpha_nt_3{
Approx_point to_approx(const Input_point& wp) const Approx_point to_approx(const Input_point& wp) const
{ {
// The traits class' Point_3 must be convertible using the Cartesian converter // 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)); Input_traits, Kernel_approx, Kernel_exact, Weighted_tag>::value));
To_approx converter; To_approx converter;
@ -158,7 +158,7 @@ class Lazy_alpha_nt_3{
Exact_point to_exact(const Input_point& wp) const Exact_point to_exact(const Input_point& wp) const
{ {
// The traits class' Point_3 must be convertible using the Cartesian converter // 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)); Input_traits, Kernel_approx, Kernel_exact, Weighted_tag>::value));
To_exact converter; To_exact converter;

View File

@ -31,6 +31,7 @@
* The header file for the Arr_circle_segment_traits_2<Kenrel> class. * The header file for the Arr_circle_segment_traits_2<Kenrel> class.
*/ */
#include <CGAL/atomic.h>
#include <CGAL/tags.h> #include <CGAL/tags.h>
#include <CGAL/Arr_tags.h> #include <CGAL/Arr_tags.h>
#include <CGAL/Arr_geometry_traits/Circle_segment_2.h> #include <CGAL/Arr_geometry_traits/Circle_segment_2.h>
@ -84,7 +85,11 @@ public:
/*! Get the next curve index. */ /*! Get the next curve index. */
static unsigned int get_index () static unsigned int get_index ()
{ {
static unsigned int index = 0; #ifdef CGAL_NO_ATOMIC
static unsigned int index;
#else
static CGAL::cpp11::atomic<unsigned int> index;
#endif
return (++index); return (++index);
} }

View File

@ -31,6 +31,7 @@
* The conic traits-class for the arrangement package. * The conic traits-class for the arrangement package.
*/ */
#include <CGAL/atomic.h>
#include <CGAL/tags.h> #include <CGAL/tags.h>
#include <CGAL/Arr_tags.h> #include <CGAL/Arr_tags.h>
#include <CGAL/Arr_geometry_traits/Conic_arc_2.h> #include <CGAL/Arr_geometry_traits/Conic_arc_2.h>
@ -114,7 +115,11 @@ public:
/*! Get the next conic index. */ /*! Get the next conic index. */
static unsigned int get_index () static unsigned int get_index ()
{ {
static unsigned int index = 0; #ifdef CGAL_NO_ATOMIC
static unsigned int index;
#else
static CGAL::cpp11::atomic<unsigned int> index;
#endif
return (++index); return (++index);
} }

View File

@ -163,6 +163,9 @@ public:
/// \name Construction functors(based on the subcurve traits). /// \name Construction functors(based on the subcurve traits).
//@{ //@{
#ifndef DOXYGEN_RUNNING
class Push_back_2;
#endif
/*! \class /*! \class
* A functor that divides an arc into x-monotone arcs. That are, arcs that * A functor that divides an arc into x-monotone arcs. That are, arcs that
* do not cross the identification arc. * do not cross the identification arc.

View File

@ -347,6 +347,9 @@ public:
return os; return os;
} }
class Parameter_space_in_x_2;
class Parameter_space_in_y_2;
/*! A functor that computes intersections between x-monotone curves. */ /*! A functor that computes intersections between x-monotone curves. */
class Intersect_2 { class Intersect_2 {
protected: protected:

View File

@ -2,8 +2,6 @@
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h> #include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>

View File

@ -1,5 +1,4 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h> #include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
#include <CGAL/boost/graph/iterator.h> #include <CGAL/boost/graph/iterator.h>
#include <fstream> #include <fstream>

View File

@ -34,7 +34,6 @@
#include <CGAL/assertions.h> #include <CGAL/assertions.h>
#include <CGAL/hash_openmesh.h> #include <CGAL/hash_openmesh.h>
#if defined(BOOST_MSVC) #if defined(BOOST_MSVC)
# pragma warning(push) # pragma warning(push)
# pragma warning(disable:4267) # pragma warning(disable:4267)

View File

@ -2,8 +2,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/split_graph_into_polylines.h> #include <CGAL/boost/graph/split_graph_into_polylines.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <boost/graph/filtered_graph.hpp> #include <boost/graph/filtered_graph.hpp>

View File

@ -1,5 +1,5 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_concepts.h> #include <CGAL/boost/graph/graph_concepts.h>
#include <CGAL/Polyhedron_items_with_id_3.h> #include <CGAL/Polyhedron_items_with_id_3.h>

View File

@ -1,5 +1,4 @@
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/properties_Surface_mesh.h>
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/boost/graph/Graph_with_descriptor_with_graph.h> #include <CGAL/boost/graph/Graph_with_descriptor_with_graph.h>

View File

@ -1,5 +1,5 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_concepts.h> #include <CGAL/boost/graph/graph_concepts.h>
#include <CGAL/Polyhedron_items_with_id_3.h> #include <CGAL/Polyhedron_items_with_id_3.h>

View File

@ -1,5 +1,4 @@
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/properties_Surface_mesh.h>
#include <CGAL/boost/graph/Seam_mesh.h> #include <CGAL/boost/graph/Seam_mesh.h>
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>

View File

@ -1,5 +1,4 @@
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/properties_Surface_mesh.h>
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <boost/graph/graph_concepts.hpp> #include <boost/graph/graph_concepts.hpp>

View File

@ -1,6 +1,5 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h>
#include <CGAL/Surface_mesh/IO.h> #include <CGAL/Surface_mesh/IO.h>
#include <boost/unordered_map.hpp> #include <boost/unordered_map.hpp>

View File

@ -1,10 +1,9 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h>
#include <CGAL/Polyhedron_items_with_id_3.h> #include <CGAL/Polyhedron_items_with_id_3.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/Linear_cell_complex_for_bgl_combinatorial_map_helper.h> #include <CGAL/Linear_cell_complex_for_bgl_combinatorial_map_helper.h>
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h> #include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>

View File

@ -1,7 +1,5 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/iterator.h> #include <CGAL/boost/graph/iterator.h>
#include <boost/foreach.hpp> #include <boost/foreach.hpp>

View File

@ -41,6 +41,7 @@
#include <CGAL/CORE/extLong.h> #include <CGAL/CORE/extLong.h>
#include <CGAL/atomic.h> #include <CGAL/atomic.h>
#include <CGAL/disable_warnings.h>
#ifdef CGAL_HEADER_ONLY #ifdef CGAL_HEADER_ONLY
@ -340,4 +341,6 @@ inline void setPositionalFormat(std::ostream& o = std::cout) {
#include <CGAL/CORE/CoreDefs_impl.h> #include <CGAL/CORE/CoreDefs_impl.h>
#endif // CGAL_HEADER_ONLY #endif // CGAL_HEADER_ONLY
#include <CGAL/enable_warnings.h>
#endif // _CORE_COREDEFS_H_ #endif // _CORE_COREDEFS_H_

View File

@ -3181,6 +3181,7 @@ namespace CartesianKernelFunctors {
typedef typename K::Line_3 Line_3; typedef typename K::Line_3 Line_3;
typedef typename K::Triangle_3 Triangle_3; typedef typename K::Triangle_3 Triangle_3;
typedef typename K::Segment_3 Segment_3; typedef typename K::Segment_3 Segment_3;
typedef typename K::Ray_3 Ray_3;
typedef typename K::FT FT; typedef typename K::FT FT;
public: public:
typedef Point_3 result_type; typedef Point_3 result_type;
@ -3215,6 +3216,10 @@ namespace CartesianKernelFunctors {
Point_3 Point_3
operator()( const Segment_3& s, const Point_3& p ) const operator()( const Segment_3& s, const Point_3& p ) const
{ return CommonKernelFunctors::Construct_projected_point_3<K>()(p,s,K()); } { return CommonKernelFunctors::Construct_projected_point_3<K>()(p,s,K()); }
Point_3
operator()( const Ray_3& r, const Point_3& p ) const
{ return CommonKernelFunctors::Construct_projected_point_3<K>()(p,r,K()); }
}; };
template <class K> template <class K>

View File

@ -496,7 +496,7 @@ private:
launch_feature_computation (new Feature_adder_verticality<VectorMap> (this, normal_map, 0)); launch_feature_computation (new Feature_adder_verticality<VectorMap> (this, normal_map, 0));
} }
void generate_normal_based_features(const CGAL::Default_property_map<Iterator, typename GeomTraits::Vector_3>&) void generate_normal_based_features(const CGAL::Constant_property_map<Iterator, typename GeomTraits::Vector_3>&)
{ {
generate_multiscale_feature_variant_0<Verticality> (); generate_multiscale_feature_variant_0<Verticality> ();
} }
@ -544,7 +544,7 @@ private:
2, 25.f * float(i), 12.5f)); 2, 25.f * float(i), 12.5f));
} }
void generate_color_based_features(const CGAL::Default_property_map<Iterator, RGB_Color>&) void generate_color_based_features(const CGAL::Constant_property_map<Iterator, RGB_Color>&)
{ {
} }
@ -581,7 +581,7 @@ private:
launch_feature_computation (new Feature_adder_echo<EchoMap> (this, echo_map, i)); launch_feature_computation (new Feature_adder_echo<EchoMap> (this, echo_map, i));
} }
void generate_echo_based_features(const CGAL::Default_property_map<Iterator, std::size_t>&) void generate_echo_based_features(const CGAL::Constant_property_map<Iterator, std::size_t>&)
{ {
} }
@ -615,10 +615,10 @@ private:
} }
template <typename T> template <typename T>
Default_property_map<Iterator, T> Constant_property_map<Iterator, T>
get_parameter (const Default&) get_parameter (const Default&)
{ {
return Default_property_map<Iterator, T>(); return Constant_property_map<Iterator, T>();
} }
template<typename VectorMap, typename ColorMap, typename EchoMap> template<typename VectorMap, typename ColorMap, typename EchoMap>

View File

@ -5,7 +5,7 @@
#include <CGAL/point_generators_3.h> #include <CGAL/point_generators_3.h>
#include <vector> #include <vector>
#include <CGAL/IO/Polyhedron_iostream.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>

View File

@ -24,9 +24,7 @@
#include <CGAL/Generalized_map_operations.h> #include <CGAL/Generalized_map_operations.h>
#include <CGAL/Random.h> #include <CGAL/Random.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <iostream> #include <iostream>
#include <fstream>
using namespace std; using namespace std;

View File

@ -18,7 +18,6 @@
#include <CGAL/Triangulation_data_structure_2.h> #include <CGAL/Triangulation_data_structure_2.h>
#include <CGAL/Triangulation_vertex_base_2.h> #include <CGAL/Triangulation_vertex_base_2.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <CGAL/point_generators_3.h> #include <CGAL/point_generators_3.h>

View File

@ -33,6 +33,7 @@ protected:
private: private:
DT * dt; DT * dt;
typedef typename DT::Vertex_handle Vertex_handle;
typename DT::Vertex_handle hint; typename DT::Vertex_handle hint;
typename DT::Face_handle fh; typename DT::Face_handle fh;
QGraphicsScene *scene_; QGraphicsScene *scene_;
@ -89,8 +90,12 @@ TriangulationCircumcircle<T>::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{ {
if(dt->dimension() != 2){ if(dt->dimension() != 2){
circle->hide(); circle->hide();
hint = Vertex_handle();
return; return;
} }
if (hint == Vertex_handle()){
hint = dt->infinite_vertex();
}
typename T::Point p = typename T::Point(event->scenePos().x(), event->scenePos().y()); typename T::Point p = typename T::Point(event->scenePos().x(), event->scenePos().y());
fh = dt->locate(p, hint->face()); fh = dt->locate(p, hint->face());
hint = fh->vertex(0); hint = fh->vertex(0);

View File

@ -9,7 +9,6 @@
#include <CGAL/Linear_cell_complex_for_combinatorial_map.h> #include <CGAL/Linear_cell_complex_for_combinatorial_map.h>
#include <CGAL/Linear_cell_complex_for_generalized_map.h> #include <CGAL/Linear_cell_complex_for_generalized_map.h>
#include <CGAL/boost/graph/graph_traits_Arrangement_2.h> #include <CGAL/boost/graph/graph_traits_Arrangement_2.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Triangulation_2.h> #include <CGAL/boost/graph/graph_traits_Triangulation_2.h>
#include <map> #include <map>
#include <boost/unordered_map.hpp> #include <boost/unordered_map.hpp>

View File

@ -3315,6 +3315,7 @@ namespace HomogeneousKernelFunctors {
typedef typename K::Vector_3 Vector_3; typedef typename K::Vector_3 Vector_3;
typedef typename K::Triangle_3 Triangle_3; typedef typename K::Triangle_3 Triangle_3;
typedef typename K::Segment_3 Segment_3; typedef typename K::Segment_3 Segment_3;
typedef typename K::Ray_3 Ray_3;
public: public:
typedef Point_3 result_type; typedef Point_3 result_type;
@ -3351,6 +3352,10 @@ namespace HomogeneousKernelFunctors {
Point_3 Point_3
operator()( const Segment_3& s, const Point_3& p ) const operator()( const Segment_3& s, const Point_3& p ) const
{ return CommonKernelFunctors::Construct_projected_point_3<K>()(p,s,K()); } { return CommonKernelFunctors::Construct_projected_point_3<K>()(p,s,K()); }
Point_3
operator()( const Ray_3& r, const Point_3& p ) const
{ return CommonKernelFunctors::Construct_projected_point_3<K>()(p,r,K()); }
}; };
template <class K> template <class K>

View File

@ -34,6 +34,7 @@
# pragma warning(disable: 4714) // function marked as __forceinline not inlined # 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: 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: 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 #endif

View File

@ -9,7 +9,7 @@
#include <CGAL/AABB_tree.h> #include <CGAL/AABB_tree.h>
#include <CGAL/AABB_traits.h> #include <CGAL/AABB_traits.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/AABB_face_graph_triangle_primitive.h> #include <CGAL/AABB_face_graph_triangle_primitive.h>
#include <CGAL/point_generators_3.h> #include <CGAL/point_generators_3.h>

View File

@ -5976,6 +5976,12 @@ public:
*/ */
Kernel::Point_3 operator()(const Kernel::Segment_3& s, Kernel::Point_3 operator()(const Kernel::Segment_3& s,
const Kernel::Point_3& p); const Kernel::Point_3& p);
/*!
returns the point of `r` that is the closest to `p`.
*/
Kernel::Point_3 operator()(const Kernel::Ray_3& r,
const Kernel::Point_3& p);
/*! /*!
returns the point of `t` that is the closest to `p`. returns the point of `t` that is the closest to `p`.

View File

@ -2855,10 +2855,7 @@ namespace CommonKernelFunctors {
const typename K::Segment_3& segment, const typename K::Segment_3& segment,
const K& k) const K& k)
{ {
typedef typename K::Point_3 Point_3;
typename K::Construct_projected_point_3 projection =
k.construct_projected_point_3_object();
typename K::Is_degenerate_3 is_degenerate = typename K::Is_degenerate_3 is_degenerate =
k.is_degenerate_3_object(); k.is_degenerate_3_object();
typename K::Construct_vertex_3 vertex = typename K::Construct_vertex_3 vertex =
@ -2867,20 +2864,27 @@ namespace CommonKernelFunctors {
if(is_degenerate(segment)) if(is_degenerate(segment))
return vertex(segment, 0); return vertex(segment, 0);
// Project query on segment supporting line if(segment.to_vector() * (query-segment.source()) <= 0)
const Point_3 proj = projection(segment.supporting_line(), query); return segment.source();
if(segment.to_vector() * (query-segment.target()) >= 0)
Point_3 closest_point_on_segment; return segment.target();
bool inside = is_inside_segment_3(proj,segment,closest_point_on_segment,k);
// If proj is inside segment, returns it // If proj is inside segment, returns it
if ( inside ) return k.construct_projected_point_3_object()(segment.supporting_line(), query);
return proj;
// Else returns the constructed point
return closest_point_on_segment;
} }
typename K::Point_3
operator()(const typename K::Point_3& query,
const typename K::Ray_3& ray,
const K& k)
{
if ( ray.to_vector() * (query-ray.source()) <= 0)
return ray.source();
else
{
return k.construct_projected_point_3_object()(ray.supporting_line(), query);
}
}
// code for operator for plane and point is defined in // code for operator for plane and point is defined in
// CGAL/Cartesian/function_objects.h and CGAL/Homogeneous/function_objects.h // CGAL/Cartesian/function_objects.h and CGAL/Homogeneous/function_objects.h
}; };

View File

@ -26,12 +26,13 @@
template <class R> template <class R>
bool bool
_test_fct_constructions_3(const R&) _test_fct_constructions_3(const R& r)
{ {
typedef typename R::RT RT; typedef typename R::RT RT;
typedef typename R::Point_3 Point; typedef typename R::Point_3 Point;
typedef typename R::Weighted_point_3 Weighted_point; typedef typename R::Weighted_point_3 Weighted_point;
typedef typename R::Segment_3 Segment; typedef typename R::Segment_3 Segment;
typedef typename R::Ray_3 Ray;
typedef typename R::Plane_3 Plane; typedef typename R::Plane_3 Plane;
typedef typename R::Vector_3 Vector; typedef typename R::Vector_3 Vector;
typedef typename R::Triangle_3 Triangle; typedef typename R::Triangle_3 Triangle;
@ -129,6 +130,12 @@ _test_fct_constructions_3(const R&)
assert( CGAL::weighted_circumcenter( wp000_b, wp100_b, wp010_b) == wp000_b); assert( CGAL::weighted_circumcenter( wp000_b, wp100_b, wp010_b) == wp000_b);
assert( CGAL::weighted_circumcenter( wp000_b, wp100_b, wp010_b, wp001_b) == wp000_b); assert( CGAL::weighted_circumcenter( wp000_b, wp100_b, wp010_b, wp001_b) == wp000_b);
// projected point
Ray ray(Point(0,0,0), Point (1,1,0));
Segment s(Point(0,0,0), Point (1,1,0));
assert( r.construct_projected_point_3_object()(ray, Point(-1,0,0)) == Point(0,0,0));
assert( r.construct_projected_point_3_object()(s, Point(-1,0,0)) == Point(0,0,0));
assert( r.construct_projected_point_3_object()(s, Point(2,0,0)) == Point(1,1,0));
return true; return true;
} }

View File

@ -98,11 +98,7 @@ printed.
See \cgalFigureRef{Conformexampleconform} See \cgalFigureRef{Conformexampleconform}
\cgalFigureBegin{Conformexampleconform,example-conform-Delaunay-Gabriel.png} \cgalFigureBegin{Conformexampleconform,example-conform-Delaunay-Gabriel.png}
Initial triangulation and the corresponding Delaunay and Gabriel triangulation. From left to right: Initial Delaunay triangulation, the corresponding conforming Delaunay, and the corresponding Gabriel triangulation.
\cgalFigureEnd
\cgalFigureBegin{ConformexampleconformDelaunay,example-conform-Delaunay.png}
The corresponding conforming Delaunay triangulation.
\cgalFigureEnd \cgalFigureEnd
\section secMesh_2_meshes Meshes \section secMesh_2_meshes Meshes

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -7,13 +7,11 @@
#include <CGAL/Mesh_criteria_3.h> #include <CGAL/Mesh_criteria_3.h>
#include <CGAL/Labeled_mesh_domain_3.h> #include <CGAL/Labeled_mesh_domain_3.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/Polyhedral_mesh_domain_3.h> #include <CGAL/Polyhedral_mesh_domain_3.h>
#include <CGAL/Mesh_domain_with_polyline_features_3.h> #include <CGAL/Mesh_domain_with_polyline_features_3.h>
#include <CGAL/make_mesh_3.h> #include <CGAL/make_mesh_3.h>
// IO
#include <CGAL/IO/Polyhedron_iostream.h>
// Ouput // Ouput
#include <CGAL/Mesh_3/Dump_c3t3.h> #include <CGAL/Mesh_3/Dump_c3t3.h>

View File

@ -32,7 +32,7 @@
// IO // IO
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
#include <CGAL/IO/Polyhedron_iostream.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/File_medit.h> #include <CGAL/IO/File_medit.h>
#include <CGAL/IO/File_tetgen.h> #include <CGAL/IO/File_tetgen.h>

View File

@ -102,11 +102,11 @@ public:
if (bbox.xmax()-bbox.xmin() >= bbox.ymax()-bbox.ymin()) 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 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
} }
} }
}; };

View File

@ -1,6 +1,5 @@
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Nef_polyhedron_3.h> #include <CGAL/Nef_polyhedron_3.h>
#include <CGAL/IO/Nef_polyhedron_iostream_3.h> #include <CGAL/IO/Nef_polyhedron_iostream_3.h>

View File

@ -1,7 +1,6 @@
#include <CGAL/Exact_integer.h> #include <CGAL/Exact_integer.h>
#include <CGAL/Homogeneous.h> #include <CGAL/Homogeneous.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Nef_polyhedron_3.h> #include <CGAL/Nef_polyhedron_3.h>
#include <CGAL/IO/Nef_polyhedron_iostream_3.h> #include <CGAL/IO/Nef_polyhedron_iostream_3.h>
#include <iostream> #include <iostream>

View File

@ -1,7 +1,6 @@
#include <CGAL/Exact_integer.h> #include <CGAL/Exact_integer.h>
#include <CGAL/Homogeneous.h> #include <CGAL/Homogeneous.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Nef_polyhedron_3.h> #include <CGAL/Nef_polyhedron_3.h>
#include <CGAL/IO/Nef_polyhedron_iostream_3.h> #include <CGAL/IO/Nef_polyhedron_iostream_3.h>
#include <iostream> #include <iostream>

View File

@ -1,6 +1,5 @@
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Nef_polyhedron_3.h> #include <CGAL/Nef_polyhedron_3.h>
#include <CGAL/IO/Nef_polyhedron_iostream_3.h> #include <CGAL/IO/Nef_polyhedron_iostream_3.h>
#include <iostream> #include <iostream>

View File

@ -36,6 +36,8 @@
#ifndef CGAL_ROTATION_TREE_H #ifndef CGAL_ROTATION_TREE_H
#define CGAL_ROTATION_TREE_H #define CGAL_ROTATION_TREE_H
#include <CGAL/disable_warnings.h>
#include <CGAL/license/Partition_2.h> #include <CGAL/license/Partition_2.h>
@ -178,6 +180,8 @@ private:
#include <CGAL/Partition_2/Rotation_tree_2_impl.h> #include <CGAL/Partition_2/Rotation_tree_2_impl.h>
#include <CGAL/enable_warnings.h>
#endif // CGAL_ROTATION_TREE_H #endif // CGAL_ROTATION_TREE_H
// For the Emacs editor: // For the Emacs editor:

View File

@ -501,11 +501,12 @@ create_mst_graph(
/** /**
\ingroup PkgPointSetProcessingAlgorithms \ingroup PkgPointSetProcessingAlgorithms
Orients the normals of the range of `points` using the propagation 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, 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). 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. 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, \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 because of the following bug: https://svn.boost.org/trac/boost/ticket/9012

View File

@ -1,7 +1,6 @@
#include <CGAL/trace.h> #include <CGAL/trace.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Surface_mesh_default_triangulation_3.h> #include <CGAL/Surface_mesh_default_triangulation_3.h>
#include <CGAL/make_surface_mesh.h> #include <CGAL/make_surface_mesh.h>
#include <CGAL/Implicit_surface_3.h> #include <CGAL/Implicit_surface_3.h>

View File

@ -1,6 +1,5 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/poisson_surface_reconstruction.h> #include <CGAL/poisson_surface_reconstruction.h>
#include <CGAL/IO/read_xyz_points.h> #include <CGAL/IO/read_xyz_points.h>

View File

@ -1,8 +1,6 @@
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/properties_Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Polygon_mesh_processing/fair.h> #include <CGAL/Polygon_mesh_processing/fair.h>

View File

@ -2,13 +2,11 @@
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/Polygon_mesh_processing/orient_polygon_soup.h> #include <CGAL/Polygon_mesh_processing/orient_polygon_soup.h>
#include <CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h> #include <CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/algorithm.h> #include <CGAL/algorithm.h>
#include <CGAL/Timer.h> #include <CGAL/Timer.h>

View File

@ -2,8 +2,6 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Side_of_triangle_mesh.h> #include <CGAL/Side_of_triangle_mesh.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include "point_inside_helpers.h" #include "point_inside_helpers.h"

View File

@ -4,11 +4,8 @@
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#ifdef USE_SURFACE_MESH #ifdef USE_SURFACE_MESH
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h>
#else #else
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#endif #endif
#include <CGAL/AABB_halfedge_graph_segment_primitive.h> #include <CGAL/AABB_halfedge_graph_segment_primitive.h>

View File

@ -2,8 +2,6 @@
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/Linear_cell_complex_for_combinatorial_map.h> #include <CGAL/Linear_cell_complex_for_combinatorial_map.h>
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h> #include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
#include <CGAL/Linear_cell_complex_for_bgl_combinatorial_map_helper.h> #include <CGAL/Linear_cell_complex_for_bgl_combinatorial_map_helper.h>
#include <CGAL/iterator.h> #include <CGAL/iterator.h>

View File

@ -7,7 +7,6 @@
#include <CGAL/Polygon_mesh_processing/corefinement.h> #include <CGAL/Polygon_mesh_processing/corefinement.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <iostream> #include <iostream>
#include <vector> #include <vector>

View File

@ -49,6 +49,7 @@ int main(int argc, char* argv[])
= PMP::sharp_edges_segmentation(mesh, 90, eif, pid, = PMP::sharp_edges_segmentation(mesh, 90, eif, pid,
PMP::parameters::first_index(1) PMP::parameters::first_index(1)
.vertex_incident_patches_map(vip)); .vertex_incident_patches_map(vip));
CGAL_assertion(number_of_patches == 6); CGAL_assertion(number_of_patches == 6);
PMP::detect_sharp_edges(mesh, 90, eif); PMP::detect_sharp_edges(mesh, 90, eif);
@ -89,3 +90,4 @@ int main(int argc, char* argv[])
return 0; return 0;
} }

View File

@ -1,5 +1,4 @@
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>

View File

@ -1,8 +1,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/Polygon_mesh_processing/repair.h> #include <CGAL/Polygon_mesh_processing/repair.h>
#include <fstream> #include <fstream>

View File

@ -1,8 +1,6 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/Polygon_mesh_processing/stitch_borders.h> #include <CGAL/Polygon_mesh_processing/stitch_borders.h>

View File

@ -1,7 +1,6 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h>
#include <CGAL/Polygon_mesh_processing/triangulate_faces.h> #include <CGAL/Polygon_mesh_processing/triangulate_faces.h>
#include <boost/foreach.hpp> #include <boost/foreach.hpp>

View File

@ -5,13 +5,8 @@
#include <CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h> #include <CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h>
#ifdef POLY #ifdef POLY
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/properties_Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#else #else
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h>
#include <CGAL/boost/graph/properties_Surface_mesh.h>
#endif #endif
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>

View File

@ -3,13 +3,8 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#ifdef POLY #ifdef POLY
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/properties_Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#else #else
#include <CGAL/Surface_mesh.h> #include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/graph_traits_Surface_mesh.h>
#include <CGAL/boost/graph/properties_Surface_mesh.h>
#endif #endif
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>

View File

@ -9,9 +9,6 @@
#include <CGAL/Polyhedron_incremental_builder_3.h> #include <CGAL/Polyhedron_incremental_builder_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/properties_Polyhedron_3.h>
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h> #include <CGAL/Polygon_mesh_processing/triangulate_hole.h>

View File

@ -1,5 +1,4 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/polyhedron_cut_plane_3.h> #include <CGAL/polyhedron_cut_plane_3.h>
#include <iostream> #include <iostream>

View File

@ -1,6 +1,5 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <iostream> #include <iostream>
#include <algorithm> #include <algorithm>
#include <vector> #include <vector>

View File

@ -1,6 +1,5 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <iostream> #include <iostream>
#include <algorithm> #include <algorithm>
#include <vector> #include <vector>

View File

@ -1,6 +1,5 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/box_intersection_d.h> #include <CGAL/box_intersection_d.h>
#include <CGAL/Bbox_3.h> #include <CGAL/Bbox_3.h>
#include <CGAL/intersections.h> #include <CGAL/intersections.h>

View File

@ -1,7 +1,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/Polyhedron_incremental_builder_3.h> #include <CGAL/Polyhedron_incremental_builder_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <sstream> #include <sstream>
typedef CGAL::Simple_cartesian<double> K; typedef CGAL::Simple_cartesian<double> K;

View File

@ -2,7 +2,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/IO/Verbose_ostream.h> #include <CGAL/IO/Verbose_ostream.h>
#include <cstddef> #include <cstddef>
#include <cstdlib> #include <cstdlib>

View File

@ -1,6 +1,5 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/IO/Polyhedron_VRML_1_ostream.h> #include <CGAL/IO/Polyhedron_VRML_1_ostream.h>
#include <iostream> #include <iostream>

View File

@ -2,7 +2,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/IO/Verbose_ostream.h> #include <CGAL/IO/Verbose_ostream.h>
#include <cstddef> #include <cstddef>
#include <cstdlib> #include <cstdlib>

View File

@ -32,7 +32,6 @@
// disabled compilers. // disabled compilers.
#ifndef CGAL_USE_POLYHEDRON_DESIGN_ONE #ifndef CGAL_USE_POLYHEDRON_DESIGN_ONE
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/IO/print_OFF.h> #include <CGAL/IO/print_OFF.h>
#include <CGAL/IO/print_wavefront.h> #include <CGAL/IO/print_wavefront.h>
#include <CGAL/IO/print_inventor.h> #include <CGAL/IO/print_inventor.h>

View File

@ -729,7 +729,9 @@ public:
return gic( gc( p, exponent ), ev ); return gic( gc( p, exponent ), ev );
}; };
}; };
typedef CGAL::internal::Monomial_representation<Polynomial_d> Monomial_representation;
// Swap variable x_i with x_j // Swap variable x_i with x_j
struct Swap { struct Swap {
typedef Polynomial_d result_type; typedef Polynomial_d result_type;
@ -1537,10 +1539,6 @@ struct Construct_innermost_coefficient_const_iterator_range
}; };
typedef
CGAL::internal::Monomial_representation<Polynomial_d>
Monomial_representation;
// returns the Exponten_vector of the innermost leading coefficient // returns the Exponten_vector of the innermost leading coefficient
struct Degree_vector{ struct Degree_vector{
typedef Exponent_vector result_type; typedef Exponent_vector result_type;

View File

@ -440,20 +440,29 @@ make_property_map(const std::vector<T>& v)
} }
/// \ingroup PkgProperty_map /// \ingroup PkgProperty_map
/// Property map that only returns the default value type /// Property map that returns a fixed value.
/// \cgalModels `ReadablePropertyMap` /// Note that this value is chosen when the map is constructed and cannot
template<class InputIterator, class ValueType> /// be changed afterwards. Specifically, the free function `put()` does nothing.
struct Default_property_map{ ///
/// \cgalModels `ReadWritePropertyMap`
template<class KeyType, class ValueType>
struct Constant_property_map
{
const ValueType default_value; const ValueType default_value;
typedef typename InputIterator::value_type key_type;
typedef boost::readable_property_map_tag category;
Default_property_map(const ValueType& default_value = ValueType()) : default_value (default_value) { } typedef KeyType key_type;
typedef ValueType value_type;
/// Free function to use a get the value from an iterator using Input_iterator_property_map. typedef boost::read_write_property_map_tag category;
inline friend ValueType
get (const Default_property_map&, const key_type&){ return ValueType(); } Constant_property_map(const value_type& default_value = value_type()) : default_value (default_value) { }
/// Free function that returns `pm.default_value`.
inline friend value_type
get (const Constant_property_map& pm, const key_type&){ return pm.default_value; }
/// Free function that does nothing.
inline friend void
put (const Constant_property_map&, const key_type&, const value_type&) { }
}; };
/// \ingroup PkgProperty_map /// \ingroup PkgProperty_map

View File

@ -3,9 +3,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/properties_Polyhedron_3.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <cstdlib> #include <cstdlib>
#include <cstdio> #include <cstdio>

View File

@ -3,9 +3,6 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/properties_Polyhedron_3.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <cstdlib> #include <cstdlib>
#include <cstdio> #include <cstdio>

View File

@ -20,7 +20,7 @@
#ifndef CGAL_INTERNAL_ARRAY_BINARY_TREE_HPP #ifndef CGAL_INTERNAL_ARRAY_BINARY_TREE_HPP
#define CGAL_INTERNAL_ARRAY_BINARY_TREE_HPP #define CGAL_INTERNAL_ARRAY_BINARY_TREE_HPP
#include <boost/iterator.hpp> #include <iterator>
#include <functional> #include <functional>
#include <boost/config.hpp> #include <boost/config.hpp>
@ -52,12 +52,12 @@ public:
struct children_type { struct children_type {
struct iterator struct iterator
: ::boost::iterator<std::forward_iterator_tag,
//JT: the iterator type is "forward" and not "bidirectional",
//because it does not implement unary operator--
ArrayBinaryTreeNode,
difference_type, array_binary_tree_node*, ArrayBinaryTreeNode&>
{ // replace with iterator_adaptor implementation -JGS { // 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() : i(0), n(0) { }
inline iterator(const iterator& x) : r(x.r), i(x.i), n(x.n), id(x.id) { } inline iterator(const iterator& x) : r(x.r), i(x.i), n(x.n), id(x.id) { }

View File

@ -107,7 +107,8 @@ protected:
typedef Segment_tree_node<C_Data,C_Window,C_Interface> Segment_tree_node_t; typedef Segment_tree_node<C_Data,C_Window,C_Interface> Segment_tree_node_t;
typedef Segment_tree_node<C_Data,C_Window,C_Interface> *link_type; typedef Segment_tree_node<C_Data,C_Window,C_Interface> *link_type;
std::allocator<Segment_tree_node_t> alloc; typedef std::allocator<Segment_tree_node_t> allocator_type;
allocator_type alloc;
C_Interface m_interface; C_Interface m_interface;
bool is_built; bool is_built;
@ -197,7 +198,11 @@ protected:
{ {
Segment_tree_node_t node(l,r,kl,kr); Segment_tree_node_t node(l,r,kl,kr);
Segment_tree_node_t* node_ptr = alloc.allocate(1); Segment_tree_node_t* node_ptr = alloc.allocate(1);
#ifdef CGAL_CXX11
std::allocator_traits<allocator_type>::construct(alloc, node_ptr, node);
#else
alloc.construct(node_ptr, node); alloc.construct(node_ptr, node);
#endif
return node_ptr; return node_ptr;
} }
@ -205,7 +210,11 @@ protected:
{ {
Segment_tree_node_t node(kl,kr); Segment_tree_node_t node(kl,kr);
Segment_tree_node_t* node_ptr = alloc.allocate(1); Segment_tree_node_t* node_ptr = alloc.allocate(1);
#ifdef CGAL_CXX11
std::allocator_traits<allocator_type>::construct(alloc, node_ptr, node);
#else
alloc.construct(node_ptr, node); alloc.construct(node_ptr, node);
#endif
return node_ptr; return node_ptr;
} }
@ -213,7 +222,11 @@ protected:
{ {
Segment_tree_node_t node; Segment_tree_node_t node;
Segment_tree_node_t* node_ptr = alloc.allocate(1); Segment_tree_node_t* node_ptr = alloc.allocate(1);
#ifdef CGAL_CXX11
std::allocator_traits<allocator_type>::construct(alloc, node_ptr, node);
#else
alloc.construct(node_ptr, node); alloc.construct(node_ptr, node);
#endif
return node_ptr; return node_ptr;
} }
@ -298,7 +311,11 @@ protected:
void delete_node(Segment_tree_node_t* node_ptr) void delete_node(Segment_tree_node_t* node_ptr)
{ {
#ifdef CGAL_CXX11
std::allocator_traits<allocator_type>::destroy(alloc, node_ptr);
#else
alloc.destroy(node_ptr); alloc.destroy(node_ptr);
#endif
alloc.deallocate(node_ptr,1); alloc.deallocate(node_ptr,1);
} }

View File

@ -3,7 +3,6 @@
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Skin_surface_3.h> #include <CGAL/Skin_surface_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/mesh_skin_surface_3.h> #include <CGAL/mesh_skin_surface_3.h>
#include <list> #include <list>

View File

@ -2,7 +2,6 @@
#include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Skin_surface_3.h> #include <CGAL/Skin_surface_3.h>
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/mesh_skin_surface_3.h> #include <CGAL/mesh_skin_surface_3.h>
#include <list> #include <list>

View File

@ -5,7 +5,6 @@
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/Polyhedron_items_with_id_3.h> #include <CGAL/Polyhedron_items_with_id_3.h>
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Surface_mesh_deformation.h> #include <CGAL/Surface_mesh_deformation.h>
#include <CGAL/Timer.h> #include <CGAL/Timer.h>

View File

@ -6,7 +6,6 @@
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/Polyhedron_items_with_id_3.h> #include <CGAL/Polyhedron_items_with_id_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>

View File

@ -1,6 +1,4 @@
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <boost/graph/graph_traits.hpp>
#include <CGAL/boost/graph/properties_Polyhedron_3.h>
#include <CGAL/property_map.h> #include <CGAL/property_map.h>
#include <boost/optional.hpp> #include <boost/optional.hpp>
#include <vector> #include <vector>

View File

@ -8,7 +8,6 @@
#include <CGAL/Polyhedron_items_with_id_3.h> #include <CGAL/Polyhedron_items_with_id_3.h>
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Surface_mesh_deformation.h> #include <CGAL/Surface_mesh_deformation.h>
#include <CGAL/IO/Polyhedron_iostream.h>
typedef CGAL::Simple_cartesian<double> Kernel; typedef CGAL::Simple_cartesian<double> Kernel;
typedef CGAL::Polyhedron_3<Kernel, CGAL::Polyhedron_items_with_id_3> Polyhedron; typedef CGAL::Polyhedron_3<Kernel, CGAL::Polyhedron_items_with_id_3> Polyhedron;

View File

@ -1,6 +1,5 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/Timer.h> #include <CGAL/Timer.h>
#include <CGAL/mesh_segmentation.h> #include <CGAL/mesh_segmentation.h>

View File

@ -1,8 +1,7 @@
#include <CGAL/internal/Surface_mesh_segmentation/Filters.h> #include <CGAL/internal/Surface_mesh_segmentation/Filters.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <cmath> #include <cmath>
#include <map> #include <map>

View File

@ -1,6 +1,5 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/mesh_segmentation.h> #include <CGAL/mesh_segmentation.h>

View File

@ -1,8 +1,7 @@
#define CGAL_DO_NOT_USE_BOYKOV_KOLMOGOROV_MAXFLOW_SOFTWARE #define CGAL_DO_NOT_USE_BOYKOV_KOLMOGOROV_MAXFLOW_SOFTWARE
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/mesh_segmentation.h> #include <CGAL/mesh_segmentation.h>

View File

@ -1,8 +1,7 @@
#include <CGAL/Simple_cartesian.h> #include <CGAL/Simple_cartesian.h>
#include <CGAL/Exact_rational.h> #include <CGAL/Exact_rational.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/mesh_segmentation.h> #include <CGAL/mesh_segmentation.h>
#include <CGAL/property_map.h> #include <CGAL/property_map.h>

View File

@ -9,9 +9,7 @@
#include <CGAL/Polyhedron_3.h> #include <CGAL/Polyhedron_3.h>
#include <CGAL/Polyhedron_items_with_id_3.h> #include <CGAL/Polyhedron_items_with_id_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
#include <CGAL/boost/graph/graph_traits_Polyhedron_3.h>
#include <CGAL/boost/graph/iterator.h> #include <CGAL/boost/graph/iterator.h>
#include <CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h> #include <CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h>

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