diff --git a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointsGraphicsItem.h b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointsGraphicsItem.h index 30c075f3ce6..7f061a138b6 100644 --- a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointsGraphicsItem.h +++ b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointsGraphicsItem.h @@ -22,6 +22,7 @@ #include #include +#include #include class QPainter; diff --git a/BGL/include/CGAL/boost/graph/graph_traits_Arrangement_2.h b/Arrangement_on_surface_2/include/CGAL/boost/graph/graph_traits_Arrangement_2.h similarity index 100% rename from BGL/include/CGAL/boost/graph/graph_traits_Arrangement_2.h rename to Arrangement_on_surface_2/include/CGAL/boost/graph/graph_traits_Arrangement_2.h diff --git a/BGL/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h b/Arrangement_on_surface_2/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h similarity index 100% rename from BGL/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h rename to Arrangement_on_surface_2/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h diff --git a/BGL/include/CGAL/boost/graph/Dual.h b/BGL/include/CGAL/boost/graph/Dual.h index ff6ae143cfa..f71c7d543a1 100644 --- a/BGL/include/CGAL/boost/graph/Dual.h +++ b/BGL/include/CGAL/boost/graph/Dual.h @@ -22,6 +22,7 @@ #include #include +#include namespace CGAL { diff --git a/BGL/include/CGAL/boost/graph/helpers.h b/BGL/include/CGAL/boost/graph/helpers.h index df3dc06559f..398f6627b1b 100644 --- a/BGL/include/CGAL/boost/graph/helpers.h +++ b/BGL/include/CGAL/boost/graph/helpers.h @@ -25,7 +25,6 @@ #include #include #include -#include namespace CGAL { @@ -720,4 +719,8 @@ void clear(FaceGraph& g) } // namespace CGAL +// Include "Euler_operations.h" at the end, because its implementation +// requires this header. +#include + #endif // CGAL_BOOST_GRAPH_HELPERS_H diff --git a/BGL/include/CGAL/boost/graph/split_graph_into_polylines.h b/BGL/include/CGAL/boost/graph/split_graph_into_polylines.h index f69dd4c0f41..ef296349685 100644 --- a/BGL/include/CGAL/boost/graph/split_graph_into_polylines.h +++ b/BGL/include/CGAL/boost/graph/split_graph_into_polylines.h @@ -25,7 +25,7 @@ #include #include #include - +#include namespace CGAL { diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_with_holes_2.h b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_with_holes_2.h deleted file mode 100644 index 0e51813e776..00000000000 --- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_with_holes_2.h +++ /dev/null @@ -1,71 +0,0 @@ - -namespace CGAL { - -/*! -\ingroup PkgBooleanSetOperations2 - -\cgalModels `GeneralPolygonWithHoles_2` - -*/ -template< typename Polygon > -class General_polygon_with_holes_2 { -public: - -/// \name Definition -/// The class `General_polygon_with_holes_2` models the concept -/// `GeneralPolygonWithHoles_2`. It represents a general polygon with -/// holes. It is parameterized with a type `Polygon` used to define -/// the exposed type `General_polygon_2`. This type represents the -/// outer boundary of the general polygon and the outer boundaries of -/// each hole. -/// @{ - -/*! - -*/ -typedef Polygon General_polygon_2; - -/// @} - -}; /* end General_polygon_with_holes_2 */ - -/*! -This operator imports a General_polygon_with_holes_2 from the input stream `in`. - -An ASCII and a binary format exist. The stream detects the format -automatically and can read both. - -The format consists of the number of curves of the outer boundary -followed by the curves themselves in counterclockwise order, followed -by the number of holes, and for each hole, the number of curves on its -outer boundary is followed by the curves themselves in clockwise -order. - -\relates General_polygon_with_holes_2 -*/ -template -std::istream& operator>>(std::istream& in, CGAL::General_polygon_with_holes_2& P); - - -/*! -This operator exports a General_polygon_with_holes_2 to the output stream `out`. - -An ASCII and a binary format exist. The format can be selected with -the \cgal modifiers for streams, `set_ascii_mode(0` and `set_binary_mode()` -respectively. The modifier `set_pretty_mode()` can be used to allow for (a -few) structuring comments in the output. Otherwise, the output would -be free of comments. The default for writing is ASCII without -comments. - -The number of curves of the outer boundary is exported followed by the -curves themselves in counterclockwise order. Then, the number of holes -is exported, and for each hole, the number of curves on its outer -boundary is exported followed by the curves themselves in clockwise -order. - -\relates General_polygon_with_holes_2 -*/ -template -std::ostream& operator<<(std::ostream& out, CGAL::General_polygon_with_holes_2& P); - -} /* end namespace CGAL */ diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Polygon_with_holes_2.h b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Polygon_with_holes_2.h deleted file mode 100644 index 473a24a18a9..00000000000 --- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Polygon_with_holes_2.h +++ /dev/null @@ -1,62 +0,0 @@ - -namespace CGAL { - -/*! -\ingroup PkgBooleanSetOperations2 - -The class `Polygon_with_holes_2` models the concept `GeneralPolygonWithHoles_2`. -It represents a linear polygon with holes. It is parameterized with two -types (`Kernel` and `Container`) that are used to instantiate -the type `Polygon_2`. The latter is used to -represents the outer boundary and the boundary of the holes (if any exist). - -\cgalModels `GeneralPolygonWithHoles_2` - -*/ -template< typename Kernel, typename Container > -class Polygon_with_holes_2 { -public: - -/// @} - -}; /* end Polygon_with_holes_2 */ - -/*! -This operator imports a polygon with holes from the input stream `in`. - -An ASCII and a binary format exist. The stream detects the format -automatically and can read both. - -The format consists of the number of points of the outer boundary followed -by the points themselves in counterclockwise order, followed by the number of holes, -and for each hole, the number of points of the outer boundary is followed -by the points themselves in clockwise order. - -\relates Polygon_with_holes_2 -*/ -template -std::istream& operator>>(std::istream& in, CGAL::Polygon_with_holes_2& P); - - -/*! -This operator exports a polygon with holes to the output stream `out`. - -An ASCII and a binary format exist. The format can be selected with -the \cgal modifiers for streams, `set_ascii_mode()` and `set_binary_mode()` -respectively. The modifier `set_pretty_mode()` can be used to allow for (a -few) structuring comments in the output. Otherwise, the output would -be free of comments. The default for writing is ASCII without -comments. - -The number of points of the outer boundary is exported followed by the -points themselves in counterclockwise order. Then, the number of holes -is exported, and for each hole, the number of points on its outer -boundary is exported followed by the points themselves in clockwise -order. - -\relates Polygon_with_holes_2 -*/ -template -std::ostream& operator<<(std::ostream& out, CGAL::Polygon_with_holes_2& P); - -} /* end namespace CGAL */ diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/Concepts/GeneralPolygonWithHoles_2.h b/Boolean_set_operations_2/doc/Boolean_set_operations_2/Concepts/GeneralPolygonWithHoles_2.h deleted file mode 100644 index 6a6b00fc845..00000000000 --- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/Concepts/GeneralPolygonWithHoles_2.h +++ /dev/null @@ -1,110 +0,0 @@ - -/*! -\ingroup PkgBooleanSetOperations2Concepts -\cgalConcept - -\cgalRefines `GpsTraitsGeneralPolygonWithHoles_2` - -A model of this concept represents a general polygon with holes. The -concept requires the ability to access the general polygon that -represents the outer boundary and the general polygons that represent -the holes. - -\cgalHasModel `CGAL::General_polygon_with_holes_2` -\cgalHasModel `CGAL::Polygon_with_holes_2` -\cgalHasModel `CGAL::Gps_circle_segment_traits_2::%Polygon_with_holes_2` -\cgalHasModel `CGAL::Gps_traits_2::%Polygon_with_holes_2` - -*/ - -class GeneralPolygonWithHoles_2 { -public: - -/// \name Types -/// @{ - -/*! -the general-polygon type used to -represent the outer boundary and each hole. Must model the `GeneralPolygon_2` concept. -*/ -typedef unspecified_type General_polygon_2; - -/*! -a bidirectional iterator -over the polygonal holes. Its value type is -`General_polygon_2`. -*/ -typedef unspecified_type Hole_const_iterator; - -/// @} - -/// \name Creation -/// @{ - -/*! -default constructor. -*/ -GeneralPolygonWithHoles_2(); - -/*! -copy constructor. -*/ -GeneralPolygonWithHoles_2(GeneralPolygonWithHoles_2 other); - -/*! -assignment operator. -*/ -GeneralPolygonWithHoles_2 operator=(other); - -/*! -constructs a general polygon with holes that has no holes using a given general polygon `outer` as the outer boundary. -*/ -GeneralPolygonWithHoles_2(General_polygon_2 & outer); - -/*! -constructs a general polygon with holes using a given general polygon -`outer` as the outer boundary and a given range of holes. If `outer` -is an empty general polygon, then an unbounded polygon with holes will be -created. The holes must be contained inside the outer boundary, and the -polygons representing the holes must be simple and pairwise disjoint, except -perhaps at the vertices. -*/ -template -GeneralPolygonWithHoles_2(General_polygon_2 & outer, -InputIterator begin, InputIterator end); - -/// @} - -/// \name Predicates -/// @{ - -/*! -returns `true` if the outer boundary is empty, and `false` -otherwise. -*/ -bool is_unbounded(); - -/// @} - -/// \name Access Functions -/// @{ - -/*! -returns the general polygon that represents the outer boundary. Note that this polygon is not necessarily a valid (simple) general polygon because it may be relatively simple. -*/ -const General_polygon_2 & outer_boundary() const; - -/*! -returns the begin iterator of the holes. -*/ -Hole_const_iterator holes_begin() const; - -/*! -returns the past-the-end iterator of the holes. -*/ -Hole_const_iterator holes_end() const; - -/// @} - -}; /* end GeneralPolygonWithHoles_2 */ - diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/PackageDescription.txt b/Boolean_set_operations_2/doc/Boolean_set_operations_2/PackageDescription.txt index 04628f3aa0e..c9570ed6982 100644 --- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/PackageDescription.txt +++ b/Boolean_set_operations_2/doc/Boolean_set_operations_2/PackageDescription.txt @@ -37,7 +37,6 @@ containment predicates. - `GpsTraitsGeneralPolygon_2` - `GpsTraitsGeneralPolygonWithHoles_2` - `GeneralPolygon_2` -- `GeneralPolygonWithHoles_2` - `ArrangementDirectionalXMonotoneTraits_2` - `GeneralPolygonSetTraits_2` - `GeneralPolygonSetDcel` @@ -45,7 +44,6 @@ containment predicates. - `GeneralPolygonSetDcelHalfedge` ## Classes ## -- `CGAL::Polygon_with_holes_2` - `CGAL::Polygon_set_2` - `CGAL::General_polygon_set_2` - `CGAL::General_polygon_2` @@ -64,8 +62,5 @@ containment predicates. - \link boolean_symmetric_difference `CGAL::symmetric_difference()` \endlink - \link boolean_oriented_side `CGAL::oriented_side()` \endlink - \link boolean_connect_holes `CGAL::connect_holes()` \endlink -- `operator<<()` for `CGAL::Polygon_with_holes_2`, `CGAL::General_polygon_2` and `CGAL::General_polygon_with_holes_2` -- `operator>>()` for `CGAL::Polygon_with_holes_2`, `CGAL::General_polygon_2` and `CGAL::General_polygon_with_holes_2` - */ diff --git a/Boolean_set_operations_2/include/CGAL/IO/Dxf_bsop_reader.h b/Boolean_set_operations_2/include/CGAL/IO/Dxf_bsop_reader.h index 5ae13a70825..2eef41c833c 100644 --- a/Boolean_set_operations_2/include/CGAL/IO/Dxf_bsop_reader.h +++ b/Boolean_set_operations_2/include/CGAL/IO/Dxf_bsop_reader.h @@ -28,6 +28,7 @@ #include #include #include +#include namespace CGAL { diff --git a/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt b/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt index 37d214e32bb..88964fde92c 100644 --- a/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt +++ b/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt @@ -24,40 +24,31 @@ find_package(CGAL QUIET COMPONENTS Core) if ( CGAL_FOUND ) include( ${CGAL_USE_FILE} ) - find_package(IPE) + find_package(IPE 6) if ( IPE_FOUND ) include_directories(BEFORE ${IPE_INCLUDE_DIR}) - #check IPE version - FILE(READ "${IPE_INCLUDE_DIR}/ipebase.h" IPEBASE_H) - STRING(REGEX MATCH "IPELIB_VERSION[ ]*=[ ]*([67])([0-9][0-9])([0-9][0-9]);" FOUND_IPE_VERSION "${IPEBASE_H}") - if (FOUND_IPE_VERSION) - set(IPE_VERSION ${CMAKE_MATCH_1}) - set(IPE_MINOR_VERSION_1 ${CMAKE_MATCH_2}) - set(IPE_MINOR_VERSION_2 ${CMAKE_MATCH_3}) - - if (${IPE_VERSION} EQUAL "7") - set(WITH_IPE_7 ON) - elseif(${IPE_VERSION} EQUAL "6") - set(WITH_IPE_7 OFF) - else() - message("-- Error: ${IPE_VERSION} is not a supported version of IPE (only 6 and 7 are).") - set(IPE_FOUND FALSE) - endif() - # starting ipe 7.2.1, a compiler with c++11 must be used to compile ipelets - if (${IPE_VERSION} EQUAL "7" AND - ${IPE_MINOR_VERSION_1} GREATER "1" AND - ${IPE_MINOR_VERSION_2} GREATER "0") - message(STATUS "Starting from Ipe 7.2.1 a compiler with c++11 support must be used") - include(CheckCXXCompilerFlag) - CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) - CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) - if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") - endif() + if (${IPE_VERSION} EQUAL "7") + set(WITH_IPE_7 ON) + elseif(${IPE_VERSION} EQUAL "6") + set(WITH_IPE_7 OFF) + else() + message("-- Error: ${IPE_VERSION} is not a supported version of IPE (only 6 and 7 are).") + set(IPE_FOUND FALSE) + endif() + # starting ipe 7.2.1, a compiler with c++11 must be used to compile ipelets + if (${IPE_VERSION} EQUAL "7" AND + ${IPE_MINOR_VERSION_1} GREATER "1" AND + ${IPE_MINOR_VERSION_2} GREATER "0") + message(STATUS "Starting from Ipe 7.2.1 a compiler with c++11 support must be used") + include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) + CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) + if(COMPILER_SUPPORTS_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + elseif(COMPILER_SUPPORTS_CXX0X) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") endif() endif() endif() diff --git a/Circular_kernel_2/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h b/Circular_kernel_2/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h index c67f812f13c..d67eaf32824 100644 --- a/Circular_kernel_2/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h +++ b/Circular_kernel_2/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h @@ -27,6 +27,7 @@ #define CGAL_CIRCULAR_KERNEL_CIRCULAR_ARC_POINT_2_H #include +#include #include #include #include diff --git a/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h b/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h index 5cc8108b9ad..fdd5c86e2b4 100644 --- a/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h +++ b/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h @@ -27,6 +27,7 @@ #define CGAL_CIRCULAR_KERNEL_INTERNAL_FUNCTIONS_ON_CIRCLE_2_H #include +#include namespace CGAL { diff --git a/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h b/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h index 05c212babdd..9994152746a 100644 --- a/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h +++ b/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h @@ -29,7 +29,7 @@ #include #include #include - +#include namespace CGAL { namespace CircularFunctors { diff --git a/Circular_kernel_3/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h b/Circular_kernel_3/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h index 8cea92f66d1..c9a502e1256 100644 --- a/Circular_kernel_3/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h +++ b/Circular_kernel_3/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h @@ -33,6 +33,9 @@ // fixme, devrait // appeler fonction de global_functions_on_circular_arcs +#include +#include + namespace CGAL { namespace internal { diff --git a/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h b/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h index 002f00687be..bec9726a5b7 100644 --- a/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h +++ b/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h @@ -25,6 +25,10 @@ #ifndef CGAL_SPHERICAL_KERNEL_PREDICATES_HAS_ON_3_H #define CGAL_SPHERICAL_KERNEL_PREDICATES_HAS_ON_3_H +#include +#include +#include + namespace CGAL { namespace SphericalFunctors { diff --git a/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h b/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h index 9bfedfaa182..13d9a509a94 100644 --- a/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h +++ b/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h @@ -25,6 +25,8 @@ #define CGAL_SPHERICAL_KERNEL_PREDICATES_ON_SPHERE_3_H #include +#include +#include namespace CGAL { namespace SphericalFunctors { diff --git a/Circular_kernel_3/include/CGAL/global_functions_spherical_kernel_3.h b/Circular_kernel_3/include/CGAL/global_functions_spherical_kernel_3.h index 7174528f2c6..6045e0171a5 100644 --- a/Circular_kernel_3/include/CGAL/global_functions_spherical_kernel_3.h +++ b/Circular_kernel_3/include/CGAL/global_functions_spherical_kernel_3.h @@ -46,6 +46,9 @@ class Circle_3; template class Sphere_3; +template +class Vector_3; + template Circular_arc_point_3 x_extremal_point(const Circle_3 & c, bool i) diff --git a/Circulator/include/CGAL/circulator.h b/Circulator/include/CGAL/circulator.h index e5187312158..b2f605819d5 100644 --- a/Circulator/include/CGAL/circulator.h +++ b/Circulator/include/CGAL/circulator.h @@ -25,7 +25,7 @@ #ifndef CGAL_CIRCULATOR_H #define CGAL_CIRCULATOR_H -#include +#include #include #include #include diff --git a/Combinatorial_map/include/CGAL/Cell_attribute.h b/Combinatorial_map/include/CGAL/Cell_attribute.h index 245e9a07d09..ddccfc5e76c 100644 --- a/Combinatorial_map/include/CGAL/Cell_attribute.h +++ b/Combinatorial_map/include/CGAL/Cell_attribute.h @@ -21,6 +21,7 @@ #define CGAL_CELL_ATTRIBUTE_H 1 #include +#include namespace CGAL { diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map_basic_operations.h b/Combinatorial_map/include/CGAL/Combinatorial_map_basic_operations.h index ae57c78837b..3e3ca256093 100644 --- a/Combinatorial_map/include/CGAL/Combinatorial_map_basic_operations.h +++ b/Combinatorial_map/include/CGAL/Combinatorial_map_basic_operations.h @@ -20,6 +20,7 @@ #ifndef CGAL_COMBINATORIAL_MAP_BASIC_OPERATIONS_H #define CGAL_COMBINATORIAL_MAP_BASIC_OPERATIONS_H 1 +#include #include #include diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map_insertions.h b/Combinatorial_map/include/CGAL/Combinatorial_map_insertions.h index 0885b027f05..958671ca6a3 100644 --- a/Combinatorial_map/include/CGAL/Combinatorial_map_insertions.h +++ b/Combinatorial_map/include/CGAL/Combinatorial_map_insertions.h @@ -21,6 +21,7 @@ #define CGAL_COMBINATORIAL_MAP_INSERTIONS_H #include +#include namespace CGAL { diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h b/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h index 69188e83f25..f5cbabecce3 100644 --- a/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h +++ b/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h @@ -22,6 +22,9 @@ #include #include +#include +#include + #include #include diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map_storages.h b/Combinatorial_map/include/CGAL/Combinatorial_map_storages.h index d513b818ad1..fc95eb0ce92 100644 --- a/Combinatorial_map/include/CGAL/Combinatorial_map_storages.h +++ b/Combinatorial_map/include/CGAL/Combinatorial_map_storages.h @@ -23,6 +23,7 @@ #include #include +#include #include #if (BOOST_GCC >= 40900) @@ -32,6 +33,11 @@ _Pragma("GCC diagnostic ignored \"-Warray-bounds\"") namespace CGAL { + namespace internal { + template + struct Combinatorial_map_helper; + } + /** @file Combinatorial_map_storages.h * Definition of storages for dD Combinatorial map. */ diff --git a/Combinatorial_map/include/CGAL/Dart.h b/Combinatorial_map/include/CGAL/Dart.h index 03fae724afe..48496e33efa 100644 --- a/Combinatorial_map/include/CGAL/Dart.h +++ b/Combinatorial_map/include/CGAL/Dart.h @@ -23,6 +23,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Distance_3/include/CGAL/squared_distance_3_0.h b/Distance_3/include/CGAL/squared_distance_3_0.h index 443c561686b..5227036000e 100644 --- a/Distance_3/include/CGAL/squared_distance_3_0.h +++ b/Distance_3/include/CGAL/squared_distance_3_0.h @@ -32,7 +32,7 @@ #include #include - +#include namespace CGAL { diff --git a/Segment_Delaunay_graph_2/include/CGAL/Filtered_construction.h b/Filtered_kernel/include/CGAL/Filtered_construction.h similarity index 90% rename from Segment_Delaunay_graph_2/include/CGAL/Filtered_construction.h rename to Filtered_kernel/include/CGAL/Filtered_construction.h index 35ade819501..f43285e46b8 100644 --- a/Segment_Delaunay_graph_2/include/CGAL/Filtered_construction.h +++ b/Filtered_kernel/include/CGAL/Filtered_construction.h @@ -1,10 +1,10 @@ // Copyright (c) 2003,2004 INRIA Sophia-Antipolis (France). // 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 -// General Public License as published by the Free Software Foundation, -// either version 3 of the License, or (at your option) any later version. +// 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; either 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. @@ -18,9 +18,6 @@ // // Author(s) : Menelaos Karavelas - - - #ifndef CGAL_FILTERED_CONSTRUCTION_H #define CGAL_FILTERED_CONSTRUCTION_H diff --git a/Filtered_kernel/include/CGAL/internal/Static_filters/Static_filter_error.h b/Filtered_kernel/include/CGAL/internal/Static_filters/Static_filter_error.h index c59d6c05f59..477e5de9e97 100644 --- a/Filtered_kernel/include/CGAL/internal/Static_filters/Static_filter_error.h +++ b/Filtered_kernel/include/CGAL/internal/Static_filters/Static_filter_error.h @@ -34,7 +34,7 @@ // - Remove the degree stuff, it's only meant for debug (?). // - Add __attribute__((const)) for optimizing ? -#include +#include #include #include diff --git a/Filtered_kernel/include/CGAL/internal/Static_filters/Static_filters.h b/Filtered_kernel/include/CGAL/internal/Static_filters/Static_filters.h index cc347ea16af..e4e0c262b6c 100644 --- a/Filtered_kernel/include/CGAL/internal/Static_filters/Static_filters.h +++ b/Filtered_kernel/include/CGAL/internal/Static_filters/Static_filters.h @@ -29,7 +29,7 @@ // logic and is not plug'n play (requires users providing bounds). // If it should be provided again, it should probably be separate. -#include +#include #include #include diff --git a/Filtered_kernel/include/CGAL/internal/Static_filters/tools.h b/Filtered_kernel/include/CGAL/internal/Static_filters/tools.h index 98f0f95569d..02ddbaa89c3 100644 --- a/Filtered_kernel/include/CGAL/internal/Static_filters/tools.h +++ b/Filtered_kernel/include/CGAL/internal/Static_filters/tools.h @@ -21,7 +21,7 @@ #ifndef CGAL_INTERNAL_STATIC_FILTERS_TOOLS_H #define CGAL_INTERNAL_STATIC_FILTERS_TOOLS_H -#include +#include #include #include diff --git a/Generator/include/CGAL/Random_convex_set_traits_2.h b/Generator/include/CGAL/Random_convex_set_traits_2.h index 6582e1393a9..94b10d9221f 100644 --- a/Generator/include/CGAL/Random_convex_set_traits_2.h +++ b/Generator/include/CGAL/Random_convex_set_traits_2.h @@ -26,6 +26,7 @@ #define CGAL_RANDOM_CONVEX_SET_TRAITS_2_H 1 #include +#include namespace CGAL { diff --git a/Generator/include/CGAL/random_convex_hull_in_disc_2.h b/Generator/include/CGAL/random_convex_hull_in_disc_2.h index 2c435806efc..fe970319236 100644 --- a/Generator/include/CGAL/random_convex_hull_in_disc_2.h +++ b/Generator/include/CGAL/random_convex_hull_in_disc_2.h @@ -26,6 +26,10 @@ #define CGAL_RANDOM_CONVEX_HULL_DISC_H 1 #include #include +#include +#include +#include +#include namespace CGAL { namespace internal { diff --git a/Generator/include/CGAL/random_convex_set_2.h b/Generator/include/CGAL/random_convex_set_2.h index 5bb37427c8a..588f63d38b2 100644 --- a/Generator/include/CGAL/random_convex_set_2.h +++ b/Generator/include/CGAL/random_convex_set_2.h @@ -31,8 +31,8 @@ #include #include #include -#include #include +#include namespace CGAL { @@ -75,7 +75,14 @@ random_convex_set_2( std::size_t n, CGAL::cpp11::copy_n( pg, n, back_inserter( points)); // compute centroid of points: - Point_2 centroid = CGAL::centroid( points.begin(), points.end(), t ); + // Point_2 centroid = CGAL::centroid( points.begin(), points.end(), t ); + + Point_2 centroid = t.origin(); + + BOOST_FOREACH(const Point_2& p, points){ + centroid = sum(centroid, p); + } + centroid = scale(centroid, FT(1)/FT(n)); // translate s.t. centroid == origin: transform( @@ -93,8 +100,12 @@ random_convex_set_2( std::size_t n, points.begin(), points.end(), points.begin(), Sum()); // and compute its centroid: - Point_2 new_centroid = CGAL::centroid( points.begin(), points.end(), t ); + Point_2 new_centroid = t.origin(); + BOOST_FOREACH(const Point_2& p, points){ + new_centroid = sum(new_centroid, p); + } + new_centroid = scale(new_centroid, FT(1)/FT(n)); // translate s.t. centroids match: transform( points.begin(), diff --git a/GraphicsView/include/CGAL/Qt/GraphicsViewCircleInput.h b/GraphicsView/include/CGAL/Qt/GraphicsViewCircleInput.h index 9cf92d881b9..e1749b30428 100644 --- a/GraphicsView/include/CGAL/Qt/GraphicsViewCircleInput.h +++ b/GraphicsView/include/CGAL/Qt/GraphicsViewCircleInput.h @@ -31,6 +31,7 @@ #include #include #include +#include #include #include diff --git a/GraphicsView/include/CGAL/Qt/GraphicsViewCircularArcInput.h b/GraphicsView/include/CGAL/Qt/GraphicsViewCircularArcInput.h index 46a26533178..02ab67f75a6 100644 --- a/GraphicsView/include/CGAL/Qt/GraphicsViewCircularArcInput.h +++ b/GraphicsView/include/CGAL/Qt/GraphicsViewCircularArcInput.h @@ -32,6 +32,7 @@ #include #include #include +#include #include #include diff --git a/GraphicsView/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h b/GraphicsView/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h index 34f4f55cbbc..6990cae8134 100644 --- a/GraphicsView/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h +++ b/GraphicsView/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h @@ -31,6 +31,7 @@ #include #include #include +#include #include #include diff --git a/GraphicsView/include/CGAL/Qt/GraphicsViewLineInput.h b/GraphicsView/include/CGAL/Qt/GraphicsViewLineInput.h index 091fcb74539..a3dfb4f67a1 100644 --- a/GraphicsView/include/CGAL/Qt/GraphicsViewLineInput.h +++ b/GraphicsView/include/CGAL/Qt/GraphicsViewLineInput.h @@ -31,6 +31,7 @@ #include #include #include +#include #include #include diff --git a/GraphicsView/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h b/GraphicsView/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h index 2817e2aaa4b..56b342fdb9f 100644 --- a/GraphicsView/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h +++ b/GraphicsView/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h @@ -28,6 +28,7 @@ #include #include #include +#include #include #include diff --git a/GraphicsView/include/CGAL/Qt/GraphicsViewPolylineInput.h b/GraphicsView/include/CGAL/Qt/GraphicsViewPolylineInput.h index 918cc7015d7..bbad61cbeb4 100644 --- a/GraphicsView/include/CGAL/Qt/GraphicsViewPolylineInput.h +++ b/GraphicsView/include/CGAL/Qt/GraphicsViewPolylineInput.h @@ -27,6 +27,7 @@ #include #include +#include #include #include diff --git a/BGL/include/CGAL/HalfedgeDS_face_max_base_with_id.h b/HalfedgeDS/include/CGAL/HalfedgeDS_face_max_base_with_id.h similarity index 100% rename from BGL/include/CGAL/HalfedgeDS_face_max_base_with_id.h rename to HalfedgeDS/include/CGAL/HalfedgeDS_face_max_base_with_id.h diff --git a/BGL/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h b/HalfedgeDS/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h similarity index 100% rename from BGL/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h rename to HalfedgeDS/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h diff --git a/HalfedgeDS/include/CGAL/HalfedgeDS_iterator.h b/HalfedgeDS/include/CGAL/HalfedgeDS_iterator.h index 4b3f0150c42..f178415d5d8 100644 --- a/HalfedgeDS/include/CGAL/HalfedgeDS_iterator.h +++ b/HalfedgeDS/include/CGAL/HalfedgeDS_iterator.h @@ -24,7 +24,9 @@ #ifndef CGAL_HALFEDGEDS_ITERATOR_H #define CGAL_HALFEDGEDS_ITERATOR_H 1 + #include +#include #include namespace CGAL { diff --git a/BGL/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h b/HalfedgeDS/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h similarity index 100% rename from BGL/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h rename to HalfedgeDS/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h diff --git a/BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h b/HalfedgeDS/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h similarity index 100% rename from BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h rename to HalfedgeDS/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h diff --git a/BGL/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h b/HalfedgeDS/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h similarity index 100% rename from BGL/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h rename to HalfedgeDS/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h diff --git a/Hash_map/include/CGAL/Handle_hash_function.h b/Hash_map/include/CGAL/Handle_hash_function.h index 675341fa592..61a1790390b 100644 --- a/Hash_map/include/CGAL/Handle_hash_function.h +++ b/Hash_map/include/CGAL/Handle_hash_function.h @@ -26,7 +26,7 @@ #ifndef CGAL_HANDLE_HASH_FUNCTION_H #define CGAL_HANDLE_HASH_FUNCTION_H -#include +#include #include namespace CGAL { diff --git a/Hash_map/include/CGAL/Tools/chained_map.h b/Hash_map/include/CGAL/Tools/chained_map.h index abed099a843..c947c503b22 100644 --- a/Hash_map/include/CGAL/Tools/chained_map.h +++ b/Hash_map/include/CGAL/Tools/chained_map.h @@ -25,6 +25,7 @@ #define CGAL_CHAINED_MAP_H #include +#include namespace CGAL { diff --git a/Hash_map/include/CGAL/Unique_hash_map.h b/Hash_map/include/CGAL/Unique_hash_map.h index 494ef12d64c..4ca3b645926 100644 --- a/Hash_map/include/CGAL/Unique_hash_map.h +++ b/Hash_map/include/CGAL/Unique_hash_map.h @@ -26,7 +26,7 @@ #ifndef CGAL_UNIQUE_HASH_MAP_H #define CGAL_UNIQUE_HASH_MAP_H -#include +#include #include #include #include diff --git a/Homogeneous_kernel/include/CGAL/Homogeneous/Homogeneous_base.h b/Homogeneous_kernel/include/CGAL/Homogeneous/Homogeneous_base.h index db950491d5f..7c7daf48a9b 100644 --- a/Homogeneous_kernel/include/CGAL/Homogeneous/Homogeneous_base.h +++ b/Homogeneous_kernel/include/CGAL/Homogeneous/Homogeneous_base.h @@ -25,7 +25,7 @@ #ifndef CGAL_HOMOGENEOUS_BASE_H #define CGAL_HOMOGENEOUS_BASE_H -#include +#include #include #include diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index 27f3d2a4148..8a78f390f8f 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -3,7 +3,9 @@ # refer to the root source directory of the project as ${CMAKE_SOURCE_DIR} or # ${CMAKE_SOURCE_DIR} and to the root binary directory of the project as # ${CMAKE_BINARY_DIR} or ${CMAKE_BINARY_DIR}. -project(CGAL CXX C) +if(NOT PROJECT_NAME) + project(CGAL CXX C) +endif() # Minimal version of CMake: cmake_minimum_required(VERSION 2.8.11) @@ -1019,7 +1021,55 @@ if ( CGAL_BRANCH_BUILD ) "Enable the special targets \"check_pkg_headers\", and \"check_pkg__headers\" for each package" FALSE) - if(CGAL_ENABLE_CHECK_HEADERS) + option(CGAL_COMPUTE_DEPENDENCIES + "Enable the special targets \"packages_dependencies\", and \"pkg__deps\" for each package. \ +Note that this option will modify the source directory!" + FALSE) + + if(CGAL_ENABLE_CHECK_HEADERS OR CGAL_COMPUTE_DEPENDENCIES) + + message( "== Setting header checking ==" ) + + find_package(Eigen3 REQUIRED) + find_package(Qt5 COMPONENTS Core Widgets Xml OpenGL REQUIRED) + find_package(QGLViewer) + find_package(VTK COMPONENTS vtkImagingGeneral vtkIOImage NO_MODULE) + find_package(IPE) + find_package(RS3) + find_package(LEDA) + + set(compile_options "\ +${CMAKE_CXX_FLAGS} -DCGAL_EIGEN3_ENABLED \ +${Qt5Widgets_DEFINITIONS} ${Qt5Xml_DEFINITIONS} ${Qt5OpenGL_DEFINITIONS} \ +${Qt5OpenGL_EXECUTABLE_COMPILE_FLAGS} -fPIC \ +${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} \ +${Qt5Xml_EXECUTABLE_COMPILE_FLAGS} \ +${CGAL_3RD_PARTY_DEFINITIONS} ${CGAL_Qt5_3RD_PARTY_DEFINITIONS} \ +${CGAL_DEFINITIONS}" + ) + + if(NOT RS_FOUND AND NOT RS3_FOUND) + set(compile_options "${compile_options} \ +-DCGAL_ALGEBRAIC_KERNEL_RS_GMPZ_D_1=1 \ +-DCGAL_ALGEBRAIC_KERNEL_RS_GMPQ_D_1=1") + message(STATUS "Skip RS headers \"CGAL/Algebraic_kernel_rs_gmpq_d_1.h\" \ +and \"CGAL/Algebraic_kernel_rs_gmpz_d_1.h\" because RS_FOUND is false.") + else() + set(compile_options "${compile_options} \ +-DCGAL_USE_MPFI=1 \ +-DCGAL_USE_RS=1") + endif() + if(LEDA_FOUND) + set(compile_options "${compile_options} -DCGAL_USE_LEDA") + endif() + if(NOT IPE_FOUND) + set(compile_options "${compile_options} -DCGAL_IPELET_BASE_H=1") + message(STATUS "Skip header \"CGAL/CGAL_ipelet_base.h\" \ +because IPE_FOUND is false.") + endif() + if ("${IPE_VERSION}" EQUAL "7") + set(compile_options "${compile_options} -DCGAL_USE_IPE_7") + endif() if(NOT DEFINED CGAL_CHECK_SYNTAX_ONLY) execute_process(COMMAND @@ -1035,7 +1085,7 @@ if ( CGAL_BRANCH_BUILD ) if(NOT CGAL_CHECK_SYNTAX_ONLY) message(FATAL_ERROR "Your compiler does not seem to support -fsyntax-only. -You must disable CGAL_ENABLE_CHECK_HEADERS.") +You must disable CGAL_ENABLE_CHECK_HEADERS and CGAL_COMPUTE_DEPENDENCIES.") endif() ## Fill the variable include_options with all the -I and -isystem options @@ -1043,37 +1093,134 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") foreach (incdir ${CGAL_INCLUDE_DIRS}) list(APPEND include_options "-I${incdir}") endforeach() - foreach (incdir ${CGAL_3RD_PARTY_INCLUDE_DIRS}) - list(APPEND include_options "-isystem${incdir}") + foreach (incdir + ${VTK_INCLUDE_DIRS} + ${LEDA_INCLUDE_DIR} + ${RS_INCLUDE_DIR} + ${EIGEN3_INCLUDE_DIR} + ${QGLVIEWER_INCLUDE_DIR} ${Qt5OpenGL_INCLUDE_DIRS} + ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} + ${CGAL_3RD_PARTY_INCLUDE_DIRS} ${CGAL_Qt5_3RD_PARTY_INCLUDE_DIRS} + ) + list(APPEND include_options "-I${incdir}") endforeach() include_directories ( SYSTEM ${CGAL_3RD_PARTY_INCLUDE_DIRS} ) + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_documented_headers.cmake + OPTIONAL RESULT_VARIABLE has_list_of_documented_headers) + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_whitelisted_headers.cmake + OPTIONAL RESULT_VARIABLE has_list_of_whitelisted_headers) + message("list_of_whitelisted_headers: ${list_of_whitelisted_headers}") ## Loop on package and headers set(check_pkg_target_list) + if(POLICY CMP0057) + cmake_policy(SET CMP0057 NEW) + endif() foreach (package ${CGAL_CONFIGURED_PACKAGES_NAMES}) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include) - set(depends "") - file(GLOB ${package}_HEADERS - RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" - "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h") + set(check_pkg_headers_depends "") + if(has_list_of_documented_headers AND POLICY CMP0057) + # Then recurse2 + file(GLOB_RECURSE ${package}_HEADERS + RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" + "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") + else() # do not recurse + file(GLOB ${package}_HEADERS + RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" + "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") + endif() list(SORT ${package}_HEADERS) + if(CGAL_COMPUTE_DEPENDENCIES OR COMPUTE_DEPS) + set(compute_deps_extra_args "-H ") + endif() foreach(header ${${package}_HEADERS}) - string(REPLACE "/" "__" header2 "${header}") - string(REPLACE "." "_" header2 "${header2}") - add_custom_command(OUTPUT check_${header2} - COMMAND ${CMAKE_CXX_COMPILER} ${CGAL_3RD_PARTY_DEFINITIONS} ${CGAL_DEFINITIONS} ${include_options} -x c++ -fsyntax-only "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header}" - COMMAND ${CMAKE_COMMAND} -E touch check_${header2} - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header}" - VERBATIM - COMMENT "Check header ${header}" - ) - list(APPEND depends check_${header2}) + set(skip_hdr FALSE) + if(POLICY CMP0057 + AND has_list_of_documented_headers + AND NOT header IN_LIST list_of_documented_headers + ) + message(STATUS "Skip non-documented header \"${header}\".") + set(skip_hdr TRUE) + endif() + string(REGEX MATCH "CGAL/leda_.*" is_a_leda_header ${header}) + if(NOT LEDA_FOUND AND is_a_leda_header) + message(STATUS "Skip LEDA header \"${header}\" because \ +LEDA_FOUND is false.") + set(skip_hdr TRUE) + endif() + if(POLICY CMP0057 + AND has_list_of_whitelisted_headers + AND header IN_LIST list_of_whitelisted_headers) + message(STATUS "Skip whitelisted header \"${header}\".") + set(skip_hdr TRUE) + endif() + if(NOT skip_hdr) + string(REPLACE "/" "__" header2 "${header}") + string(REPLACE "." "_" header2 "${header2}") + string(REPLACE ";" " " include_options_str "${include_options}") + string(REPLACE ";" " " compile_options_str "${compile_options}") + separate_arguments(CMD + UNIX_COMMAND + "${CMAKE_CXX_COMPILER} ${compile_options_str} +${include_options_str} -x c++ -fsyntax-only \ +${compute_deps_extra_args} \ +${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header}" + # The header Algebraic_kernel_rs_gmpz_d_1.h is skipped on purpose: it + # depends on RS. + ) + set(chk_header_name + ${CGAL_BINARY_DIR}/package_info/${package}/check_headers/check_${header2}) + add_custom_command(OUTPUT ${chk_header_name} + COMMAND ${CMAKE_COMMAND} + -DCERR:STRING=${chk_header_name} + "-DCMD:STRING=${CMD}" + -P "${CGAL_MODULES_DIR}/run_cmd_redirection_cerr.cmake" + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header} + DEPENDS ${CGAL_MODULES_DIR}/run_cmd_redirection_cerr.cmake + VERBATIM + COMMENT "Check header ${package}/include/${header}" + ) + list(APPEND check_pkg_headers_depends ${chk_header_name}) + if(${header2}_deps) + list(REMOVE_DUPLICATES ${header2}_deps) + endif() + endif() # end the if on list_of_documented_headers endforeach() # look on headers - add_custom_target(check_pkg_${package}_headers DEPENDS ${depends}) + add_custom_target(check_pkg_${package}_headers + DEPENDS ${check_pkg_headers_depends}) + add_custom_command( + OUTPUT ${CGAL_BINARY_DIR}/package_info/${package}/included_headers + ${CGAL_BINARY_DIR}/package_info/${package}/dependencies + DEPENDS ${check_pkg_headers_depends} + COMMENT "Compute dependencies of ${package}" + COMMAND ${CMAKE_COMMAND} + -DCGAL_PACKAGES_PREFIX=${CGAL_SOURCE_DIR} + -DOUTPUT_HEADERS_LIST=${CGAL_BINARY_DIR}/package_info/${package}/included_headers + -DOUTPUT_PACKAGES_LIST=${CGAL_BINARY_DIR}/package_info/${package}/dependencies + -P "${CGAL_MODULES_DIR}/process_dependencies.cmake" + ${check_pkg_headers_depends} + ) + add_custom_target(${package}_deps DEPENDS ${CGAL_BINARY_DIR}/package_info/${package}/dependencies) list(APPEND check_pkg_target_list check_pkg_${package}_headers) + list(APPEND packages_deps ${CGAL_BINARY_DIR}/package_info/${package}/dependencies) endif() # if the package has an include directory + if(${package}_deps) + list(REMOVE_DUPLICATES ${package}_deps) + endif() endforeach() # loop on packages add_custom_target(check_headers DEPENDS ${check_pkg_target_list}) + add_custom_target(packages_dependencies DEPENDS ${packages_deps}) + message( " \n\ + You can now check the headers with the target `check_headers`\n\ + and the package dependencies with the target `packages_dependencies`.\n\ + Results are in the `package_info/` sub-directory of the build directory:\n\ + \n\ + - package_info//dependencies\n\ + - package_info//included_headers\n\ + - package_info//check_headers/ (error messages from \ +the headers checks)\n") + message( "== Setting header checking (DONE) ==\n" ) + endif() endif( CGAL_BRANCH_BUILD ) diff --git a/Installation/cmake/modules/FindIPE.cmake b/Installation/cmake/modules/FindIPE.cmake index 2b87c5fa86d..90732a923ca 100644 --- a/Installation/cmake/modules/FindIPE.cmake +++ b/Installation/cmake/modules/FindIPE.cmake @@ -24,11 +24,29 @@ else() /usr/lib64 ) + if(IPE_INCLUDE_DIR) + file(READ "${IPE_INCLUDE_DIR}/ipebase.h" IPEBASE_H) + string(REGEX MATCH "IPELIB_VERSION[ ]*=[ ]*([67])([0-9][0-9])([0-9][0-9]);" FOUND_IPE_VERSION "${IPEBASE_H}") + if (FOUND_IPE_VERSION) + set(IPE_VERSION ${CMAKE_MATCH_1} CACHE INTERNAL "Ipe version major number") + set(IPE_MINOR_VERSION_1 ${CMAKE_MATCH_2} CACHE INTERNAL "Ipe version minor number") + set(IPE_MINOR_VERSION_2 ${CMAKE_MATCH_3} CACHE INTERNAL "Ipe version patch number") + set(IPE_FULL_VERSION "${IPE_VERSION}.${IPE_MINOR_VERSION_1}.${IPE_MINOR_VERSION_2}" CACHE INTERNAL "Ipe version x.y.z") + endif() + endif() + if(IPE_INCLUDE_DIR AND IPE_LIBRARIES) set(IPE_FOUND TRUE) endif() endif() +include(FindPackageHandleStandardArgs) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(IPE + REQUIRED_VARS IPE_INCLUDE_DIR IPE_LIBRARIES + FOUND_VAR IPE_FOUND + VERSION_VAR IPE_FULL_VERSION) + if(IPE_FOUND) message(STATUS "Found Ipe: ${IPE_INCLUDE_DIR} ${IPE_LIBRARIES}") endif() diff --git a/Installation/cmake/modules/list_of_documented_headers.cmake b/Installation/cmake/modules/list_of_documented_headers.cmake new file mode 100644 index 00000000000..260f173447c --- /dev/null +++ b/Installation/cmake/modules/list_of_documented_headers.cmake @@ -0,0 +1,905 @@ +# Generated using ../Scripts/developer_scripts/generate_list_of_documented_headers +set(list_of_documented_headers_txt [=[ +CGAL/AABB_C3T3_triangle_primitive.h +CGAL/AABB_face_graph_triangle_primitive.h +CGAL/AABB_halfedge_graph_segment_primitive.h +CGAL/AABB_intersections.h +CGAL/AABB_polyhedron_segment_primitive.h +CGAL/AABB_polyhedron_triangle_primitive.h +CGAL/AABB_primitive.h +CGAL/AABB_segment_primitive.h +CGAL/AABB_traits.h +CGAL/AABB_tree.h +CGAL/AABB_triangle_primitive.h +CGAL/Advancing_front_surface_reconstruction_cell_base_3.h +CGAL/Advancing_front_surface_reconstruction.h +CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h +CGAL/Aff_transformation_2.h +CGAL/Aff_transformation_3.h +CGAL/aff_transformation_tags.h +CGAL/Algebraic_kernel_d_1.h +CGAL/Algebraic_kernel_d_2.h +CGAL/Algebraic_kernel_for_circles_2_2.h +CGAL/Algebraic_kernel_for_spheres_2_3.h +CGAL/Algebraic_kernel_rs_gmpq_d_1.h +CGAL/Algebraic_kernel_rs_gmpz_d_1.h +CGAL/Algebraic_structure_traits.h +CGAL/algorithm.h +CGAL/all_furthest_neighbors_2.h +CGAL/Alpha_shape_2.h +CGAL/Alpha_shape_3.h +CGAL/Alpha_shape_cell_base_3.h +CGAL/Alpha_shape_face_base_2.h +CGAL/Alpha_shape_vertex_base_2.h +CGAL/Alpha_shape_vertex_base_3.h +CGAL/Apollonius_graph_2.h +CGAL/Apollonius_graph_adaptation_policies_2.h +CGAL/Apollonius_graph_adaptation_traits_2.h +CGAL/Apollonius_graph_filtered_traits_2.h +CGAL/Apollonius_graph_hierarchy_2.h +CGAL/Apollonius_graph_hierarchy_vertex_base_2.h +CGAL/Apollonius_graph_traits_2.h +CGAL/Apollonius_graph_vertex_base_2.h +CGAL/Apollonius_site_2.h +CGAL/approximated_offset_2.h +CGAL/Approximate_min_ellipsoid_d.h +CGAL/Approximate_min_ellipsoid_d_traits_2.h +CGAL/Approximate_min_ellipsoid_d_traits_3.h +CGAL/Approximate_min_ellipsoid_d_traits_d.h +CGAL/Arr_accessor.h +CGAL/Arr_algebraic_segment_traits_2.h +CGAL/Arrangement_2.h +CGAL/Arrangement_on_surface_2.h +CGAL/Arrangement_on_surface_with_history_2.h +CGAL/Arrangement_with_history_2.h +CGAL/array.h +CGAL/Arr_batched_point_location.h +CGAL/Arr_Bezier_curve_traits_2.h +CGAL/Arr_circle_segment_traits_2.h +CGAL/Arr_circular_arc_traits_2.h +CGAL/Arr_circular_line_arc_traits_2.h +CGAL/Arr_conic_traits_2.h +CGAL/Arr_consolidated_curve_data_traits_2.h +CGAL/Arr_counting_traits_2.h +CGAL/Arr_curve_data_traits_2.h +CGAL/Arr_dcel_base.h +CGAL/Arr_default_dcel.h +CGAL/Arr_default_overlay_traits.h +CGAL/Arr_directional_non_caching_segment_basic_traits_2.h +CGAL/Arr_extended_dcel.h +CGAL/Arr_face_index_map.h +CGAL/Arr_geodesic_arc_on_sphere_traits_2.h +CGAL/Arr_landmarks_point_location.h +CGAL/Arr_line_arc_traits_2.h +CGAL/Arr_linear_traits_2.h +CGAL/Arr_naive_point_location.h +CGAL/Arr_non_caching_segment_basic_traits_2.h +CGAL/Arr_non_caching_segment_traits_2.h +CGAL/Arr_observer.h +CGAL/Arr_overlay_2.h +CGAL/Arr_point_location_result.h +CGAL/Arr_polycurve_basic_traits_2.h +CGAL/Arr_polycurve_traits_2.h +CGAL/Arr_polyline_traits_2.h +CGAL/Arr_rational_function_traits_2.h +CGAL/Arr_segment_traits_2.h +CGAL/Arr_simple_point_location.h +CGAL/Arr_spherical_topology_traits_2.h +CGAL/Arr_tags.h +CGAL/Arr_tracing_traits_2.h +CGAL/Arr_trapezoid_ric_point_location.h +CGAL/Arr_vertex_index_map.h +CGAL/Arr_vertical_decomposition_2.h +CGAL/Arr_walk_along_line_point_location.h +CGAL/assertions.h +CGAL/barycenter.h +CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h +CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h +CGAL/Barycentric_coordinates_2/Mean_value_2.h +CGAL/Barycentric_coordinates_2/Segment_coordinates_2.h +CGAL/Barycentric_coordinates_2/Triangle_coordinates_2.h +CGAL/Barycentric_coordinates_2/Wachspress_2.h +CGAL/Barycentric_mapping_parameterizer_3.h +CGAL/basic.h +CGAL/Bbox_2.h +CGAL/Bbox_3.h +CGAL/bilateral_smooth_point_set.h +CGAL/Boolean_set_operations_2/Gps_default_dcel.h +CGAL/Boolean_set_operations_2.h +CGAL/boost/graph/copy_face_graph.h +CGAL/boost/graph/dijkstra_shortest_paths.h +CGAL/boost/graph/Dual.h +CGAL/boost/graph/Euler_operations.h +CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h +CGAL/boost/graph/graph_traits_Polyhedron_3.h +CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h +CGAL/boost/graph/graph_traits_Surface_mesh.h +CGAL/boost/graph/graph_traits_Triangulation_2.h +CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h +CGAL/boost/graph/helpers.h +CGAL/boost/graph/iterator.h +CGAL/boost/graph/properties_Polyhedron_3.h +CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h +CGAL/boost/graph/properties_Surface_mesh.h +CGAL/boost/graph/split_graph_into_polylines.h +CGAL/Bounded_kernel.h +CGAL/bounding_box.h +CGAL/Box_intersection_d/Box_d.h +CGAL/Box_intersection_d/Box_traits_d.h +CGAL/Box_intersection_d/Box_with_handle_d.h +CGAL/box_intersection_d.h +CGAL/Cartesian_converter.h +CGAL/Cartesian_d.h +CGAL/Cartesian.h +CGAL/Cartesian_matrix.h +CGAL/CC_safe_handle.h +CGAL/Cell_attribute.h +CGAL/Cell_attribute_with_point.h +CGAL/centroid.h +CGAL/CGAL_Ipelet_base.h +CGAL/ch_akl_toussaint.h +CGAL/ch_bykat.h +CGAL/ch_eddy.h +CGAL/ch_graham_andrew.h +CGAL/ch_jarvis.h +CGAL/ch_timing_2.h +CGAL/Circle_2.h +CGAL/Circle_3.h +CGAL/Circular_arc_2.h +CGAL/Circular_arc_3.h +CGAL/Circular_arc_point_2.h +CGAL/Circular_arc_point_3.h +CGAL/Circular_border_parameterizer_3.h +CGAL/Circular_kernel_2.h +CGAL/circulator_bases.h +CGAL/circulator.h +CGAL/Coercion_traits.h +CGAL/Combination_enumerator.h +CGAL/Combinatorial_map_constructors.h +CGAL/Combinatorial_map.h +CGAL/Combinatorial_map_min_items.h +CGAL/Combinatorial_map_operations.h +CGAL/Compact_container.h +CGAL/Compact_mesh_cell_base_3.h +CGAL/Complex_2_in_triangulation_3.h +CGAL/Complexity_tags.h +CGAL/compute_average_spacing.h +CGAL/Compute_cone_boundaries_2.h +CGAL/compute_outer_frame_margin.h +CGAL/Concurrent_compact_container.h +CGAL/config.h +CGAL/connect_holes.h +CGAL/Constrained_Delaunay_triangulation_2.h +CGAL/Constrained_triangulation_2.h +CGAL/Constrained_triangulation_face_base_2.h +CGAL/Constrained_triangulation_plus_2.h +CGAL/constructions_d.h +CGAL/Construct_theta_graph_2.h +CGAL/Construct_yao_graph_2.h +CGAL/convex_decomposition_3.h +CGAL/convex_hull_2.h +CGAL/Convex_hull_3/dual/halfspace_intersection_3.h +CGAL/convex_hull_3.h +CGAL/convex_hull_3_to_polyhedron_3.h +CGAL/convex_hull_constructive_traits_2.h +CGAL/Convex_hull_d.h +CGAL/Convex_hull_d_to_polyhedron_3.h +CGAL/Convex_hull_d_traits_3.h +CGAL/convex_hull_incremental_3.h +CGAL/convex_hull_traits_2.h +CGAL/Convex_hull_traits_3.h +CGAL/CORE_algebraic_number_traits.h +CGAL/CORE_BigFloat.h +CGAL/CORE_BigInt.h +CGAL/CORE_BigRat.h +CGAL/CORE_Expr.h +CGAL/Counting_iterator.h +CGAL/create_offset_polygons_2.h +CGAL/create_offset_polygons_from_polygon_with_holes_2.h +CGAL/create_straight_skeleton_2.h +CGAL/create_straight_skeleton_from_polygon_with_holes_2.h +CGAL/Dart.h +CGAL/Default.h +CGAL/Deformation_Eigen_closest_rotation_traits_3.h +CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h +CGAL/Delaunay_d.h +CGAL/Delaunay_mesh_criteria_2.h +CGAL/Delaunay_mesher_2.h +CGAL/Delaunay_mesh_face_base_2.h +CGAL/Delaunay_mesh_size_criteria_2.h +CGAL/Delaunay_mesh_vertex_base_2.h +CGAL/Delaunay_triangulation_2.h +CGAL/Delaunay_triangulation_3.h +CGAL/Delaunay_triangulation_adaptation_policies_2.h +CGAL/Delaunay_triangulation_adaptation_traits_2.h +CGAL/Delaunay_triangulation_cell_base_3.h +CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h +CGAL/Delaunay_triangulation.h +CGAL/Diagonalize_traits.h +CGAL/Dimension.h +CGAL/Direction_2.h +CGAL/Direction_3.h +CGAL/Discrete_authalic_parameterizer_3.h +CGAL/Discrete_conformal_map_parameterizer_3.h +CGAL/double.h +CGAL/Dynamic_matrix.h +CGAL/edge_aware_upsample_point_set.h +CGAL/Eigen_diagonalize_traits.h +CGAL/Eigen_matrix.h +CGAL/Eigen_solver_traits.h +CGAL/Eigen_svd.h +CGAL/Eigen_vector.h +CGAL/envelope_2.h +CGAL/envelope_3.h +CGAL/Envelope_diagram_1.h +CGAL/Env_plane_traits_3.h +CGAL/Env_sphere_traits_3.h +CGAL/Env_surface_data_traits_3.h +CGAL/Env_triangle_traits_3.h +CGAL/Epick_d.h +CGAL/Euclidean_distance.h +CGAL/Euclidean_distance_sphere_point.h +CGAL/Euler_integrator_2.h +CGAL/Exact_circular_kernel_2.h +CGAL/Exact_integer.h +CGAL/Exact_predicates_exact_constructions_kernel.h +CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h +CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h +CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h +CGAL/Exact_predicates_inexact_constructions_kernel.h +CGAL/Exact_rational.h +CGAL/Exact_spherical_kernel_3.h +CGAL/Exponent_vector.h +CGAL/Extended_cartesian.h +CGAL/Extended_homogeneous.h +CGAL/extract_mean_curvature_flow_skeleton.h +CGAL/extremal_polygon_2.h +CGAL/Extremal_polygon_traits_2.h +CGAL/exude_mesh_3.h +CGAL/Filtered_extended_homogeneous.h +CGAL/Filtered_kernel.h +CGAL/Filtered_predicate.h +CGAL/Fixed_alpha_shape_3.h +CGAL/Fixed_alpha_shape_cell_base_3.h +CGAL/Fixed_alpha_shape_vertex_base_3.h +CGAL/Fixed_border_parameterizer_3.h +CGAL/Fourtuple.h +CGAL/FPU.h +CGAL/Fraction_traits.h +CGAL/function_objects.h +CGAL/Fuzzy_iso_box.h +CGAL/Fuzzy_sphere.h +CGAL/General_polygon_2.h +CGAL/General_polygon_set_2.h +CGAL/General_polygon_with_holes_2.h +CGAL/global_functions_circular_kernel_2.h +CGAL/global_functions_circular_kernel_3.h +CGAL/global_functions_spherical_kernel_3.h +CGAL/Gmpfi.h +CGAL/Gmpfr.h +CGAL/Gmpq.h +CGAL/gmpxx.h +CGAL/Gmpzf.h +CGAL/Gmpz.h +CGAL/gnuplot_output_2.h +CGAL/Gps_circle_segment_traits_2.h +CGAL/Gps_segment_traits_2.h +CGAL/Gps_traits_2.h +CGAL/grabbers.h +CGAL/graph_traits_Arrangement_2.h +CGAL/graph_traits_Dual_Arrangement_2.h +CGAL/Gray_image_mesh_domain_3.h +CGAL/Gray_level_image_3.h +CGAL/grid_simplify_point_set.h +CGAL/HalfedgeDS_bases.h +CGAL/HalfedgeDS_const_decorator.h +CGAL/HalfedgeDS_decorator.h +CGAL/HalfedgeDS_default.h +CGAL/HalfedgeDS_face_base.h +CGAL/HalfedgeDS_face_max_base_with_id.h +CGAL/HalfedgeDS_face_min_base.h +CGAL/HalfedgeDS_halfedge_base.h +CGAL/HalfedgeDS_halfedge_max_base_with_id.h +CGAL/HalfedgeDS_halfedge_min_base.h +CGAL/HalfedgeDS_items_2.h +CGAL/HalfedgeDS_items_decorator.h +CGAL/HalfedgeDS_list.h +CGAL/HalfedgeDS_min_items.h +CGAL/HalfedgeDS_vector.h +CGAL/HalfedgeDS_vertex_base.h +CGAL/HalfedgeDS_vertex_max_base_with_id.h +CGAL/HalfedgeDS_vertex_min_base.h +CGAL/Handle_hash_function.h +CGAL/hierarchy_simplify_point_set.h +CGAL/Hilbert_policy_tags.h +CGAL/Hilbert_sort_2.h +CGAL/Hilbert_sort_3.h +CGAL/Hilbert_sort_d.h +CGAL/hilbert_sort.h +CGAL/Hilbert_sort_on_sphere_3.h +CGAL/hilbert_sort_on_sphere.h +CGAL/Homogeneous_converter.h +CGAL/Homogeneous_d.h +CGAL/Homogeneous.h +CGAL/Identity_policy_2.h +CGAL/Image_3.h +CGAL/ImageIO.h +CGAL/Implicit_mesh_domain_3.h +CGAL/Implicit_surface_3.h +CGAL/Implicit_to_labeling_function_wrapper.h +CGAL/import_from_triangulation_2.h +CGAL/import_from_triangulation_3.h +CGAL/Incremental_neighbor_search.h +CGAL/In_place_list.h +CGAL/internal/Combination_enumerator.h +CGAL/internal/Exact_type_selector.h +CGAL/internal/Polyhedron_plane_clipping_3.h +CGAL/interpolation_functions.h +CGAL/Interpolation_gradient_fitting_traits_2.h +CGAL/Interpolation_traits_2.h +CGAL/intersection_of_Polyhedra_3.h +CGAL/intersection_of_Polyhedra_3_refinement_visitor.h +CGAL/intersections_d.h +CGAL/intersections.h +CGAL/Interval_nt.h +CGAL/Interval_skip_list.h +CGAL/Interval_skip_list_interval.h +CGAL/IO/Arr_iostream.h +CGAL/IO/Arr_text_formatter.h +CGAL/IO/Arr_with_history_iostream.h +CGAL/IO/Arr_with_history_text_formatter.h +CGAL/IO/Color.h +CGAL/IO/Complex_2_in_triangulation_3_file_writer.h +CGAL/IO/Dxf_bsop_reader.h +CGAL/IO/File_medit.h +CGAL/IO/File_scanner_OFF.h +CGAL/IO/File_writer_inventor.h +CGAL/IO/File_writer_OFF.h +CGAL/IO/File_writer_VRML_2.h +CGAL/IO/File_writer_wavefront.h +CGAL/IO/generic_copy_OFF.h +CGAL/IO/Geomview_stream.h +CGAL/IO/Inventor_ostream.h +CGAL/IO/io.h +CGAL/IO/Istream_iterator.h +CGAL/IO/Nef_polyhedron_iostream_3.h +CGAL/IO/OFF_reader.h +CGAL/IO/Ostream_iterator.h +CGAL/IO/output_surface_facets_to_polyhedron.h +CGAL/IO/Polyhedron_geomview_ostream.h +CGAL/IO/Polyhedron_inventor_ostream.h +CGAL/IO/Polyhedron_iostream.h +CGAL/IO/Polyhedron_VRML_1_ostream.h +CGAL/IO/Polyhedron_VRML_2_ostream.h +CGAL/IO/read_off_points.h +CGAL/IO/read_ply_points.h +CGAL/IO/read_xyz_points.h +CGAL/IO/Triangulation_geomview_ostream_2.h +CGAL/IO/Triangulation_geomview_ostream_3.h +CGAL/IO/Verbose_ostream.h +CGAL/IO/VRML_1_ostream.h +CGAL/IO/VRML_2_ostream.h +CGAL/IO/write_xyz_points.h +CGAL/Iso_cuboid_3.h +CGAL/Iso_rectangle_2.h +CGAL/iterator.h +CGAL/Iterator_range.h +CGAL/jet_estimate_normals.h +CGAL/jet_smooth_point_set.h +CGAL/Join_input_iterator.h +CGAL/Kd_tree.h +CGAL/Kd_tree_node.h +CGAL/Kd_tree_rectangle.h +CGAL/Kernel_d/Aff_transformation_d.h +CGAL/Kernel_d/Direction_d.h +CGAL/Kernel_d/Hyperplane_d.h +CGAL/Kernel_d/Iso_box_d.h +CGAL/Kernel_d/Line_d.h +CGAL/Kernel_d/Point_d.h +CGAL/Kernel_d/Ray_d.h +CGAL/Kernel_d/Segment_d.h +CGAL/Kernel_d/Sphere_d.h +CGAL/Kernel_d/Vector_d.h +CGAL/Kernel/global_functions.h +CGAL/Kernel_traits.h +CGAL/Kinetic/Active_objects_listener_helper.h +CGAL/Kinetic/Active_objects_vector.h +CGAL/Kinetic/basic.h +CGAL/Kinetic/Cartesian.h +CGAL/Kinetic/Certificate_generator.h +CGAL/Kinetic/Default_instantaneous_kernel.h +CGAL/Kinetic/Default_simulator.h +CGAL/Kinetic/Delaunay_triangulation_2.h +CGAL/Kinetic/Delaunay_triangulation_3.h +CGAL/Kinetic/Delaunay_triangulation_cell_base_3.h +CGAL/Kinetic/Delaunay_triangulation_event_log_visitor_2.h +CGAL/Kinetic/Delaunay_triangulation_event_log_visitor_3.h +CGAL/Kinetic/Delaunay_triangulation_face_base_2.h +CGAL/Kinetic/Delaunay_triangulation_recent_edges_visitor_2.h +CGAL/Kinetic/Delaunay_triangulation_visitor_base_2.h +CGAL/Kinetic/Delaunay_triangulation_visitor_base_3.h +CGAL/Kinetic/Enclosing_box_2.h +CGAL/Kinetic/Enclosing_box_3.h +CGAL/Kinetic/Erase_event.h +CGAL/Kinetic/Event_base.h +CGAL/Kinetic/Exact_simulation_traits.h +CGAL/Kinetic/Handle_degeneracy_function_kernel.h +CGAL/Kinetic/Heap_pointer_event_queue.h +CGAL/Kinetic/Inexact_simulation_traits.h +CGAL/Kinetic/Insert_event.h +CGAL/Kinetic/Listener.h +CGAL/Kinetic/listeners.h +CGAL/Kinetic/Multi_listener.h +CGAL/Kinetic/Ref_counted.h +CGAL/Kinetic/Regular_triangulation_3.h +CGAL/Kinetic/Regular_triangulation_cell_base_3.h +CGAL/Kinetic/Regular_triangulation_event_log_visitor_3.h +CGAL/Kinetic/Regular_triangulation_exact_simulation_traits.h +CGAL/Kinetic/Regular_triangulation_instantaneous_kernel.h +CGAL/Kinetic/Regular_triangulation_vertex_base_3.h +CGAL/Kinetic/Regular_triangulation_visitor_base_3.h +CGAL/Kinetic/Simulator_kds_listener.h +CGAL/Kinetic/Simulator_objects_listener.h +CGAL/Kinetic/Sort_event_log_visitor.h +CGAL/Kinetic/Sort.h +CGAL/Kinetic/Sort_visitor_base.h +CGAL/Kinetic/Two_list_pointer_event_queue.h +CGAL/K_neighbor_search.h +CGAL/Labeled_image_mesh_domain_3.h +CGAL/Labeled_mesh_domain_3.h +CGAL/Largest_empty_iso_rectangle_2.h +CGAL/Lazy_exact_nt.h +CGAL/leda_bigfloat.h +CGAL/leda_integer.h +CGAL/leda_rational.h +CGAL/leda_real.h +CGAL/Level_interval.h +CGAL/Line_2.h +CGAL/Line_3.h +CGAL/Linear_algebraCd.h +CGAL/Linear_algebraHd.h +CGAL/Line_arc_2.h +CGAL/Line_arc_3.h +CGAL/Linear_cell_complex_constructors.h +CGAL/Linear_cell_complex.h +CGAL/Linear_cell_complex_min_items.h +CGAL/Linear_cell_complex_operations.h +CGAL/Linear_cell_complex_traits.h +CGAL/linear_least_squares_fitting_2.h +CGAL/linear_least_squares_fitting_3.h +CGAL/lloyd_optimize_mesh_2.h +CGAL/Location_policy.h +CGAL/LSCM_parameterizer_3.h +CGAL/make_mesh_3.h +CGAL/make_piecewise_smooth_surface_mesh.h +CGAL/make_skin_surface_mesh_3.h +CGAL/make_surface_mesh.h +CGAL/Manhattan_distance_iso_box_point.h +CGAL/Mean_curvature_flow_skeletonization.h +CGAL/Mean_value_coordinates_parameterizer_3.h +CGAL/memory.h +CGAL/Memory_sizer.h +CGAL/Mesh_3/dihedral_angle_3.h +CGAL/Mesh_3/Dump_c3t3.h +CGAL/Mesh_3/implicit_to_labeled_function_wrapper.h +CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h +CGAL/Mesh_3/Labeled_mesh_domain_3.h +CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h +CGAL/Mesh_3/polylines_to_protect.h +CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h +CGAL/Mesh_3/squared_distance_Point_3_Triangle_3.h +CGAL/Mesh_cell_base_3.h +CGAL/Mesh_cell_criteria_3.h +CGAL/Mesh_complex_3_in_triangulation_3.h +CGAL/Mesh_constant_domain_field_3.h +CGAL/Mesh_criteria_3.h +CGAL/Mesh_domain_with_polyline_features_3.h +CGAL/Mesh_edge_criteria_3.h +CGAL/Mesh_facet_criteria_3.h +CGAL/Mesh_polyhedron_3.h +CGAL/mesh_segmentation.h +CGAL/mesh_skin_surface_3.h +CGAL/Mesh_triangulation_3.h +CGAL/mesh_union_of_balls_3.h +CGAL/Mesh_vertex_base_3.h +CGAL/Min_annulus_d.h +CGAL/Min_circle_2.h +CGAL/Min_circle_2_traits_2.h +CGAL/Min_ellipse_2.h +CGAL/Min_ellipse_2_traits_2.h +CGAL/minkowski_sum_2.h +CGAL/minkowski_sum_3.h +CGAL/min_quadrilateral_2.h +CGAL/Min_quadrilateral_traits_2.h +CGAL/Min_sphere_annulus_d_traits_2.h +CGAL/Min_sphere_annulus_d_traits_3.h +CGAL/Min_sphere_annulus_d_traits_d.h +CGAL/Min_sphere_d.h +CGAL/Min_sphere_of_points_d_traits_2.h +CGAL/Min_sphere_of_points_d_traits_3.h +CGAL/Min_sphere_of_points_d_traits_d.h +CGAL/Min_sphere_of_spheres_d.h +CGAL/Min_sphere_of_spheres_d_traits_2.h +CGAL/Min_sphere_of_spheres_d_traits_3.h +CGAL/Min_sphere_of_spheres_d_traits_d.h +CGAL/Modifier_base.h +CGAL/Modular_traits.h +CGAL/Monge_via_jet_fitting.h +CGAL/MP_Float.h +CGAL/Mpzf.h +CGAL/mst_orient_normals.h +CGAL/Multiscale_sort.h +CGAL/Multiset.h +CGAL/natural_neighbor_coordinates_2.h +CGAL/natural_neighbor_coordinates_3.h +CGAL/Nef_3/Polygon_constructor.h +CGAL/Nef_3/SNC_indexed_items.h +CGAL/Nef_nary_union_3.h +CGAL/Nef_polyhedron_2.h +CGAL/Nef_polyhedron_3.h +CGAL/Nef_polyhedron_S2.h +CGAL/Nef_S2/create_random_Nef_S2.h +CGAL/N_step_adaptor.h +CGAL/NT_converter.h +CGAL/Number_type_checker.h +CGAL/number_utils.h +CGAL/Object.h +CGAL/offset_polygon_2.h +CGAL/OFF_to_nef_3.h +CGAL/OpenNL/linear_solver.h +CGAL/Optimal_transportation_reconstruction_2.h +CGAL/optimisation\_assertions.h +CGAL/Origin.h +CGAL/Orthogonal_incremental_neighbor_search.h +CGAL/Orthogonal_k_neighbor_search.h +CGAL/Parameterization_mesh_feature_extractor.h +CGAL/Parameterization_mesh_patch_3.h +CGAL/Parameterization_polyhedron_adaptor_3.h +CGAL/parameterize.h +CGAL/Parameterizer_traits_3.h +CGAL/partition_2.h +CGAL/Partition_is_valid_traits_2.h +CGAL/Partition_traits_2.h +CGAL/pca_estimate_normals.h +CGAL/Periodic_2_Delaunay_triangulation_2.h +CGAL/Periodic_2_Delaunay_triangulation_traits_2.h +CGAL/Periodic_2_offset_2.h +CGAL/Periodic_2_triangulation_2.h +CGAL/Periodic_2_triangulation_face_base_2.h +CGAL/Periodic_2_triangulation_filtered_traits_2.h +CGAL/Periodic_2_triangulation_hierarchy_2.h +CGAL/Periodic_2_triangulation_hierarchy_vertex_base_2.h +CGAL/Periodic_2_triangulation_traits_2.h +CGAL/Periodic_2_triangulation_vertex_base_2.h +CGAL/Periodic_3_Delaunay_triangulation_3.h +CGAL/Periodic_3_Delaunay_triangulation_traits_3.h +CGAL/Periodic_3_offset_3.h +CGAL/Periodic_3_triangulation_3.h +CGAL/Periodic_3_triangulation_ds_cell_base_3.h +CGAL/Periodic_3_triangulation_ds_vertex_base_3.h +CGAL/Periodic_3_triangulation_filtered_traits_3.h +CGAL/Periodic_3_triangulation_hierarchy_3.h +CGAL/Periodic_3_triangulation_traits_3.h +CGAL/perturb_mesh_3.h +CGAL/Piecewise_smooth_surface_mesh_default_edges_criteria_3.h +CGAL/Plane_3.h +CGAL/Plane_separator.h +CGAL/Point_2.h +CGAL/Point_3.h +CGAL/Point_container.h +CGAL/point_generators_2.h +CGAL/point_generators_3.h +CGAL/point_generators_d.h +CGAL/Point_set_2.h +CGAL/Point_with_normal_3.h +CGAL/Poisson_implicit_surface_3.h +CGAL/Poisson_reconstruction_function.h +CGAL/Polygon_2_algorithms.h +CGAL/Polygon_2.h +CGAL/Polygon_convex_decomposition_2.h +CGAL/polygon_function_objects.h +CGAL/Polygon_mesh_processing/border.h +CGAL/Polygon_mesh_processing/compute_normal.h +CGAL/Polygon_mesh_processing/connected_components.h +CGAL/Polygon_mesh_processing/fair.h +CGAL/Polygon_mesh_processing/orientation.h +CGAL/Polygon_mesh_processing/orient_polygon_soup.h +CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h +CGAL/Polygon_mesh_processing/refine.h +CGAL/Polygon_mesh_processing/remesh.h +CGAL/Polygon_mesh_processing/repair.h +CGAL/Polygon_mesh_processing/self_intersections.h +CGAL/Polygon_mesh_processing/stitch_borders.h +CGAL/Polygon_mesh_processing/triangulate_faces.h +CGAL/Polygon_mesh_processing/triangulate_hole.h +CGAL/Polygon_mesh_slicer.h +CGAL/Polygon_nop_decomposition_2.h +CGAL/Polygon_offset_builder_2.h +CGAL/Polygon_offset_builder_traits_2.h +CGAL/Polygon_set_2.h +CGAL/Polygon_triangulation_decomposition_2.h +CGAL/Polygon_vertical_decomposition_2.h +CGAL/Polygon_with_holes_2.h +CGAL/Polyhedral_mesh_domain_3.h +CGAL/Polyhedral_mesh_domain_with_features_3.h +CGAL/Polyhedral_surface_3.h +CGAL/Polyhedron_3.h +CGAL/polyhedron_cut_plane_3.h +CGAL/Polyhedron_incremental_builder_3.h +CGAL/Polyhedron_items_3.h +CGAL/Polyhedron_items_with_id_3.h +CGAL/Polyhedron_min_items_3.h +CGAL/Polyhedron_traits_3.h +CGAL/Polyhedron_traits_with_normals_3.h +CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h +CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h +CGAL/Polyline_simplification_2/simplify.h +CGAL/Polyline_simplification_2/Squared_distance_cost.h +CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h +CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h +CGAL/Polyline_simplification_2/Stop_below_count_threshold.h +CGAL/Polyline_simplification_2/Vertex_base_2.h +CGAL/Polynomial.h +CGAL/Polynomial/internal/GSL_numeric_solver.h +CGAL/Polynomial/internal/numeric_solvers.h +CGAL/Polynomial/Kernel.h +CGAL/Polynomial/Numeric_root_stack.h +CGAL/Polynomial/polynomial_converters.h +CGAL/Polynomial/Polynomial.h +CGAL/Polynomial/Root_stack_default_traits.h +CGAL/Polynomials_1_2.h +CGAL/Polynomials_1_3.h +CGAL/Polynomials_2_2.h +CGAL/Polynomials_2_3.h +CGAL/Polynomials_for_line_3.h +CGAL/Polynomial/Sturm_root_stack.h +CGAL/Polynomial/Sturm_root_stack_traits.h +CGAL/Polynomial_traits_d.h +CGAL/Polynomial_type_generator.h +CGAL/Polytope_distance_d.h +CGAL/Polytope_distance_d_traits_2.h +CGAL/Polytope_distance_d_traits_3.h +CGAL/Polytope_distance_d_traits_d.h +CGAL/Profile_counter.h +CGAL/Profile_timer.h +CGAL/Projection_traits_xy_3.h +CGAL/Projection_traits_xz_3.h +CGAL/Projection_traits_yz_3.h +CGAL/property_map.h +CGAL/QP_functions.h +CGAL/QP_models.h +CGAL/QP_options.h +CGAL/QP_solution.h +CGAL/Qt/CircularArcGraphicsItem.h +CGAL/Qt/ConstrainedTriangulationGraphicsItem.h +CGAL/Qt/Converter.h +CGAL/Qt/GraphicsItem.h +CGAL/Qt/GraphicsViewCircleInput.h +CGAL/Qt/GraphicsViewCircularArcInput.h +CGAL/Qt/GraphicsViewInput.h +CGAL/Qt/GraphicsViewIsoRectangleInput.h +CGAL/Qt/GraphicsViewNavigation.h +CGAL/Qt/GraphicsViewPolylineInput.h +CGAL/Qt/PainterOstream.h +CGAL/Qt/TriangulationGraphicsItem.h +CGAL/Qt/VoronoiGraphicsItem.h +CGAL/Quotient.h +CGAL/random_convex_hull_in_disc_2.h +CGAL/random_convex_set_2.h +CGAL/Random_convex_set_traits_2.h +CGAL/Random.h +CGAL/random_polygon_2.h +CGAL/random_selection.h +CGAL/random_simplify_point_set.h +CGAL/Range_segment_tree_traits.h +CGAL/Range_tree_d.h +CGAL/Range_tree_k.h +CGAL/Rational_traits.h +CGAL/Ray_2.h +CGAL/Ray_3.h +CGAL/read_vtk_image_data.h +CGAL/Real_embeddable_traits.h +CGAL/Real_timer.h +CGAL/rectangular_p_center_2.h +CGAL/refine_mesh_3.h +CGAL/Regular_grid_2.h +CGAL/regularize_planes.h +CGAL/regular_neighbor_coordinates_2.h +CGAL/Regular_triangulation_2.h +CGAL/Regular_triangulation_3.h +CGAL/Regular_triangulation_adaptation_policies_2.h +CGAL/Regular_triangulation_adaptation_traits_2.h +CGAL/Regular_triangulation_cell_base_3.h +CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h +CGAL/Regular_triangulation_euclidean_traits_2.h +CGAL/Regular_triangulation_euclidean_traits_3.h +CGAL/Regular_triangulation_face_base_2.h +CGAL/Regular_triangulation_filtered_traits_2.h +CGAL/Regular_triangulation_vertex_base_2.h +CGAL/remove_outliers.h +CGAL/Residue.h +CGAL/result_of.h +CGAL/Ridges.h +CGAL/Root_for_circles_2_2.h +CGAL/Root_for_spheres_2_3.h +CGAL/Root_of_traits.h +CGAL/Rotational_sweep_visibility_2.h +CGAL/Runge_kutta_integrator_2.h +CGAL/Scale_space_surface_reconstruction_3.h +CGAL/Search_traits_2.h +CGAL/Search_traits_3.h +CGAL/Search_traits_adapter.h +CGAL/Search_traits_d.h +CGAL/Search_traits.h +CGAL/Segment_2.h +CGAL/Segment_3.h +CGAL/Segment_Delaunay_graph_2.h +CGAL/Segment_Delaunay_graph_adaptation_policies_2.h +CGAL/Segment_Delaunay_graph_adaptation_traits_2.h +CGAL/Segment_Delaunay_graph_filtered_traits_2.h +CGAL/Segment_Delaunay_graph_hierarchy_2.h +CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h +CGAL/Segment_Delaunay_graph_Linf_2.h +CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h +CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h +CGAL/Segment_Delaunay_graph_Linf_traits_2.h +CGAL/Segment_Delaunay_graph_site_2.h +CGAL/Segment_Delaunay_graph_storage_site_2.h +CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h +CGAL/Segment_Delaunay_graph_traits_2.h +CGAL/Segment_Delaunay_graph_vertex_base_2.h +CGAL/Segment_tree_d.h +CGAL/Segment_tree_k.h +CGAL/Shape_detection_3/Cone.h +CGAL/Shape_detection_3/Cylinder.h +CGAL/Shape_detection_3/Efficient_RANSAC.h +CGAL/Shape_detection_3/Efficient_RANSAC_traits.h +CGAL/Shape_detection_3.h +CGAL/Shape_detection_3/Plane.h +CGAL/Shape_detection_3/Shape_base.h +CGAL/Shape_detection_3/Sphere.h +CGAL/Shape_detection_3/Torus.h +CGAL/sibson_gradient_fitting.h +CGAL/Side_of_triangle_mesh.h +CGAL/Simple_cartesian.h +CGAL/Simple_homogeneous.h +CGAL/Simple_polygon_visibility_2.h +CGAL/Sixtuple.h +CGAL/Skin_surface_3.h +CGAL/Skin_surface_polyhedral_items_3.h +CGAL/Skin_surface_traits_3.h +CGAL/Small_side_angle_bisector_decomposition_2.h +CGAL/Snap_rounding_2.h +CGAL/Snap_rounding_traits_2.h +CGAL/sorted_matrix_search.h +CGAL/Sorted_matrix_search_traits_adaptor.h +CGAL/Spatial_lock_grid_3.h +CGAL/spatial_sort.h +CGAL/spatial_sort_on_sphere.h +CGAL/Spatial_sort_traits_adapter_2.h +CGAL/Spatial_sort_traits_adapter_3.h +CGAL/Spatial_sort_traits_adapter_d.h +CGAL/Sphere_3.h +CGAL/Spherical_kernel_3.h +CGAL/Splitters.h +CGAL/Sqrt_extension.h +CGAL/Square_border_parameterizer_3.h +CGAL/squared_distance_2.h +CGAL/squared_distance_3.h +CGAL/Straight_skeleton_2.h +CGAL/Straight_skeleton_builder_2.h +CGAL/Straight_skeleton_builder_traits_2.h +CGAL/Straight_skeleton_converter_2.h +CGAL/Straight_skeleton_face_base_2.h +CGAL/Straight_skeleton_halfedge_base_2.h +CGAL/Straight_skeleton_vertex_base_2.h +CGAL/Stream_lines_2.h +CGAL/subdivide_skin_surface_mesh_3.h +CGAL/subdivide_union_of_balls_mesh_3.h +CGAL/Subdivision_mask_3.h +CGAL/Subdivision_method_3.h +CGAL/Surface_mesh_cell_base_3.h +CGAL/Surface_mesh_complex_2_in_triangulation_3.h +CGAL/Surface_mesh_default_criteria_3.h +CGAL/Surface_mesh_default_triangulation_3.h +CGAL/Surface_mesh_deformation.h +CGAL/Surface_mesh.h +CGAL/Surface_mesh_shortest_path.h +CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h +CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h +CGAL/Surface_mesh_simplification/edge_collapse.h +CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h +CGAL/Surface_mesh_simplification/HalfedgeGraph_Polyhedron_3.h +CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h +CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h +CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h +CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h +CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h +CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h +CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h +CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_and_length.h +CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h +CGAL/Surface_mesh/Surface_mesh.h +CGAL/Surface_mesh_traits_generator_3.h +CGAL/Surface_mesh_vertex_base_3.h +CGAL/surface_neighbor_coordinates_3.h +CGAL/Sweep_line_2_algorithms.h +CGAL/tags.h +CGAL/Taucs_solver_traits.h +CGAL/Tetrahedron_3.h +CGAL/Three/Polyhedron_demo_io_plugin_interface.h +CGAL/Three/Polyhedron_demo_plugin_helper.h +CGAL/Three/Polyhedron_demo_plugin_interface.h +CGAL/Three/Scene_group_item.h +CGAL/Three/Scene_interface.h +CGAL/Three/Scene_item.h +CGAL/Three/Scene_print_interface_item.h +CGAL/Three/TextRenderer.h +CGAL/Threetuple.h +CGAL/Three/Viewer_interface.h +CGAL/Timer.h +CGAL/trace.h +CGAL/Tree_base.h +CGAL/Tree_traits.h +CGAL/Triangle_2.h +CGAL/Triangle_3.h +CGAL/Triangle_accessor_3.h +CGAL/Triangular_expansion_visibility_2.h +CGAL/Triangular_field_2.h +CGAL/Triangulation_2_filtered_projection_traits_3.h +CGAL/Triangulation_2.h +CGAL/Triangulation_3.h +CGAL/Triangulation_cell_base_3.h +CGAL/Triangulation_cell_base_with_circumcenter_3.h +CGAL/Triangulation_cell_base_with_info_3.h +CGAL/Triangulation_conformer_2.h +CGAL/Triangulation_data_structure_2.h +CGAL/Triangulation_data_structure_3.h +CGAL/Triangulation_data_structure.h +CGAL/Triangulation_ds_cell_base_3.h +CGAL/Triangulation_ds_face_base_2.h +CGAL/Triangulation_ds_full_cell.h +CGAL/Triangulation_ds_vertex_base_2.h +CGAL/Triangulation_ds_vertex_base_3.h +CGAL/Triangulation_ds_vertex.h +CGAL/Triangulation_euclidean_traits_2.h +CGAL/Triangulation_face_base_2.h +CGAL/Triangulation_face_base_with_info_2.h +CGAL/Triangulation_face.h +CGAL/Triangulation_full_cell.h +CGAL/Triangulation.h +CGAL/Triangulation_hierarchy_2.h +CGAL/Triangulation_simplex_3.h +CGAL/Triangulation_utils_3.h +CGAL/Triangulation_vertex_base_2.h +CGAL/Triangulation_vertex_base_3.h +CGAL/Triangulation_vertex_base_with_id_2.h +CGAL/Triangulation_vertex_base_with_info_2.h +CGAL/Triangulation_vertex_base_with_info_3.h +CGAL/Triangulation_vertex.h +CGAL/tuple.h +CGAL/Twotuple.h +CGAL/Two_vertices_parameterizer_3.h +CGAL/Umbilics.h +CGAL/Uncertain.h +CGAL/Union_find.h +CGAL/Union_of_balls_3.h +CGAL/Unique_hash_map.h +CGAL/use.h +CGAL/utility.h +CGAL/utils_classes.h +CGAL/value_type_traits.h +CGAL/vcm_estimate_edges.h +CGAL/vcm_estimate_normals.h +CGAL/Vector_2.h +CGAL/Vector_3.h +CGAL/Voronoi_diagram_2.h +CGAL/Voronoi_intersection_2_traits_3.h +CGAL/Weighted_alpha_shape_euclidean_traits_2.h +CGAL/Weighted_Minkowski_distance.h +CGAL/Weighted_point.h +CGAL/Width_3.h +CGAL/Width_default_traits_3.h +CGAL/wlop_simplify_and_regularize_point_set.h +]=]) +separate_arguments(list_of_documented_headers UNIX_COMMAND ${list_of_documented_headers_txt}) diff --git a/Installation/cmake/modules/list_of_whitelisted_headers.cmake b/Installation/cmake/modules/list_of_whitelisted_headers.cmake new file mode 100644 index 00000000000..96534c32aab --- /dev/null +++ b/Installation/cmake/modules/list_of_whitelisted_headers.cmake @@ -0,0 +1,5 @@ +set(list_of_whitelisted_headers_txt [=[ +CGAL/Linear_cell_complex_constructors.h +]=]) + +separate_arguments(list_of_whitelisted_headers UNIX_COMMAND ${list_of_whitelisted_headers_txt}) diff --git a/Installation/cmake/modules/process_dependencies.cmake b/Installation/cmake/modules/process_dependencies.cmake new file mode 100644 index 00000000000..c6d7b414bdc --- /dev/null +++ b/Installation/cmake/modules/process_dependencies.cmake @@ -0,0 +1,43 @@ +foreach(n RANGE 5 ${CMAKE_ARGC}) + list(APPEND INPUT_FILES ${CMAKE_ARGV${n}}) +endforeach() + +if(NOT CGAL_PACKAGES_PREFIX) + message(FATAL_ERROR + "The variable `CGAL_PACKAGES_PREFIX` should be defined to the prefix of CGAL packages!") +endif() + +#message("regexp: \\. ${CGAL_PACKAGES_PREFIX}/[^/]*/include/CGAL/.*h") +foreach(INPUT_FILE ${INPUT_FILES}) + file(STRINGS ${INPUT_FILE} input) + #message("input is : ${input}") + foreach(line ${input}) + string(REGEX MATCHALL "^\\.* ${CGAL_PACKAGES_PREFIX}/[A-Za-z0-9_.-]*/include/CGAL/[A-Za-z0-9_/.-]*\\.h" header ${line}) + string(REGEX REPLACE "\\.* ${CGAL_PACKAGES_PREFIX}/" "" header "${header}") + string(REGEX REPLACE "/.*" "" pkg "${header}") + if(header) + list(APPEND headers ${header}) + endif() + if(pkg) + list(APPEND pkgs ${pkg}) + endif() + endforeach() +endforeach() +if(headers) + list(REMOVE_DUPLICATES headers) +endif() +if(pkgs) + list(REMOVE_DUPLICATES pkgs) +endif() +if(OUTPUT_HEADERS_LIST) + file(WRITE ${OUTPUT_HEADERS_LIST} "") + foreach(header ${headers}) + file(APPEND ${OUTPUT_HEADERS_LIST} "${header}\n") + endforeach() +endif() +if(OUTPUT_PACKAGES_LIST) + file(WRITE ${OUTPUT_PACKAGES_LIST} "") + foreach(pkg ${pkgs}) + file(APPEND ${OUTPUT_PACKAGES_LIST} "${pkg}\n") + endforeach() +endif() diff --git a/Installation/cmake/modules/run_cmd_redirection_cerr.cmake b/Installation/cmake/modules/run_cmd_redirection_cerr.cmake new file mode 100644 index 00000000000..baaa2971452 --- /dev/null +++ b/Installation/cmake/modules/run_cmd_redirection_cerr.cmake @@ -0,0 +1,37 @@ +if(NOT DEFINED CMD) +# message("CMAKE_ARGC: ${CMAKE_ARGC}") +# message("CMAKE_ARGV0: ${CMAKE_ARGV0}") +# message("CMAKE_ARGV1: ${CMAKE_ARGV1}") +# message("CMAKE_ARGV2: ${CMAKE_ARGV2}") +# message("CMAKE_ARGV3: ${CMAKE_ARGV3}") +# message("CMAKE_ARGV4: ${CMAKE_ARGV4}") + foreach(n RANGE 4 ${CMAKE_ARGC}) + list(APPEND CMD ${CMAKE_ARGV${n}}) + endforeach() +endif() +#message("run_cmd_redirection, the CMD list is: ${CMD}") +if(NOT CERR) + message(FATAL_ERROR + "The variable `CERR` should be defined to the output error file!") +endif() + +execute_process( + COMMAND ${CMD} + ERROR_VARIABLE err + OUTPUT_VARIABLE output + RESULT_VARIABLE error_result) + +file(WRITE ${CERR} "${err}") + +if(error_result) + string(REPLACE ";" " " CMD_STR "${CMD}") + message(SEND_ERROR +"The command + ${CMD_STR} > ${CERR} +ended with the error code ${error_result}, +the following output: +${output} +and the following error output: +${err}" +) +endif() diff --git a/Interpolation/include/CGAL/Voronoi_intersection_2_traits_3.h b/Interpolation/include/CGAL/Voronoi_intersection_2_traits_3.h index 9597b3ff25a..67a5fb10885 100644 --- a/Interpolation/include/CGAL/Voronoi_intersection_2_traits_3.h +++ b/Interpolation/include/CGAL/Voronoi_intersection_2_traits_3.h @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include #include diff --git a/Interpolation/include/CGAL/natural_neighbor_coordinates_3.h b/Interpolation/include/CGAL/natural_neighbor_coordinates_3.h index d05773b6aca..73c26404929 100644 --- a/Interpolation/include/CGAL/natural_neighbor_coordinates_3.h +++ b/Interpolation/include/CGAL/natural_neighbor_coordinates_3.h @@ -27,6 +27,7 @@ #include #include #include +#include #include //TO DO : to remove diff --git a/Intersections_2/include/CGAL/Intersection_traits.h b/Intersections_2/include/CGAL/Intersection_traits.h index 5c7b74ea74f..f22672a88ea 100644 --- a/Intersections_2/include/CGAL/Intersection_traits.h +++ b/Intersections_2/include/CGAL/Intersection_traits.h @@ -25,6 +25,7 @@ #include #include #include +#include #include #include diff --git a/Intersections_3/include/CGAL/Intersection_traits_3.h b/Intersections_3/include/CGAL/Intersection_traits_3.h index 885e11c152a..3fd85b454d4 100644 --- a/Intersections_3/include/CGAL/Intersection_traits_3.h +++ b/Intersections_3/include/CGAL/Intersection_traits_3.h @@ -22,6 +22,7 @@ #define CGAL_INTERSECTION_TRAITS_3_H #include +#include #if !(CGAL_INTERSECTION_VERSION < 2) diff --git a/Intersections_3/include/CGAL/Intersections_3/intersection_3_1_impl.h b/Intersections_3/include/CGAL/Intersections_3/intersection_3_1_impl.h index 7a298ef7492..cc20b947899 100644 --- a/Intersections_3/include/CGAL/Intersections_3/intersection_3_1_impl.h +++ b/Intersections_3/include/CGAL/Intersections_3/intersection_3_1_impl.h @@ -27,6 +27,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Intersections_3/include/CGAL/bbox_intersection_3.h b/Intersections_3/include/CGAL/bbox_intersection_3.h index 91b5126ab58..83630b93afa 100644 --- a/Intersections_3/include/CGAL/bbox_intersection_3.h +++ b/Intersections_3/include/CGAL/bbox_intersection_3.h @@ -27,6 +27,7 @@ #define CGAL_BBOX_INTERSECTION_3_H #include +#include namespace CGAL { diff --git a/Kernel_23/doc/Kernel_23/CGAL/Kernel/global_functions.h b/Kernel_23/doc/Kernel_23/CGAL/Kernel/global_functions.h index 451ea6f1cf5..af5e70f0558 100644 --- a/Kernel_23/doc/Kernel_23/CGAL/Kernel/global_functions.h +++ b/Kernel_23/doc/Kernel_23/CGAL/Kernel/global_functions.h @@ -1690,6 +1690,15 @@ const CGAL::Vector_3& v, const CGAL::Vector_3& w); /// @} +/*! +returns the dihedral angle of .... between `-180` and `180` degree. +*/ +template +Kernel::FT dihedral_angle(const CGAL::Point_3& p, + const CGAL::Point_3& q, + const CGAL::Point_3& r, + const CGAL::Point_3& s); + // This is there to keep the global functions in alphabetical order // instead of processing order. diff --git a/Kernel_23/include/CGAL/Aff_transformation_2.h b/Kernel_23/include/CGAL/Aff_transformation_2.h index 973b859d78d..d8e5a1f41c3 100644 --- a/Kernel_23/include/CGAL/Aff_transformation_2.h +++ b/Kernel_23/include/CGAL/Aff_transformation_2.h @@ -24,8 +24,9 @@ #ifndef CGAL_AFF_TRANSFORMATION_2_H #define CGAL_AFF_TRANSFORMATION_2_H -#include +#include #include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Aff_transformation_3.h b/Kernel_23/include/CGAL/Aff_transformation_3.h index e8f3ddd4fc4..4bd67252138 100644 --- a/Kernel_23/include/CGAL/Aff_transformation_3.h +++ b/Kernel_23/include/CGAL/Aff_transformation_3.h @@ -25,6 +25,7 @@ #define CGAL_AFF_TRANSFORMATION_3_H #include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Bbox_2.h b/Kernel_23/include/CGAL/Bbox_2.h index 8b7bcbf54a7..aa982b91745 100644 --- a/Kernel_23/include/CGAL/Bbox_2.h +++ b/Kernel_23/include/CGAL/Bbox_2.h @@ -24,7 +24,7 @@ #ifndef CGAL_BBOX_2_H #define CGAL_BBOX_2_H -#include +#include #include #include #include diff --git a/Kernel_23/include/CGAL/Bbox_3.h b/Kernel_23/include/CGAL/Bbox_3.h index 062dfab0b92..4e1adee6265 100644 --- a/Kernel_23/include/CGAL/Bbox_3.h +++ b/Kernel_23/include/CGAL/Bbox_3.h @@ -24,7 +24,9 @@ #ifndef CGAL_BBOX_3_H #define CGAL_BBOX_3_H -#include +#include +#include +#include #include #include #include diff --git a/Kernel_23/include/CGAL/Circle_2.h b/Kernel_23/include/CGAL/Circle_2.h index b12ccb6feef..a3d67895e02 100644 --- a/Kernel_23/include/CGAL/Circle_2.h +++ b/Kernel_23/include/CGAL/Circle_2.h @@ -31,6 +31,8 @@ #include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Dimension.h b/Kernel_23/include/CGAL/Dimension.h index b0e8a9f2d3a..3980b5dd3a5 100644 --- a/Kernel_23/include/CGAL/Dimension.h +++ b/Kernel_23/include/CGAL/Dimension.h @@ -20,7 +20,7 @@ #ifndef CGAL_DIMENSION_H #define CGAL_DIMENSION_H -#include +#include #include #include #include diff --git a/Kernel_23/include/CGAL/Direction_2.h b/Kernel_23/include/CGAL/Direction_2.h index bca7fa567d2..2c693b0a2f8 100644 --- a/Kernel_23/include/CGAL/Direction_2.h +++ b/Kernel_23/include/CGAL/Direction_2.h @@ -27,9 +27,12 @@ #include #include +#include #include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Direction_3.h b/Kernel_23/include/CGAL/Direction_3.h index eff1991b9b4..a03c5116b3f 100644 --- a/Kernel_23/include/CGAL/Direction_3.h +++ b/Kernel_23/include/CGAL/Direction_3.h @@ -28,8 +28,11 @@ #include #include #include +#include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Iso_rectangle_2.h b/Kernel_23/include/CGAL/Iso_rectangle_2.h index 9df885f0a3a..2890b371b5b 100644 --- a/Kernel_23/include/CGAL/Iso_rectangle_2.h +++ b/Kernel_23/include/CGAL/Iso_rectangle_2.h @@ -30,6 +30,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Kernel/Return_base_tag.h b/Kernel_23/include/CGAL/Kernel/Return_base_tag.h index 9b2d4901307..8156093e52f 100644 --- a/Kernel_23/include/CGAL/Kernel/Return_base_tag.h +++ b/Kernel_23/include/CGAL/Kernel/Return_base_tag.h @@ -21,7 +21,7 @@ #ifndef CGAL_KERNEL_RETURN_BASE_TAG_H #define CGAL_KERNEL_RETURN_BASE_TAG_H -#include +#include // This is a simple tag which is used as additional (first) argument in // some kernel functors, to tell them to return the base (rep) class, diff --git a/Kernel_23/include/CGAL/Kernel/function_objects.h b/Kernel_23/include/CGAL/Kernel/function_objects.h index 64c60433476..36f9936703d 100644 --- a/Kernel_23/include/CGAL/Kernel/function_objects.h +++ b/Kernel_23/include/CGAL/Kernel/function_objects.h @@ -35,6 +35,8 @@ #include #include +#include // for Compute_dihedral_angle + namespace CGAL { namespace CommonKernelFunctors { @@ -361,6 +363,41 @@ namespace CommonKernelFunctors { } }; + template + class Compute_dihedral_angle_3 + { + typedef typename K::Point_3 Point_3; + public: + typedef typename K::FT result_type; + + result_type + operator()(const Point_3& a, const Point_3& b, const Point_3& c, const Point_3& d) const + { + K k; + typename K::Construct_vector_3 vector = k.construct_vector_3_object(); + typename K::Construct_cross_product_vector_3 cross_product = + k.construct_cross_product_vector_3_object(); + typename K::Compute_squared_distance_3 sq_distance = + k.compute_squared_distance_3_object(); + typename K::Compute_scalar_product_3 scalar_product = + k.compute_scalar_product_3_object(); + + typedef typename K::Vector_3 Vector_3; + typedef typename K::FT FT; + + const Vector_3 ab = vector(a,b); + const Vector_3 ac = vector(a,c); + const Vector_3 ad = vector(a,d); + + const Vector_3 abad = cross_product(ab,ad); + const double x = CGAL::to_double(scalar_product(cross_product(ab,ac), abad)); + const double l_ab = CGAL::sqrt(CGAL::to_double(sq_distance(a,b))); + const double y = l_ab * CGAL::to_double(scalar_product(ac,abad)); + + return FT(std::atan2(y, x) * 180 / CGAL_PI ); + } + }; + template class Compute_squared_distance_2 { diff --git a/Kernel_23/include/CGAL/Kernel/global_functions_3.h b/Kernel_23/include/CGAL/Kernel/global_functions_3.h index 0a68e07d313..7fde519b63f 100644 --- a/Kernel_23/include/CGAL/Kernel/global_functions_3.h +++ b/Kernel_23/include/CGAL/Kernel/global_functions_3.h @@ -516,6 +516,17 @@ determinant(const Vector_3 &v0, const Vector_3 &v1, return internal::determinant(v0, v1, v2, K()); } +template < class K > +inline +typename K::FT +dihedral_angle(const Point_3 &p, + const Point_3 &q, + const Point_3 &r, + const Point_3 &s) +{ + return internal::dihedral_angle(p, q, r, s, K()); +} + template < class K > inline typename K::Line_3 diff --git a/Kernel_23/include/CGAL/Kernel/global_functions_internal_3.h b/Kernel_23/include/CGAL/Kernel/global_functions_internal_3.h index 280dc072730..0e5b013430a 100644 --- a/Kernel_23/include/CGAL/Kernel/global_functions_internal_3.h +++ b/Kernel_23/include/CGAL/Kernel/global_functions_internal_3.h @@ -591,6 +591,17 @@ determinant(const typename K::Vector_3 &v0, return k.compute_determinant_3_object()(v0, v1, v2); } +template < class K > +inline +typename K::FT +dihedral_angle(const typename K::Point_3 &p, + const typename K::Point_3 &q, + const typename K::Point_3 &r, + const typename K::Point_3 &s, const K& k) +{ + return k.compute_dihedral_angle_3_object()(p, q, r, s); +} + template < class K > inline typename K::Line_3 diff --git a/Kernel_23/include/CGAL/Kernel/interface_macros.h b/Kernel_23/include/CGAL/Kernel/interface_macros.h index e4769ba252c..164a4ee3e82 100644 --- a/Kernel_23/include/CGAL/Kernel/interface_macros.h +++ b/Kernel_23/include/CGAL/Kernel/interface_macros.h @@ -176,6 +176,8 @@ CGAL_Kernel_cons(Compute_determinant_2, compute_determinant_2_object) CGAL_Kernel_cons(Compute_determinant_3, compute_determinant_3_object) +CGAL_Kernel_cons(Compute_dihedral_angle_3, + compute_dihedral_angle_3_object) CGAL_Kernel_cons(Compute_scalar_product_2, compute_scalar_product_2_object) CGAL_Kernel_cons(Compute_scalar_product_3, diff --git a/Kernel_23/include/CGAL/Kernel/mpl.h b/Kernel_23/include/CGAL/Kernel/mpl.h index e0b6bcaf5c6..9b6ad2f28a2 100644 --- a/Kernel_23/include/CGAL/Kernel/mpl.h +++ b/Kernel_23/include/CGAL/Kernel/mpl.h @@ -25,7 +25,7 @@ #ifndef CGAL_KERNEL_MPL_H #define CGAL_KERNEL_MPL_H -#include +#include // Some tools for basic template metaprogramming. // These bits should move to CGAL/mpl.h in STL_Extension, or taken from Boost. diff --git a/Kernel_23/include/CGAL/Line_2.h b/Kernel_23/include/CGAL/Line_2.h index 8f83060b6a7..dc96015b833 100644 --- a/Kernel_23/include/CGAL/Line_2.h +++ b/Kernel_23/include/CGAL/Line_2.h @@ -29,6 +29,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Line_3.h b/Kernel_23/include/CGAL/Line_3.h index 47696e5a9ab..7898f085058 100644 --- a/Kernel_23/include/CGAL/Line_3.h +++ b/Kernel_23/include/CGAL/Line_3.h @@ -30,6 +30,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Origin.h b/Kernel_23/include/CGAL/Origin.h index 78ec935776b..954f491a2e5 100644 --- a/Kernel_23/include/CGAL/Origin.h +++ b/Kernel_23/include/CGAL/Origin.h @@ -26,7 +26,7 @@ #ifndef CGAL_ORIGIN_H #define CGAL_ORIGIN_H -#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Plane_3.h b/Kernel_23/include/CGAL/Plane_3.h index 448474c5cdf..337c910bf5d 100644 --- a/Kernel_23/include/CGAL/Plane_3.h +++ b/Kernel_23/include/CGAL/Plane_3.h @@ -29,6 +29,8 @@ #include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Point_2.h b/Kernel_23/include/CGAL/Point_2.h index 6c1ac87105b..f6d14d1708f 100644 --- a/Kernel_23/include/CGAL/Point_2.h +++ b/Kernel_23/include/CGAL/Point_2.h @@ -32,6 +32,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Ray_2.h b/Kernel_23/include/CGAL/Ray_2.h index b5bb85fd726..26bcfeea985 100644 --- a/Kernel_23/include/CGAL/Ray_2.h +++ b/Kernel_23/include/CGAL/Ray_2.h @@ -28,8 +28,11 @@ #include #include #include +#include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Ray_3.h b/Kernel_23/include/CGAL/Ray_3.h index d63d3ec07b7..ff944a32aad 100644 --- a/Kernel_23/include/CGAL/Ray_3.h +++ b/Kernel_23/include/CGAL/Ray_3.h @@ -30,6 +30,8 @@ #include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Segment_2.h b/Kernel_23/include/CGAL/Segment_2.h index 92f6c2a8b58..1949ecca697 100644 --- a/Kernel_23/include/CGAL/Segment_2.h +++ b/Kernel_23/include/CGAL/Segment_2.h @@ -30,6 +30,8 @@ #include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Segment_3.h b/Kernel_23/include/CGAL/Segment_3.h index 11c3a76cbce..aca753cc837 100644 --- a/Kernel_23/include/CGAL/Segment_3.h +++ b/Kernel_23/include/CGAL/Segment_3.h @@ -28,6 +28,8 @@ #include #include #include +#include +#include #include #include diff --git a/Kernel_23/include/CGAL/Triangle_2.h b/Kernel_23/include/CGAL/Triangle_2.h index 75bcedaaa26..03894a28ccb 100644 --- a/Kernel_23/include/CGAL/Triangle_2.h +++ b/Kernel_23/include/CGAL/Triangle_2.h @@ -30,6 +30,8 @@ #include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Vector_2.h b/Kernel_23/include/CGAL/Vector_2.h index 23e3b6edae5..89714e6fc74 100644 --- a/Kernel_23/include/CGAL/Vector_2.h +++ b/Kernel_23/include/CGAL/Vector_2.h @@ -30,8 +30,11 @@ #include #include #include +#include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/Vector_3.h b/Kernel_23/include/CGAL/Vector_3.h index 5f18d0493af..2fbdd2789de 100644 --- a/Kernel_23/include/CGAL/Vector_3.h +++ b/Kernel_23/include/CGAL/Vector_3.h @@ -28,10 +28,13 @@ #include #include #include +#include #include #include #include #include +#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/aff_transformation_tags.h b/Kernel_23/include/CGAL/aff_transformation_tags.h index 96a0041699a..24f94b9f785 100644 --- a/Kernel_23/include/CGAL/aff_transformation_tags.h +++ b/Kernel_23/include/CGAL/aff_transformation_tags.h @@ -26,7 +26,7 @@ #ifndef CGAL_AFF_TRANSFORMATION_TAGS_H #define CGAL_AFF_TRANSFORMATION_TAGS_H -#include +#include namespace CGAL { diff --git a/Kernel_23/include/CGAL/enum.h b/Kernel_23/include/CGAL/enum.h index 22f7737a550..9452328ca20 100644 --- a/Kernel_23/include/CGAL/enum.h +++ b/Kernel_23/include/CGAL/enum.h @@ -27,6 +27,7 @@ #include #include +#include // If you add/change one type here, please update Is_a_predicate.h as well. diff --git a/Kernel_23/include/CGAL/predicates/sign_of_determinant.h b/Kernel_23/include/CGAL/predicates/sign_of_determinant.h index 3b3d1267131..3fcd6e90c88 100644 --- a/Kernel_23/include/CGAL/predicates/sign_of_determinant.h +++ b/Kernel_23/include/CGAL/predicates/sign_of_determinant.h @@ -28,6 +28,7 @@ #include #include +#include namespace CGAL { diff --git a/Kernel_d/include/CGAL/Filtered_kernel_d.h b/Kernel_d/include/CGAL/Filtered_kernel_d.h index 3950f168df1..a245fd9f5bd 100644 --- a/Kernel_d/include/CGAL/Filtered_kernel_d.h +++ b/Kernel_d/include/CGAL/Filtered_kernel_d.h @@ -23,6 +23,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Kernel_d/include/CGAL/Kernel_d/Aff_transformation_d.h b/Kernel_d/include/CGAL/Kernel_d/Aff_transformation_d.h index 915c0dd8088..3133541df1e 100644 --- a/Kernel_d/include/CGAL/Kernel_d/Aff_transformation_d.h +++ b/Kernel_d/include/CGAL/Kernel_d/Aff_transformation_d.h @@ -25,6 +25,9 @@ #define CGAL_AFF_TRANSFORMATION_D_H #include +#include +#include +#include namespace CGAL { diff --git a/Kernel_d/include/CGAL/Kernel_d/Hyperplane_d.h b/Kernel_d/include/CGAL/Kernel_d/Hyperplane_d.h index 1a8a37b2b2f..fc10e4c2006 100644 --- a/Kernel_d/include/CGAL/Kernel_d/Hyperplane_d.h +++ b/Kernel_d/include/CGAL/Kernel_d/Hyperplane_d.h @@ -26,6 +26,9 @@ #define CGAL_HYPERPLANE_D_H #include +#include +#include +#include namespace CGAL { diff --git a/Kernel_d/include/CGAL/Kernel_d/Line_d.h b/Kernel_d/include/CGAL/Kernel_d/Line_d.h index c1b817ef188..b9e60a99e9a 100644 --- a/Kernel_d/include/CGAL/Kernel_d/Line_d.h +++ b/Kernel_d/include/CGAL/Kernel_d/Line_d.h @@ -26,8 +26,11 @@ #define CGAL_LINE_D_H #include +#include +#include #include #include +#include #include namespace CGAL { diff --git a/Kernel_d/include/CGAL/Kernel_d/Ray_d.h b/Kernel_d/include/CGAL/Kernel_d/Ray_d.h index 80de9a34025..74234d7f4b2 100644 --- a/Kernel_d/include/CGAL/Kernel_d/Ray_d.h +++ b/Kernel_d/include/CGAL/Kernel_d/Ray_d.h @@ -26,8 +26,11 @@ #define CGAL_RAY_D_H #include +#include +#include #include #include +#include #include namespace CGAL { diff --git a/Kernel_d/include/CGAL/Kernel_d/Segment_d.h b/Kernel_d/include/CGAL/Kernel_d/Segment_d.h index 7a3be0a7178..143178925ce 100644 --- a/Kernel_d/include/CGAL/Kernel_d/Segment_d.h +++ b/Kernel_d/include/CGAL/Kernel_d/Segment_d.h @@ -26,8 +26,11 @@ #define CGAL_SEGMENT_D_H #include +#include +#include #include #include +#include #include namespace CGAL { diff --git a/Kernel_d/include/CGAL/Kernel_d/Sphere_d.h b/Kernel_d/include/CGAL/Kernel_d/Sphere_d.h index c250afa8162..15e71568248 100644 --- a/Kernel_d/include/CGAL/Kernel_d/Sphere_d.h +++ b/Kernel_d/include/CGAL/Kernel_d/Sphere_d.h @@ -29,6 +29,10 @@ #include #include #include +#include +#include +#include +#include namespace CGAL { diff --git a/Kernel_d/include/CGAL/Kernel_d/Vector_d.h b/Kernel_d/include/CGAL/Kernel_d/Vector_d.h index 5dff288516b..dc59e7f0259 100644 --- a/Kernel_d/include/CGAL/Kernel_d/Vector_d.h +++ b/Kernel_d/include/CGAL/Kernel_d/Vector_d.h @@ -25,6 +25,7 @@ #define CGAL_VECTOR_D_H #include +#include namespace CGAL { diff --git a/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp b/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp index 564b540b1d6..d9a38552ca8 100644 --- a/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp +++ b/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp @@ -21,11 +21,14 @@ // #include "MainWindow.h" #include +#include +#include #include #include #include #include "import_moka.h" + // Function defined in Linear_cell_complex_3_subivision.cpp void subdivide_lcc_3 (LCC & m); diff --git a/Linear_cell_complex/doc/Linear_cell_complex/CGAL/Linear_cell_complex_constructors.h b/Linear_cell_complex/doc/Linear_cell_complex/CGAL/Linear_cell_complex_constructors.h index faabfd7a207..9323e47193c 100644 --- a/Linear_cell_complex/doc/Linear_cell_complex/CGAL/Linear_cell_complex_constructors.h +++ b/Linear_cell_complex/doc/Linear_cell_complex/CGAL/Linear_cell_complex_constructors.h @@ -41,38 +41,6 @@ template typename LCC::Dart_handle import_from_plane_graph(LCC& lcc, std::istream& ais); -/*! -\ingroup PkgLinearCellComplexConstructions - -Imports `apoly` (a `Polyhedron_3`) into `lcc`. Objects are added in `lcc`, -existing darts are not modified. -Returns a dart created during the import. -\pre \ref CombinatorialMap::dimension "LCC::dimension"\f$ \geq\f$ 2 and - \ref Linear_cell_complex::ambient_dimension "LCC::ambient_dimension"==3. - -\sa `CGAL::import_from_plane_graph` -\sa `CGAL::import_from_triangulation_3` -*/ -template -typename LCC::Dart_handle import_from_polyhedron_3(LCC& lcc, -const Polyhedron &apoly); - - -/*! -\ingroup PkgLinearCellComplexConstructions - -Imports `atr` (a `Triangulation_3`) into `lcc`. -Objects are added in `lcc`, existing darts are not modified. -Returns a dart created during the import. -\pre \ref CombinatorialMap::dimension "LCC::dimension"\f$ \geq\f$ 3 and - \ref Linear_cell_complex::ambient_dimension "LCC::ambient_dimension"==3. - -\sa `CGAL::import_from_plane_graph` -\sa `CGAL::import_from_polyhedron_3` -*/ -template -typename LCC::Dart_handle import_from_triangulation_3(LCC& lcc, -const Triangulation_&atr); } /* namespace CGAL */ diff --git a/Linear_cell_complex/doc/Linear_cell_complex/CGAL/import_from_polyhedron_3.h b/Linear_cell_complex/doc/Linear_cell_complex/CGAL/import_from_polyhedron_3.h new file mode 100644 index 00000000000..dcbc5d72824 --- /dev/null +++ b/Linear_cell_complex/doc/Linear_cell_complex/CGAL/import_from_polyhedron_3.h @@ -0,0 +1,16 @@ + +/*! +\ingroup PkgLinearCellComplexConstructions + +Imports `apoly` (a `Polyhedron_3`) into `lcc`. Objects are added in `lcc`, +existing darts are not modified. +Returns a dart created during the import. +\pre \ref CombinatorialMap::dimension "LCC::dimension"\f$ \geq\f$ 2 and + \ref Linear_cell_complex::ambient_dimension "LCC::ambient_dimension"==3. + +\sa `CGAL::import_from_plane_graph` +\sa `CGAL::import_from_triangulation_3` +*/ +template +typename LCC::Dart_handle import_from_polyhedron_3(LCC& lcc, +const Polyhedron &apoly); diff --git a/Linear_cell_complex/doc/Linear_cell_complex/CGAL/import_from_triangulation_3.h b/Linear_cell_complex/doc/Linear_cell_complex/CGAL/import_from_triangulation_3.h new file mode 100644 index 00000000000..819bff15367 --- /dev/null +++ b/Linear_cell_complex/doc/Linear_cell_complex/CGAL/import_from_triangulation_3.h @@ -0,0 +1,17 @@ + + +/*! +\ingroup PkgLinearCellComplexConstructions + +Imports `atr` (a `Triangulation_3`) into `lcc`. +Objects are added in `lcc`, existing darts are not modified. +Returns a dart created during the import. +\pre \ref CombinatorialMap::dimension "LCC::dimension"\f$ \geq\f$ 3 and + \ref Linear_cell_complex::ambient_dimension "LCC::ambient_dimension"==3. + +\sa `CGAL::import_from_plane_graph` +\sa `CGAL::import_from_polyhedron_3` +*/ +template +typename LCC::Dart_handle import_from_triangulation_3(LCC& lcc, +const Triangulation_&atr); diff --git a/Linear_cell_complex/examples/Linear_cell_complex/voronoi_2.cpp b/Linear_cell_complex/examples/Linear_cell_complex/voronoi_2.cpp index 8668f5e5ee6..de4fea27565 100644 --- a/Linear_cell_complex/examples/Linear_cell_complex/voronoi_2.cpp +++ b/Linear_cell_complex/examples/Linear_cell_complex/voronoi_2.cpp @@ -2,6 +2,8 @@ #include #include #include +#include + #include #include diff --git a/Linear_cell_complex/examples/Linear_cell_complex/voronoi_3.cpp b/Linear_cell_complex/examples/Linear_cell_complex/voronoi_3.cpp index df4780d4d21..e96daa22884 100644 --- a/Linear_cell_complex/examples/Linear_cell_complex/voronoi_3.cpp +++ b/Linear_cell_complex/examples/Linear_cell_complex/voronoi_3.cpp @@ -2,6 +2,8 @@ #include #include #include +#include + #include #include diff --git a/Linear_cell_complex/include/CGAL/Linear_cell_complex_constructors.h b/Linear_cell_complex/include/CGAL/Linear_cell_complex_constructors.h index aa292442063..0ac56d156c3 100644 --- a/Linear_cell_complex/include/CGAL/Linear_cell_complex_constructors.h +++ b/Linear_cell_complex/include/CGAL/Linear_cell_complex_constructors.h @@ -22,8 +22,7 @@ #include #include -#include -#include + #include #include #include @@ -166,284 +165,6 @@ namespace CGAL { return first; } - /** Convert a given Triangulation_2 into a 2D linear cell complex. - * @param alcc the used linear cell complex. - * @param atr the Triangulation_2. - * @param aface_to_dart a pointer to a std::map associating to each - * triangle of atr a corresponding dart in alcc. Not used if NULL. - * @return A dart incident to the infinite vertex. - */ - template < class LCC, class Triangulation > - typename LCC::Dart_handle import_from_triangulation_2 - (LCC& alcc, const Triangulation &atr, - std::map* aface_to_dart=NULL) - { - CGAL_static_assertion( LCC::dimension>=2 && LCC::ambient_dimension==2 ); - - // Case of empty triangulations. - if (atr.number_of_vertices() == 0) return LCC::null_handle; - - // Check the dimension. - if (atr.dimension() != 2) return LCC::null_handle; - CGAL_assertion(atr.is_valid()); - - typedef typename Triangulation::Vertex_handle TVertex_handle; - typedef typename Triangulation::All_vertices_iterator TVertex_iterator; - typedef typename Triangulation::All_faces_iterator TFace_iterator; - typedef typename std::map - < TFace_iterator, typename LCC::Dart_handle >::iterator itmap_tcell; - - // Create vertices in the map and associate in a map - // TVertex_handle and vertices in the map. - std::map< TVertex_handle, typename LCC::Vertex_attribute_handle > TV; - for (TVertex_iterator itv = atr.all_vertices_begin(); - itv != atr.all_vertices_end(); ++itv) - { - TV[itv] = alcc.create_vertex_attribute(itv->point()); - } - - // Create the triangles and create a map to link Cell_iterator - // and triangles. - TFace_iterator it; - - std::map TC; - std::map* - mytc = (aface_to_dart==NULL?&TC:aface_to_dart); - - itmap_tcell maptcell_it; - - typename LCC::Dart_handle res=LCC::null_handle, dart=LCC::null_handle; - typename LCC::Dart_handle cur=LCC::null_handle, neighbor=LCC::null_handle; - - for (it = atr.all_faces_begin(); it != atr.all_faces_end(); ++it) - { - /* if (it->vertex(0) != atr.infinite_vertex() && - it->vertex(1) != atr.infinite_vertex() && - it->vertex(2) != atr.infinite_vertex() && - it->vertex(3) != atr.infinite_vertex()) - */ - { - res = alcc.make_triangle(TV[it->vertex(0)], - TV[it->vertex(1)], - TV[it->vertex(2)]); - - if ( dart==LCC::null_handle ) - { - if ( it->vertex(0) == atr.infinite_vertex() ) - dart = res; - else if ( it->vertex(1) == atr.infinite_vertex() ) - dart = alcc.beta(res,1); - else if ( it->vertex(2) == atr.infinite_vertex() ) - dart = alcc.beta(res,0); - } - - for (unsigned int i=0; i<3; ++i) - { - switch (i) - { - case 0: cur = alcc.beta(res,1); break; - case 1: cur = alcc.beta(res,0); break; - case 2: cur = res; break; - } - - maptcell_it = mytc->find(it->neighbor(i)); - if (maptcell_it != mytc->end()) - { - switch (atr.mirror_index(it,i) ) - { - case 0: neighbor = alcc.beta(maptcell_it->second,1); - break; - case 1: neighbor = alcc.beta(maptcell_it->second,0); - break; - case 2: neighbor = maptcell_it->second; break; - } - alcc.template topo_sew<2>(cur, neighbor); - } - } - (*mytc)[it] = res; - } - } - - CGAL_assertion(dart!=LCC::null_handle); - return dart; - } - - /** Convert a given Triangulation_3 into a 3D linear cell complex. - * @param alcc the used linear cell complex. - * @param atr the Triangulation_3. - * @param avol_to_dart a pointer to a std::map associating to each - * tetrahedron of atr a corresponding dart in alcc. Not used if NULL. - * @return A dart incident to the infinite vertex. - */ - template < class LCC, class Triangulation > - typename LCC::Dart_handle import_from_triangulation_3 - (LCC& alcc, const Triangulation &atr, - std::map* avol_to_dart=NULL) - { - CGAL_static_assertion( LCC::dimension>=3 && LCC::ambient_dimension==3 ); - - // Case of empty triangulations. - if (atr.number_of_vertices() == 0) return LCC::null_handle; - - // Check the dimension. - if (atr.dimension() != 3) return LCC::null_handle; - CGAL_assertion(atr.is_valid()); - - typedef typename Triangulation::Vertex_handle TVertex_handle; - typedef typename Triangulation::Vertex_iterator TVertex_iterator; - typedef typename Triangulation::Cell_iterator TCell_iterator; - typedef typename std::map - < TCell_iterator, typename LCC::Dart_handle >::iterator itmap_tcell; - - // Create vertices in the map and associate in a map - // TVertex_handle and vertices in the map. - std::map< TVertex_handle, typename LCC::Vertex_attribute_handle > TV; - for (TVertex_iterator itv = atr.vertices_begin(); - itv != atr.vertices_end(); ++itv) - { - TV[itv] = alcc.create_vertex_attribute(itv->point()); - } - - // Create the tetrahedron and create a map to link Cell_iterator - // and tetrahedron. - TCell_iterator it; - - std::map TC; - std::map* - mytc = (avol_to_dart==NULL?&TC:avol_to_dart); - - itmap_tcell maptcell_it; - - typename LCC::Dart_handle res=LCC::null_handle, dart=LCC::null_handle; - typename LCC::Dart_handle cur=LCC::null_handle, neighbor=LCC::null_handle; - - for (it = atr.cells_begin(); it != atr.cells_end(); ++it) - { - /* if (it->vertex(0) != atr.infinite_vertex() && - it->vertex(1) != atr.infinite_vertex() && - it->vertex(2) != atr.infinite_vertex() && - it->vertex(3) != atr.infinite_vertex()) - */ - { - res = alcc.make_tetrahedron(TV[it->vertex(0)], - TV[it->vertex(1)], - TV[it->vertex(2)], - TV[it->vertex(3)]); - - if ( dart==LCC::null_handle ) - { - if ( it->vertex(0) == atr.infinite_vertex() ) - dart = res; - else if ( it->vertex(1) == atr.infinite_vertex() ) - dart = alcc.beta(res, 1); - else if ( it->vertex(2) == atr.infinite_vertex() ) - dart = alcc.beta(res, 1, 1); - else if ( it->vertex(3) == atr.infinite_vertex() ) - dart = alcc.beta(res, 2, 0); - } - - for (unsigned int i = 0; i < 4; ++i) - { - switch (i) - { - case 0: cur = alcc.beta(res, 1, 2); break; - case 1: cur = alcc.beta(res, 0, 2); break; - case 2: cur = alcc.beta(res, 2); break; - case 3: cur = res; break; - } - - maptcell_it = mytc->find(it->neighbor(i)); - if (maptcell_it != mytc->end()) - { - switch (atr.mirror_index(it,i) ) - { - case 0: neighbor = alcc.beta(maptcell_it->second, 1, 2); - break; - case 1: neighbor = alcc.beta(maptcell_it->second, 0, 2); - break; - case 2: neighbor = alcc.beta(maptcell_it->second, 2); break; - case 3: neighbor = maptcell_it->second; break; - } - while (alcc.temp_vertex_attribute(neighbor) != - alcc.temp_vertex_attribute(alcc.other_extremity(cur)) ) - neighbor = alcc.beta(neighbor,1); - alcc.template topo_sew<3>(cur, neighbor); - } - } - (*mytc)[it] = res; - } - } - CGAL_assertion(dart!=LCC::null_handle); - return dart; - } - - /** Import a given Polyhedron_3 into a Linear_cell_complex. - * @param alcc the linear cell complex where Polyhedron_3 will be converted. - * @param apoly the Polyhedron. - * @return A dart created during the convertion. - */ - template< class LCC, class Polyhedron > - typename LCC::Dart_handle import_from_polyhedron_3(LCC& alcc, - const Polyhedron &apoly) - { - CGAL_static_assertion( LCC::dimension>=2 && LCC::ambient_dimension==3 ); - - typedef typename Polyhedron::Halfedge_const_handle Halfedge_handle; - typedef typename Polyhedron::Facet_const_iterator Facet_iterator; - typedef typename Polyhedron::Halfedge_around_facet_const_circulator - HF_circulator; - - typedef std::map < Halfedge_handle, typename LCC::Dart_handle> - Halfedge_handle_map; - typedef typename Halfedge_handle_map::iterator itmap_hds; - Halfedge_handle_map TC; - - itmap_hds it; - typename LCC::Dart_handle d = LCC::null_handle, prev = LCC::null_handle; - typename LCC::Dart_handle firstFacet = LCC::null_handle, firstAll = LCC::null_handle; - - // First traversal to build the darts and link them. - for (Facet_iterator i = apoly.facets_begin(); i != apoly.facets_end(); ++i) - { - HF_circulator j = i->facet_begin(); - prev = LCC::null_handle; - do - { - d = alcc.create_dart(); - TC[j] = d; - - if (prev != LCC::null_handle) alcc.template link_beta<1>(prev, d); - else firstFacet = d; - it = TC.find(j->opposite()); - if (it != TC.end()) - alcc.template link_beta<2>(d, it->second); - prev = d; - } - while (++j != i->facet_begin()); - alcc.template link_beta<1>(prev, firstFacet); - if (firstAll == LCC::null_handle) firstAll = firstFacet; - } - - // Second traversal to update the geometry. - // We run one again through the facets of the HDS. - for (Facet_iterator i = apoly.facets_begin(); i != apoly.facets_end(); ++i) - { - HF_circulator j = i->facet_begin(); - do - { - d = TC[j]; // Get the dart associated to the Halfedge - if (alcc.temp_vertex_attribute(d) == LCC::null_handle) - { - alcc.set_vertex_attribute - (d, alcc.create_vertex_attribute(j->opposite()->vertex()->point())); - } - } - while (++j != i->facet_begin()); - } - return firstAll; - } template < class LCC > void load_off(LCC& alcc, std::istream& in) @@ -525,25 +246,7 @@ namespace CGAL { B.end_surface(); } - /** Convert a Polyhedron_3 read into a flux into 3D linear cell complex. - * @param alcc the linear cell complex where Polyhedron_3 will be converted. - * @param ais the istream where read the Polyhedron_3. - * @return A dart created during the convertion. - */ - template < class LCC > - typename LCC::Dart_handle - import_from_polyhedron_3_flux(LCC& alcc, std::istream& ais) - { - if (!ais.good()) - { - std::cout << "Error reading flux." << std::endl; - return LCC::null_handle; - } - CGAL::Polyhedron_3 P; - ais >> P; - return import_from_polyhedron_3 > (alcc, P); - } + /** Export the alcc in off file format. If dimension>2, export all faces but only once. */ diff --git a/Linear_cell_complex/include/CGAL/Linear_cell_complex_operations.h b/Linear_cell_complex/include/CGAL/Linear_cell_complex_operations.h index 6a1a91ff0e2..6794f39228b 100644 --- a/Linear_cell_complex/include/CGAL/Linear_cell_complex_operations.h +++ b/Linear_cell_complex/include/CGAL/Linear_cell_complex_operations.h @@ -20,8 +20,11 @@ #ifndef CGAL_LINEAR_CELL_COMPLEX_OPERATIONS_H #define CGAL_LINEAR_CELL_COMPLEX_OPERATIONS_H 1 +#include #include #include +#include + #include namespace CGAL { diff --git a/Linear_cell_complex/test/Linear_cell_complex/Linear_cell_complex_3_test.h b/Linear_cell_complex/test/Linear_cell_complex/Linear_cell_complex_3_test.h index 5a365cbed1a..e95a72891ea 100644 --- a/Linear_cell_complex/test/Linear_cell_complex/Linear_cell_complex_3_test.h +++ b/Linear_cell_complex/test/Linear_cell_complex/Linear_cell_complex_3_test.h @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include "Linear_cell_complex_2_test.h" #include diff --git a/Mesh_2/include/CGAL/Constrained_voronoi_diagram_2.h b/Mesh_2/include/CGAL/Constrained_voronoi_diagram_2.h index c3dfdecab30..705509ab197 100644 --- a/Mesh_2/include/CGAL/Constrained_voronoi_diagram_2.h +++ b/Mesh_2/include/CGAL/Constrained_voronoi_diagram_2.h @@ -23,6 +23,10 @@ #define CGAL_CONSTRAINED_VORONOI_DIAGRAM_2_H #include +#include +#include +#include +#include namespace CGAL { diff --git a/Mesh_2/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h b/Mesh_2/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h index 119bd3348d5..b4056bf3287 100644 --- a/Mesh_2/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h +++ b/Mesh_2/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include diff --git a/Mesh_2/include/CGAL/Mesh_2/Mesh_sizing_field.h b/Mesh_2/include/CGAL/Mesh_2/Mesh_sizing_field.h index 801bc1a04d1..e74871d7930 100644 --- a/Mesh_2/include/CGAL/Mesh_2/Mesh_sizing_field.h +++ b/Mesh_2/include/CGAL/Mesh_2/Mesh_sizing_field.h @@ -24,6 +24,7 @@ #define CGAL_MESH_2_MESH_SIZING_FIELD_H #include +#include namespace CGAL { diff --git a/Mesh_2/include/CGAL/Mesh_2/Refine_edges_with_clusters.h b/Mesh_2/include/CGAL/Mesh_2/Refine_edges_with_clusters.h index 8697399f4cd..0c617283176 100644 --- a/Mesh_2/include/CGAL/Mesh_2/Refine_edges_with_clusters.h +++ b/Mesh_2/include/CGAL/Mesh_2/Refine_edges_with_clusters.h @@ -23,6 +23,8 @@ #include #include +#include +#include namespace CGAL { diff --git a/Mesh_3/include/CGAL/IO/File_medit.h b/Mesh_3/include/CGAL/IO/File_medit.h index b879cef9c6f..6be0494011f 100644 --- a/Mesh_3/include/CGAL/IO/File_medit.h +++ b/Mesh_3/include/CGAL/IO/File_medit.h @@ -25,11 +25,13 @@ #include #include +#include #include #include #include #include #include +#include #include diff --git a/Mesh_3/include/CGAL/Mesh_3/dihedral_angle_3.h b/Mesh_3/include/CGAL/Mesh_3/dihedral_angle_3.h index 315d3275090..5ce2397f297 100644 --- a/Mesh_3/include/CGAL/Mesh_3/dihedral_angle_3.h +++ b/Mesh_3/include/CGAL/Mesh_3/dihedral_angle_3.h @@ -40,27 +40,8 @@ dihedral_angle(const typename K::Point_3& a, const typename K::Point_3& d, K k = K()) { - typename K::Construct_vector_3 vector = k.construct_vector_3_object(); - typename K::Construct_cross_product_vector_3 cross_product = - k.construct_cross_product_vector_3_object(); - typename K::Compute_squared_distance_3 sq_distance = - k.compute_squared_distance_3_object(); - typename K::Compute_scalar_product_3 scalar_product = - k.compute_scalar_product_3_object(); - - typedef typename K::Vector_3 Vector_3; - typedef typename K::FT FT; - - const Vector_3 ab = vector(a,b); - const Vector_3 ac = vector(a,c); - const Vector_3 ad = vector(a,d); - - const Vector_3 abad = cross_product(ab,ad); - const double x = CGAL::to_double(scalar_product(cross_product(ab,ac), abad)); - const double l_ab = CGAL::sqrt(CGAL::to_double(sq_distance(a,b))); - const double y = l_ab * CGAL::to_double(scalar_product(ac,abad)); - - return FT(std::atan2(y, x) * 180 / CGAL_PI ); + // Now in the CGAL kernels + return k.compute_dihedral_angle_3_object()(a, b, c, d); } @@ -72,7 +53,9 @@ typename Kernel_traits::Kernel::FT dihedral_angle(const Point_3& a, const Point_3& b, const Point_3& c, const Point_3& d) { - return dihedral_angle(a, b, c, d, typename Kernel_traits::Kernel()); + return + CGAL::Mesh_3::dihedral_angle(a, b, c, d, + typename Kernel_traits::Kernel()); } } // end namespace Mesh_3 diff --git a/Mesh_3/include/CGAL/Mesh_3/min_dihedral_angle.h b/Mesh_3/include/CGAL/Mesh_3/min_dihedral_angle.h index 827429ca4e1..37bea23a133 100644 --- a/Mesh_3/include/CGAL/Mesh_3/min_dihedral_angle.h +++ b/Mesh_3/include/CGAL/Mesh_3/min_dihedral_angle.h @@ -21,8 +21,10 @@ #ifndef CGAL_MESH_3_MIN_DIHEDRAL_ANGLE_H #define CGAL_MESH_3_MIN_DIHEDRAL_ANGLE_H -#include #include +#include +#include +#include namespace CGAL { diff --git a/Mesh_3/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h b/Mesh_3/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h index b752b4cdf83..d9cf7808ef3 100644 --- a/Mesh_3/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h +++ b/Mesh_3/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h @@ -32,6 +32,8 @@ #include #include +#include + namespace CGAL { namespace Mesh_3 { diff --git a/Mesh_2/include/CGAL/Double_map.h b/Mesher_level/include/CGAL/Double_map.h similarity index 100% rename from Mesh_2/include/CGAL/Double_map.h rename to Mesher_level/include/CGAL/Double_map.h diff --git a/Mesh_2/include/CGAL/Mesh_2/Output_stream.h b/Mesher_level/include/CGAL/Mesh_2/Output_stream.h similarity index 100% rename from Mesh_2/include/CGAL/Mesh_2/Output_stream.h rename to Mesher_level/include/CGAL/Mesh_2/Output_stream.h diff --git a/Mesh_2/include/CGAL/Mesh_optimization_return_code.h b/Mesher_level/include/CGAL/Mesh_optimization_return_code.h similarity index 100% rename from Mesh_2/include/CGAL/Mesh_optimization_return_code.h rename to Mesher_level/include/CGAL/Mesh_optimization_return_code.h diff --git a/Mesh_2/include/CGAL/Mesher_level.h b/Mesher_level/include/CGAL/Mesher_level.h similarity index 100% rename from Mesh_2/include/CGAL/Mesher_level.h rename to Mesher_level/include/CGAL/Mesher_level.h diff --git a/Mesh_2/include/CGAL/Mesher_level_default_implementations.h b/Mesher_level/include/CGAL/Mesher_level_default_implementations.h similarity index 100% rename from Mesh_2/include/CGAL/Mesher_level_default_implementations.h rename to Mesher_level/include/CGAL/Mesher_level_default_implementations.h diff --git a/Mesh_2/include/CGAL/Mesher_level_visitors.h b/Mesher_level/include/CGAL/Mesher_level_visitors.h similarity index 100% rename from Mesh_2/include/CGAL/Mesher_level_visitors.h rename to Mesher_level/include/CGAL/Mesher_level_visitors.h diff --git a/Mesh_2/include/CGAL/Meshes/Double_map_container.h b/Mesher_level/include/CGAL/Meshes/Double_map_container.h similarity index 100% rename from Mesh_2/include/CGAL/Meshes/Double_map_container.h rename to Mesher_level/include/CGAL/Meshes/Double_map_container.h diff --git a/Mesh_2/include/CGAL/Meshes/Filtered_queue_container.h b/Mesher_level/include/CGAL/Meshes/Filtered_queue_container.h similarity index 100% rename from Mesh_2/include/CGAL/Meshes/Filtered_queue_container.h rename to Mesher_level/include/CGAL/Meshes/Filtered_queue_container.h diff --git a/Mesh_2/include/CGAL/Meshes/Simple_map_container.h b/Mesher_level/include/CGAL/Meshes/Simple_map_container.h similarity index 100% rename from Mesh_2/include/CGAL/Meshes/Simple_map_container.h rename to Mesher_level/include/CGAL/Meshes/Simple_map_container.h diff --git a/Mesh_2/include/CGAL/Meshes/Simple_queue_container.h b/Mesher_level/include/CGAL/Meshes/Simple_queue_container.h similarity index 100% rename from Mesh_2/include/CGAL/Meshes/Simple_queue_container.h rename to Mesher_level/include/CGAL/Meshes/Simple_queue_container.h diff --git a/Mesh_2/include/CGAL/Meshes/Simple_set_container.h b/Mesher_level/include/CGAL/Meshes/Simple_set_container.h similarity index 100% rename from Mesh_2/include/CGAL/Meshes/Simple_set_container.h rename to Mesher_level/include/CGAL/Meshes/Simple_set_container.h diff --git a/Mesh_2/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h b/Mesher_level/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h similarity index 100% rename from Mesh_2/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h rename to Mesher_level/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h diff --git a/Mesh_2/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h b/Mesher_level/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h similarity index 100% rename from Mesh_2/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h rename to Mesher_level/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h diff --git a/Mesher_level/package_info/Mesher_level/copyright b/Mesher_level/package_info/Mesher_level/copyright new file mode 100644 index 00000000000..8932b3233d2 --- /dev/null +++ b/Mesher_level/package_info/Mesher_level/copyright @@ -0,0 +1,2 @@ +INRIA Sophia-Antipolis (France) + diff --git a/Mesher_level/package_info/Mesher_level/description.txt b/Mesher_level/package_info/Mesher_level/description.txt new file mode 100644 index 00000000000..e9c0f149962 --- /dev/null +++ b/Mesher_level/package_info/Mesher_level/description.txt @@ -0,0 +1,3 @@ +Files used by the Mesher_level framework + +Used by both Mesh_2, Surface_mesher, and Mesh_3. diff --git a/Mesher_level/package_info/Mesher_level/license.txt b/Mesher_level/package_info/Mesher_level/license.txt new file mode 100644 index 00000000000..8bb8efcb72b --- /dev/null +++ b/Mesher_level/package_info/Mesher_level/license.txt @@ -0,0 +1 @@ +GPL (v3 or later) diff --git a/Mesher_level/package_info/Mesher_level/maintainer b/Mesher_level/package_info/Mesher_level/maintainer new file mode 100644 index 00000000000..37bffe51728 --- /dev/null +++ b/Mesher_level/package_info/Mesher_level/maintainer @@ -0,0 +1 @@ +Laurent Rineau diff --git a/Minkowski_sum_2/include/CGAL/Polygon_triangulation_decomposition_2.h b/Minkowski_sum_2/include/CGAL/Polygon_triangulation_decomposition_2.h index a37a817b7b4..25cc43af139 100644 --- a/Minkowski_sum_2/include/CGAL/Polygon_triangulation_decomposition_2.h +++ b/Minkowski_sum_2/include/CGAL/Polygon_triangulation_decomposition_2.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/Minkowski_sum_2/include/CGAL/Polygon_vertical_decomposition_2.h b/Minkowski_sum_2/include/CGAL/Polygon_vertical_decomposition_2.h index 013b3c2c83d..c3437e96106 100644 --- a/Minkowski_sum_2/include/CGAL/Polygon_vertical_decomposition_2.h +++ b/Minkowski_sum_2/include/CGAL/Polygon_vertical_decomposition_2.h @@ -18,14 +18,18 @@ #define CGAL_POLYGON_VERTICAL_DECOMPOSITION_2_H #include +#include #include #include +#include +#include #include #include namespace CGAL { + /*! * \class * Vertical decomposition strategy. diff --git a/Minkowski_sum_2/include/CGAL/Small_side_angle_bisector_decomposition_2.h b/Minkowski_sum_2/include/CGAL/Small_side_angle_bisector_decomposition_2.h index 4fbabb1f7e7..79dd00027a4 100644 --- a/Minkowski_sum_2/include/CGAL/Small_side_angle_bisector_decomposition_2.h +++ b/Minkowski_sum_2/include/CGAL/Small_side_angle_bisector_decomposition_2.h @@ -20,6 +20,7 @@ #define CGAL_SMALL_SIDE_ANGLE_BISECTOR_DECOMPOSITION_2_H #include +#include #include #include diff --git a/Nef_3/include/CGAL/Nef_3/ID_support_handler.h b/Nef_3/include/CGAL/Nef_3/ID_support_handler.h index 7e3e458cdf1..9466321fbef 100644 --- a/Nef_3/include/CGAL/Nef_3/ID_support_handler.h +++ b/Nef_3/include/CGAL/Nef_3/ID_support_handler.h @@ -18,9 +18,10 @@ // // Author(s) : Peter Hachenberger -#ifndef CGAL_ID_SUPPORT_HANDLER -#define CGAL_ID_SUPPORT_HANDLER +#ifndef CGAL_NEF_3_ID_SUPPORT_HANDLER +#define CGAL_NEF_3_ID_SUPPORT_HANDLER +#include #include #include #include @@ -31,84 +32,6 @@ namespace CGAL { -template -class ID_support_handler { - - typedef typename Decorator::SVertex_handle SVertex_handle; - typedef typename Decorator::SHalfedge_handle SHalfedge_handle; - - typedef typename Decorator::SVertex_const_handle SVertex_const_handle; - typedef typename Decorator::SHalfedge_const_handle SHalfedge_const_handle; - typedef typename Decorator::SHalfloop_const_handle SHalfloop_const_handle; - - public: - ID_support_handler() {} - - int get_hash(int) { return 0; } - template void initialize_hash(Handle /*h*/) {} - void initialize_hash(int /*i*/) {} - void handle_support(SVertex_handle , - SHalfedge_const_handle , - SHalfedge_const_handle ) {} - - void handle_support(SVertex_handle , - SHalfloop_const_handle , - SHalfloop_const_handle ) {} - - void handle_support(SVertex_handle, - SHalfloop_const_handle, - SHalfedge_const_handle) {} - - void handle_support(SVertex_handle, - SHalfedge_const_handle, - SHalfloop_const_handle) {} - - void handle_support(SVertex_handle, - SHalfedge_const_handle, - SVertex_const_handle) {} - - void handle_support(SVertex_handle, - SVertex_const_handle, - SHalfedge_const_handle) {} - - void handle_support(SVertex_handle, - SVertex_const_handle, - SVertex_const_handle) {} - - void handle_support(SVertex_handle, - SVertex_const_handle) {} - - void handle_support(SVertex_handle, - SVertex_const_handle, - SHalfloop_const_handle) {} - - void handle_support(SVertex_handle, - SHalfloop_const_handle, - SVertex_const_handle) {} - - void handle_support(SHalfedge_handle, - SHalfedge_const_handle, - SHalfedge_const_handle) {} - - void handle_support(SHalfedge_handle, - SHalfedge_const_handle) {} - - void handle_support(SHalfedge_handle, - SHalfloop_const_handle) {} - - void handle_support(SHalfedge_handle, - SHalfedge_const_handle, - SHalfloop_const_handle) {} - - void handle_support(SHalfedge_handle, - SHalfloop_const_handle, - SHalfedge_const_handle) {} - - void handle_support(SHalfedge_handle, - SHalfloop_const_handle, - SHalfloop_const_handle) {} -}; - template class ID_support_handler { @@ -426,4 +349,4 @@ class ID_support_handler { }; } //namespace CGAL -#endif // CGAL_ID_SUPPORT_HANDLER +#endif // CGAL_NEF_3_ID_SUPPORT_HANDLER diff --git a/Nef_3/include/CGAL/Nef_3/Polygon_constructor.h b/Nef_3/include/CGAL/Nef_3/Polygon_constructor.h index 350d337baed..90547ea0a99 100644 --- a/Nef_3/include/CGAL/Nef_3/Polygon_constructor.h +++ b/Nef_3/include/CGAL/Nef_3/Polygon_constructor.h @@ -21,6 +21,11 @@ #ifndef CGAL_NEF_POLYGON_CONSTRUCTOR_H #define CGAL_NEF_POLYGON_CONSTRUCTOR_H +#include +#include +#include +#include + namespace CGAL { template diff --git a/Nef_3/include/CGAL/Nef_3/Vertex.h b/Nef_3/include/CGAL/Nef_3/Vertex.h index 1e9792c009e..1064fd5ea87 100644 --- a/Nef_3/include/CGAL/Nef_3/Vertex.h +++ b/Nef_3/include/CGAL/Nef_3/Vertex.h @@ -26,6 +26,7 @@ #include #include +#include #include #include diff --git a/Nef_S2/include/CGAL/Nef_S2/ID_support_handler.h b/Nef_S2/include/CGAL/Nef_S2/ID_support_handler.h new file mode 100644 index 00000000000..1d1b4b99ceb --- /dev/null +++ b/Nef_S2/include/CGAL/Nef_S2/ID_support_handler.h @@ -0,0 +1,113 @@ +// Copyright (c) 1997-2002 Max-Planck-Institute Saarbruecken (Germany). +// 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 +// General Public License as published by the Free Software Foundation, +// either 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$ +// +// +// Author(s) : Peter Hachenberger + +#ifndef CGAL_NEF_S2_ID_SUPPORT_HANDLER +#define CGAL_NEF_S2_ID_SUPPORT_HANDLER + +#include +#include + +#undef CGAL_NEF_DEBUG +#define CGAL_NEF_DEBUG 131 +#include + +namespace CGAL { + +template +class ID_support_handler { + + typedef typename Decorator::SVertex_handle SVertex_handle; + typedef typename Decorator::SHalfedge_handle SHalfedge_handle; + + typedef typename Decorator::SVertex_const_handle SVertex_const_handle; + typedef typename Decorator::SHalfedge_const_handle SHalfedge_const_handle; + typedef typename Decorator::SHalfloop_const_handle SHalfloop_const_handle; + + public: + ID_support_handler() {} + + int get_hash(int) { return 0; } + template void initialize_hash(Handle /*h*/) {} + void initialize_hash(int /*i*/) {} + void handle_support(SVertex_handle , + SHalfedge_const_handle , + SHalfedge_const_handle ) {} + + void handle_support(SVertex_handle , + SHalfloop_const_handle , + SHalfloop_const_handle ) {} + + void handle_support(SVertex_handle, + SHalfloop_const_handle, + SHalfedge_const_handle) {} + + void handle_support(SVertex_handle, + SHalfedge_const_handle, + SHalfloop_const_handle) {} + + void handle_support(SVertex_handle, + SHalfedge_const_handle, + SVertex_const_handle) {} + + void handle_support(SVertex_handle, + SVertex_const_handle, + SHalfedge_const_handle) {} + + void handle_support(SVertex_handle, + SVertex_const_handle, + SVertex_const_handle) {} + + void handle_support(SVertex_handle, + SVertex_const_handle) {} + + void handle_support(SVertex_handle, + SVertex_const_handle, + SHalfloop_const_handle) {} + + void handle_support(SVertex_handle, + SHalfloop_const_handle, + SVertex_const_handle) {} + + void handle_support(SHalfedge_handle, + SHalfedge_const_handle, + SHalfedge_const_handle) {} + + void handle_support(SHalfedge_handle, + SHalfedge_const_handle) {} + + void handle_support(SHalfedge_handle, + SHalfloop_const_handle) {} + + void handle_support(SHalfedge_handle, + SHalfedge_const_handle, + SHalfloop_const_handle) {} + + void handle_support(SHalfedge_handle, + SHalfloop_const_handle, + SHalfedge_const_handle) {} + + void handle_support(SHalfedge_handle, + SHalfloop_const_handle, + SHalfloop_const_handle) {} +}; + + +} //namespace CGAL +#endif // CGAL_NEF_S2_ID_SUPPORT_HANDLER diff --git a/Nef_S2/include/CGAL/Nef_S2/SM_overlayer.h b/Nef_S2/include/CGAL/Nef_S2/SM_overlayer.h index d677995d531..236f502a292 100644 --- a/Nef_S2/include/CGAL/Nef_S2/SM_overlayer.h +++ b/Nef_S2/include/CGAL/Nef_S2/SM_overlayer.h @@ -35,7 +35,7 @@ #include #include #include -#include +#include #undef CGAL_NEF_DEBUG #define CGAL_NEF_DEBUG 131 #include diff --git a/Number_types/include/CGAL/GMP/Gmpfi_type.h b/Number_types/include/CGAL/GMP/Gmpfi_type.h index 70997831269..85f993d3cac 100644 --- a/Number_types/include/CGAL/GMP/Gmpfi_type.h +++ b/Number_types/include/CGAL/GMP/Gmpfi_type.h @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include diff --git a/Number_types/include/CGAL/double.h b/Number_types/include/CGAL/double.h index ff2ba81954a..6f7339d89ff 100644 --- a/Number_types/include/CGAL/double.h +++ b/Number_types/include/CGAL/double.h @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include // for nextafter diff --git a/Number_types/include/CGAL/int.h b/Number_types/include/CGAL/int.h index e90c6b74df8..071b20b011e 100644 --- a/Number_types/include/CGAL/int.h +++ b/Number_types/include/CGAL/int.h @@ -28,9 +28,12 @@ #include #include +#include namespace CGAL { + + namespace INTERN_INT { template< class Type > class Is_square_per_double_conversion diff --git a/OpenNL/include/CGAL/OpenNL/bicgstab.h b/OpenNL/include/CGAL/OpenNL/bicgstab.h index 4d323bcd222..772f2456a6f 100644 --- a/OpenNL/include/CGAL/OpenNL/bicgstab.h +++ b/OpenNL/include/CGAL/OpenNL/bicgstab.h @@ -45,6 +45,7 @@ #include #include #include +#include namespace OpenNL { diff --git a/OpenNL/include/CGAL/OpenNL/blas.h b/OpenNL/include/CGAL/OpenNL/blas.h index b5aa3722848..ab13b260452 100644 --- a/OpenNL/include/CGAL/OpenNL/blas.h +++ b/OpenNL/include/CGAL/OpenNL/blas.h @@ -37,6 +37,8 @@ #ifndef __OPENNL_BLAS__ #define __OPENNL_BLAS__ +#include + namespace OpenNL { 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 ac8c322f686..dfe431002e9 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 @@ -4845,8 +4845,9 @@ operator!=(const Periodic_2_triangulation_2 &t1, return ! (t1 == t2); } +#define CGAL_INCLUDE_FROM_PERIODIC_2_TRIANGULATION_2_H #include - +#undef CGAL_INCLUDE_FROM_PERIODIC_2_TRIANGULATION_2_H } //namespace CGAL 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 7bc4fa51ccf..2195f842151 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 @@ -17,8 +17,7 @@ // // Author(s) : Nico Kruithof -#ifndef CGAL_PERIODIC_2_TRIANGULATION_DUMMY_12_H -#define CGAL_PERIODIC_2_TRIANGULATION_DUMMY_12_H +#ifdef CGAL_INCLUDE_FROM_PERIODIC_2_TRIANGULATION_2_H #include @@ -165,4 +164,4 @@ Periodic_2_triangulation_2::insert_dummy_points() return ret_vector; } -#endif // CGAL_PERIODIC_2_TRIANGULATION_DUMMY_12_H +#endif // CGAL_INCLUDE_FROM_PERIODIC_2_TRIANGULATION_2_H 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 7e07efe5382..7b7dd93be68 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 @@ -2424,8 +2424,9 @@ std::vector(); } return vir_vertices[0][0][0]; } - +#define CGAL_INCLUDE_FROM_PERIODIC_3_TRIANGULATION_3_H #include +#undef CGAL_INCLUDE_FROM_PERIODIC_3_TRIANGULATION_3_H /** finds all cells that are in conflict with the currently added point * (stored in tester). diff --git a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_dummy_36.h b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_dummy_36.h index 2179f1754b5..c1fbf9c565d 100644 --- a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_dummy_36.h +++ b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_dummy_36.h @@ -18,8 +18,8 @@ // // Author(s) : Manuel Caroli -#ifndef CGAL_PERIODIC_3_TRIANGULATION_DUMMY_36_H -#define CGAL_PERIODIC_3_TRIANGULATION_DUMMY_36_H +#ifdef CGAL_INCLUDE_FROM_PERIODIC_3_TRIANGULATION_3_H + template < class GT, class TDS > inline std::vector::Vertex_handle > @@ -754,4 +754,4 @@ Periodic_3_triangulation_3::insert_dummy_points() { return ret_vector; } -#endif // CGAL_PERIODIC_3_TRIANGULATION_DUMMY_36_H +#endif // CGAL_INCLUDE_FROM_PERIODIC_3_TRIANGULATION_3_H diff --git a/Point_set_processing_3/include/CGAL/IO/read_off_points.h b/Point_set_processing_3/include/CGAL/IO/read_off_points.h index e03e01e4654..90da4c917d4 100644 --- a/Point_set_processing_3/include/CGAL/IO/read_off_points.h +++ b/Point_set_processing_3/include/CGAL/IO/read_off_points.h @@ -20,9 +20,12 @@ #ifndef CGAL_READ_OFF_POINTS_H #define CGAL_READ_OFF_POINTS_H +#include #include #include +#include #include +#include #include #include diff --git a/Point_set_processing_3/include/CGAL/IO/read_xyz_points.h b/Point_set_processing_3/include/CGAL/IO/read_xyz_points.h index c30fbff3bff..dbe7c58e891 100644 --- a/Point_set_processing_3/include/CGAL/IO/read_xyz_points.h +++ b/Point_set_processing_3/include/CGAL/IO/read_xyz_points.h @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include #include diff --git a/Point_set_processing_3/include/CGAL/IO/write_xyz_points.h b/Point_set_processing_3/include/CGAL/IO/write_xyz_points.h index 4134d8b88e0..4fbc1f2e813 100644 --- a/Point_set_processing_3/include/CGAL/IO/write_xyz_points.h +++ b/Point_set_processing_3/include/CGAL/IO/write_xyz_points.h @@ -22,6 +22,7 @@ #include #include +#include #include #include diff --git a/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h b/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h index 6e5487e1611..db5219da5e2 100644 --- a/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h +++ b/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h @@ -25,6 +25,7 @@ #include #include #include +#include #include #include diff --git a/Point_set_processing_3/include/CGAL/hierarchy_simplify_point_set.h b/Point_set_processing_3/include/CGAL/hierarchy_simplify_point_set.h index c2fb82989d4..cd51226789c 100644 --- a/Point_set_processing_3/include/CGAL/hierarchy_simplify_point_set.h +++ b/Point_set_processing_3/include/CGAL/hierarchy_simplify_point_set.h @@ -32,6 +32,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Point_set_processing_3/include/CGAL/internal/Rich_grid.h b/Point_set_processing_3/include/CGAL/internal/Rich_grid.h index 57dbd681f55..efbfb1f9508 100644 --- a/Point_set_processing_3/include/CGAL/internal/Rich_grid.h +++ b/Point_set_processing_3/include/CGAL/internal/Rich_grid.h @@ -26,6 +26,7 @@ #include #include #include +#include #include #include diff --git a/Point_set_processing_3/include/CGAL/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h b/Point_set_processing_3/include/CGAL/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h index 89b722e0f8d..8bc4bf16696 100644 --- a/Point_set_processing_3/include/CGAL/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h +++ b/Point_set_processing_3/include/CGAL/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h @@ -18,11 +18,12 @@ // Author(s) : Jocelyn Meyron and Quentin Mérigot // -#ifndef CGAL_INTERNAL_VCM_VORONOI_COVARIANCE_SPHERE_3_HPP -#define CGAL_INTERNAL_VCM_VORONOI_COVARIANCE_SPHERE_3_HPP +#ifndef CGAL_INTERNAL_VCM_VORONOI_COVARIANCE_SPHERE_3_H +#define CGAL_INTERNAL_VCM_VORONOI_COVARIANCE_SPHERE_3_H #include #include +#include /// \cond SKIP_IN_MANUAL @@ -32,15 +33,15 @@ namespace CGAL { class Sphere_discretization { typedef typename K::FT FT; - FT _R; - size_t _N; + FT R; + std::size_t N; public: - Sphere_discretization (FT R, size_t N = 20) : - _R(R), _N(N) + Sphere_discretization (FT R, std::size_t N = 20) : + R(R), N(N) { - if (_N != 8 && _N != 20) - _N = 20; + if (N != 8 && N != 20) + N = 20; } template @@ -49,55 +50,55 @@ namespace CGAL { { typedef typename K::Plane_3 Plane; - if (_N == 8) + if (N == 8) { static const FT phi = (FT(1) + std::sqrt(5.0))/FT(2); static const FT s = FT(1) / std::sqrt(phi + FT(2)); - *out ++ = Plane(0, +s, +s*phi, -_R); - *out ++ = Plane(0, -s, +s*phi, -_R); - *out ++ = Plane(0, +s, -s*phi, -_R); - *out ++ = Plane(0, -s, -s*phi, -_R); + *out ++ = Plane(0, +s, +s*phi, -R); + *out ++ = Plane(0, -s, +s*phi, -R); + *out ++ = Plane(0, +s, -s*phi, -R); + *out ++ = Plane(0, -s, -s*phi, -R); - *out ++ = Plane(+s, +s*phi, 0, -_R); - *out ++ = Plane(+s, -s*phi, 0, -_R); - *out ++ = Plane(-s, +s*phi, 0, -_R); - *out ++ = Plane(-s, -s*phi, 0, -_R); + *out ++ = Plane(+s, +s*phi, 0, -R); + *out ++ = Plane(+s, -s*phi, 0, -R); + *out ++ = Plane(-s, +s*phi, 0, -R); + *out ++ = Plane(-s, -s*phi, 0, -R); - *out ++ = Plane(+s*phi, 0, +s, -_R); - *out ++ = Plane(-s*phi, 0, +s, -_R); - *out ++ = Plane(+s*phi, 0, -s, -_R); - *out ++ = Plane(-s*phi, 0, -s, -_R); + *out ++ = Plane(+s*phi, 0, +s, -R); + *out ++ = Plane(-s*phi, 0, +s, -R); + *out ++ = Plane(+s*phi, 0, -s, -R); + *out ++ = Plane(-s*phi, 0, -s, -R); } - else if (_N == 20) + else if (N == 20) { const FT phi = (FT(1) + std::sqrt(5.0))/FT(2); const FT one_phi = FT(1)/phi; const FT s = FT(1) / std::sqrt(3.0); - *out ++ = Plane(+s, +s, +s, -_R); - *out ++ = Plane(-s, +s, +s, -_R); - *out ++ = Plane(+s, -s, +s, -_R); - *out ++ = Plane(-s, -s, +s, -_R); - *out ++ = Plane(+s, +s, -s, -_R); - *out ++ = Plane(-s, +s, -s, -_R); - *out ++ = Plane(+s, -s, -s, -_R); - *out ++ = Plane(-s, -s, -s, -_R); + *out ++ = Plane(+s, +s, +s, -R); + *out ++ = Plane(-s, +s, +s, -R); + *out ++ = Plane(+s, -s, +s, -R); + *out ++ = Plane(-s, -s, +s, -R); + *out ++ = Plane(+s, +s, -s, -R); + *out ++ = Plane(-s, +s, -s, -R); + *out ++ = Plane(+s, -s, -s, -R); + *out ++ = Plane(-s, -s, -s, -R); - *out ++ = Plane(0, +s*one_phi, +s*phi, -_R); - *out ++ = Plane(0, -s*one_phi, +s*phi, -_R); - *out ++ = Plane(0, +s*one_phi, -s*phi, -_R); - *out ++ = Plane(0, -s*one_phi, -s*phi, -_R); + *out ++ = Plane(0, +s*one_phi, +s*phi, -R); + *out ++ = Plane(0, -s*one_phi, +s*phi, -R); + *out ++ = Plane(0, +s*one_phi, -s*phi, -R); + *out ++ = Plane(0, -s*one_phi, -s*phi, -R); - *out ++ = Plane(+s*one_phi, +s*phi, 0, -_R); - *out ++ = Plane(-s*one_phi, +s*phi, 0, -_R); - *out ++ = Plane(+s*one_phi, -s*phi, 0, -_R); - *out ++ = Plane(-s*one_phi, -s*phi, 0, -_R); + *out ++ = Plane(+s*one_phi, +s*phi, 0, -R); + *out ++ = Plane(-s*one_phi, +s*phi, 0, -R); + *out ++ = Plane(+s*one_phi, -s*phi, 0, -R); + *out ++ = Plane(-s*one_phi, -s*phi, 0, -R); - *out ++ = Plane(+s*phi, 0, +s*one_phi, -_R); - *out ++ = Plane(-s*phi, 0, +s*one_phi, -_R); - *out ++ = Plane(+s*phi, 0, -s*one_phi, -_R); - *out ++ = Plane(-s*phi, 0, -s*one_phi, -_R); + *out ++ = Plane(+s*phi, 0, +s*one_phi, -R); + *out ++ = Plane(-s*phi, 0, +s*one_phi, -R); + *out ++ = Plane(+s*phi, 0, -s*one_phi, -R); + *out ++ = Plane(-s*phi, 0, -s*one_phi, -R); } } }; @@ -107,5 +108,5 @@ namespace CGAL { /// \endcond -#endif // CGAL_INTERNAL_VCM_VORONOI_COVARIANCE_SPHERE_3_HPP +#endif // CGAL_INTERNAL_VCM_VORONOI_COVARIANCE_SPHERE_3_H diff --git a/Point_set_shape_detection_3/include/CGAL/Shape_detection_3/Shape_base.h b/Point_set_shape_detection_3/include/CGAL/Shape_detection_3/Shape_base.h index a76b127cd1b..9c6f9d36367 100644 --- a/Point_set_shape_detection_3/include/CGAL/Shape_detection_3/Shape_base.h +++ b/Point_set_shape_detection_3/include/CGAL/Shape_detection_3/Shape_base.h @@ -24,12 +24,14 @@ #include #include +#include #include #include #include #include #include #include +#include /*! \file Shape_base.h diff --git a/Point_set_shape_detection_3/include/CGAL/regularize_planes.h b/Point_set_shape_detection_3/include/CGAL/regularize_planes.h index df2234e4d37..12b892cce83 100644 --- a/Point_set_shape_detection_3/include/CGAL/regularize_planes.h +++ b/Point_set_shape_detection_3/include/CGAL/regularize_planes.h @@ -31,6 +31,7 @@ #include #include +#include #include diff --git a/Polygon/doc/Polygon/Concepts/GeneralPolygonWithHoles_2.h b/Polygon/doc/Polygon/Concepts/GeneralPolygonWithHoles_2.h new file mode 100644 index 00000000000..6291a2bb62b --- /dev/null +++ b/Polygon/doc/Polygon/Concepts/GeneralPolygonWithHoles_2.h @@ -0,0 +1,90 @@ + +/*! +\ingroup PkgPolygon2Concepts +\cgalConcept + +\cgalRefines `DefaultConstructible` +\cgalRefines `CopyConstructible` +\cgalRefines `Assignable` + + +A model of this concept represents a general polygon with holes. The +concept requires the ability to access the general polygon that +represents the outer boundary and the general polygons that represent +the holes. + +\cgalHasModel `CGAL::General_polygon_with_holes_2` +\cgalHasModel `CGAL::Polygon_with_holes_2` + +*/ + +class GeneralPolygonWithHoles_2 { +public: + +/// \name Types +/// @{ + +/*! +the general-polygon type used to represent the outer boundary and each hole. +*/ +typedef unspecified_type General_polygon_2; + +/*! +a bidirectional iterator +over the polygonal holes. Its value type is +`General_polygon_2`. +*/ +typedef unspecified_type Hole_const_iterator; + +/// @} + +/// \name Creation +/// @{ + +/*! +constructs a general polygon with holes using a given general polygon +`outer` as the outer boundary and a given range of holes. If `outer` +is an empty general polygon, then an unbounded polygon with holes will be +created. The holes must be contained inside the outer boundary, and the +polygons representing the holes must be simple and pairwise disjoint, except +perhaps at the vertices. +*/ +template +GeneralPolygonWithHoles_2(General_polygon_2 & outer, +InputIterator begin, InputIterator end); + +/// @} + +/// \name Predicates +/// @{ + +/*! +returns `true` if the outer boundary is empty, and `false` +otherwise. +*/ +bool is_unbounded(); + +/// @} + +/// \name Access Functions +/// @{ + +/*! +returns the general polygon that represents the outer boundary. Note that this polygon is not necessarily a valid (simple) general polygon because it may be relatively simple. +*/ +const General_polygon_2 & outer_boundary() const; + +/*! +returns the begin iterator of the holes. +*/ +Hole_const_iterator holes_begin() const; + +/*! +returns the past-the-end iterator of the holes. +*/ +Hole_const_iterator holes_end() const; + +/// @} + +}; /* end GeneralPolygonWithHoles_2 */ + diff --git a/Polygon/doc/Polygon/PackageDescription.txt b/Polygon/doc/Polygon/PackageDescription.txt index 058d913b32a..bc26a7e109c 100644 --- a/Polygon/doc/Polygon/PackageDescription.txt +++ b/Polygon/doc/Polygon/PackageDescription.txt @@ -33,9 +33,11 @@ The assertion flags for the polygons and polygon operations use ## Concepts ## - `PolygonTraits_2` +- `GeneralPolygonWithHoles_2` ## Classes ## - `CGAL::Polygon_2` +- `CGAL::Polygon_with_holes_2` ## Global Functions ## - `CGAL::area_2()` diff --git a/Boolean_set_operations_2/include/CGAL/General_polygon_with_holes_2.h b/Polygon/include/CGAL/General_polygon_with_holes_2.h similarity index 63% rename from Boolean_set_operations_2/include/CGAL/General_polygon_with_holes_2.h rename to Polygon/include/CGAL/General_polygon_with_holes_2.h index 82d9cf4cf71..e22667a12bd 100644 --- a/Boolean_set_operations_2/include/CGAL/General_polygon_with_holes_2.h +++ b/Polygon/include/CGAL/General_polygon_with_holes_2.h @@ -1,10 +1,14 @@ -// Copyright (c) 2005 Tel-Aviv University (Israel). -// All rights reserved. +// Copyright (c) 2005 +// Utrecht University (The Netherlands), +// ETH Zurich (Switzerland), +// INRIA Sophia-Antipolis (France), +// Max-Planck-Institute Saarbruecken (Germany), +// and Tel-Aviv University (Israel). 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 -// General Public License as published by the Free Software Foundation, -// either version 3 of the License, or (at your option) any later version. +// 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; either 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. @@ -14,7 +18,7 @@ // // $URL$ // $Id$ -// +// // // Author(s) : Baruch Zukerman @@ -27,14 +31,30 @@ namespace CGAL { +/*! +\ingroup PkgPolygon2 + +The class `General_polygon_with_holes_2` models the concept +`GeneralPolygonWithHoles_2`. It represents a general polygon with +holes. It is parameterized with a type `Polygon` used to define +the exposed type `General_polygon_2`. This type represents the +outer boundary of the general polygon and the outer boundaries of +each hole. + +\cgalModels `GeneralPolygonWithHoles_2` + +*/ template class General_polygon_with_holes_2 { - public: - typedef General_polygon_with_holes_2 Self; - typedef Polygon_ Polygon_2; - typedef typename Self::Polygon_2 General_polygon_2; + +/// \name Definition + +/// @{ + typedef Polygon_ General_polygon_2; +/// @} + typedef std::list Holes_container; typedef typename Holes_container::iterator Hole_iterator; @@ -46,7 +66,7 @@ public: {} - explicit General_polygon_with_holes_2(const General_polygon_2& pgn_boundary) + explicit General_polygon_with_holes_2(const General_polygon_2& pgn_boundary) : m_pgn(pgn_boundary) {} @@ -136,7 +156,24 @@ protected: //-----------------------------------------------------------------------// // operator<< //-----------------------------------------------------------------------// +/*! +This operator exports a General_polygon_with_holes_2 to the output stream `out`. +An ASCII and a binary format exist. The format can be selected with +the \cgal modifiers for streams, `set_ascii_mode(0` and `set_binary_mode()` +respectively. The modifier `set_pretty_mode()` can be used to allow for (a +few) structuring comments in the output. Otherwise, the output would +be free of comments. The default for writing is ASCII without +comments. + +The number of curves of the outer boundary is exported followed by the +curves themselves in counterclockwise order. Then, the number of holes +is exported, and for each hole, the number of curves on its outer +boundary is exported followed by the curves themselves in clockwise +order. + +\relates General_polygon_with_holes_2 +*/ template std::ostream &operator<<(std::ostream &os, const General_polygon_with_holes_2& p) @@ -157,7 +194,7 @@ std::ostream os << *hit; } return os; - + default: os << "General_polygon_with_holes_2( " << std::endl; @@ -173,6 +210,20 @@ std::ostream // operator>> //-----------------------------------------------------------------------// +/*! +This operator imports a General_polygon_with_holes_2 from the input stream `in`. + +An ASCII and a binary format exist. The stream detects the format +automatically and can read both. + +The format consists of the number of curves of the outer boundary +followed by the curves themselves in counterclockwise order, followed +by the number of holes, and for each hole, the number of curves on its +outer boundary is followed by the curves themselves in clockwise +order. + +\relates General_polygon_with_holes_2 +*/ template std::istream &operator>>(std::istream &is, General_polygon_with_holes_2& p) { @@ -181,16 +232,16 @@ std::istream &operator>>(std::istream &is, General_polygon_with_holes_2> n_holes; - if (is) + if (is) { Polygon_ pgn_hole; - for (unsigned int i=0; i> pgn_hole; p.add_hole(pgn_hole); } } - + return is; } diff --git a/Polygon/include/CGAL/Polygon_2.h b/Polygon/include/CGAL/Polygon_2.h index 46615498896..7623916b0a5 100644 --- a/Polygon/include/CGAL/Polygon_2.h +++ b/Polygon/include/CGAL/Polygon_2.h @@ -30,7 +30,7 @@ #ifndef CGAL_POLYGON_2_H #define CGAL_POLYGON_2_H -#include +#include #include #include #include diff --git a/Polygon/include/CGAL/Polygon_2_algorithms.h b/Polygon/include/CGAL/Polygon_2_algorithms.h index 9cffa529cae..2eb9ec98ca8 100644 --- a/Polygon/include/CGAL/Polygon_2_algorithms.h +++ b/Polygon/include/CGAL/Polygon_2_algorithms.h @@ -29,7 +29,7 @@ #ifndef CGAL_POLYGON_2_ALGORITHMS_H #define CGAL_POLYGON_2_ALGORITHMS_H -#include +#include #include #include #include diff --git a/Polygon/include/CGAL/Polygon_traits_2.h b/Polygon/include/CGAL/Polygon_traits_2.h index 06b2e761559..c4f29439521 100644 --- a/Polygon/include/CGAL/Polygon_traits_2.h +++ b/Polygon/include/CGAL/Polygon_traits_2.h @@ -27,7 +27,7 @@ // For backward compatibility only. -#include +#include namespace CGAL { diff --git a/Boolean_set_operations_2/include/CGAL/Polygon_with_holes_2.h b/Polygon/include/CGAL/Polygon_with_holes_2.h similarity index 71% rename from Boolean_set_operations_2/include/CGAL/Polygon_with_holes_2.h rename to Polygon/include/CGAL/Polygon_with_holes_2.h index 64a9f2b69d9..42d8eee11af 100644 --- a/Boolean_set_operations_2/include/CGAL/Polygon_with_holes_2.h +++ b/Polygon/include/CGAL/Polygon_with_holes_2.h @@ -1,10 +1,14 @@ -// Copyright (c) 2005 Tel-Aviv University (Israel). -// All rights reserved. +// Copyright (c) 2005 +// Utrecht University (The Netherlands), +// ETH Zurich (Switzerland), +// INRIA Sophia-Antipolis (France), +// Max-Planck-Institute Saarbruecken (Germany), +// and Tel-Aviv University (Israel). 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 -// General Public License as published by the Free Software Foundation, -// either version 3 of the License, or (at your option) any later version. +// 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; either 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. @@ -14,7 +18,7 @@ // // $URL$ // $Id$ -// +// // // Author(s) : Baruch Zukerman @@ -28,9 +32,21 @@ namespace CGAL { +/*! +\ingroup PkgPolygon2 + +The class `Polygon_with_holes_2` models the concept `GeneralPolygonWithHoles_2`. +It represents a linear polygon with holes. It is parameterized with two +types (`Kernel` and `Container`) that are used to instantiate +the type `Polygon_2`. The latter is used to +represents the outer boundary and the boundary of the holes (if any exist). + +\cgalModels `GeneralPolygonWithHoles_2` + +*/ template > -class Polygon_with_holes_2 : +class Polygon_with_holes_2 : public General_polygon_with_holes_2 > { public: @@ -41,17 +57,17 @@ public: typedef typename Base::Size Size; /*! Default constructor. */ - Polygon_with_holes_2 () : + Polygon_with_holes_2 () : Base() {} /*! Constructor from the base class. */ - Polygon_with_holes_2 (const Base& base) : + Polygon_with_holes_2 (const Base& base) : Base (base) {} /*! Constructor from a polygon. */ - explicit Polygon_with_holes_2 (const Polygon_2& pgn_boundary) : + explicit Polygon_with_holes_2 (const Polygon_2& pgn_boundary) : Base (pgn_boundary) {} @@ -59,18 +75,36 @@ public: template Polygon_with_holes_2 (const Polygon_2& pgn_boundary, HolesInputIterator h_begin, - HolesInputIterator h_end) : + HolesInputIterator h_end) : Base (pgn_boundary, h_begin, h_end) {} /*! Obtain the bounding box of the polygon with holes */ - Bbox_2 bbox() const { return this->outer_boundary().bbox(); } + Bbox_2 bbox() const { return this->outer_boundary().bbox(); } }; //-----------------------------------------------------------------------// // operator<< //-----------------------------------------------------------------------// +/*! +This operator exports a polygon with holes to the output stream `out`. + +An ASCII and a binary format exist. The format can be selected with +the \cgal modifiers for streams, `set_ascii_mode()` and `set_binary_mode()` +respectively. The modifier `set_pretty_mode()` can be used to allow for (a +few) structuring comments in the output. Otherwise, the output would +be free of comments. The default for writing is ASCII without +comments. + +The number of points of the outer boundary is exported followed by the +points themselves in counterclockwise order. Then, the number of holes +is exported, and for each hole, the number of points on its outer +boundary is exported followed by the points themselves in clockwise +order. + +\relates Polygon_with_holes_2 +*/ template std::ostream& operator<<(std::ostream &os, const Polygon_with_holes_2& p) @@ -117,6 +151,19 @@ std::ostream& operator<<(std::ostream &os, // operator>> //-----------------------------------------------------------------------// +/*! +This operator imports a polygon with holes from the input stream `in`. + +An ASCII and a binary format exist. The stream detects the format +automatically and can read both. + +The format consists of the number of points of the outer boundary followed +by the points themselves in counterclockwise order, followed by the number of holes, +and for each hole, the number of points of the outer boundary is followed +by the points themselves in clockwise order. + +\relates Polygon_with_holes_2 +*/ template std::istream &operator>>(std::istream &is, Polygon_with_holes_2& p) @@ -148,7 +195,7 @@ template bool operator==(const Polygon_with_holes_2& p1, const Polygon_with_holes_2& p2) { - typedef typename + typedef typename Polygon_with_holes_2::Hole_const_iterator HCI; typedef CGAL::Polygon_2 Polygon_2; if(&p1 == &p2) diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h index 24ba8208117..6cd8dfb5ff9 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h @@ -21,13 +21,14 @@ #ifndef CGAL_HOLE_FILLING_TRIANGULATE_HOLE_POLYLINE_H #define CGAL_HOLE_FILLING_TRIANGULATE_HOLE_POLYLINE_H -#include #include #include #include #include #include #include +#include +#include #include #include @@ -247,14 +248,14 @@ private: // check whether the edge is border if( (v0 + 1 == v1 || (v0 == n-1 && v1 == 0) ) && !Q.empty() ) { angle = 180 - CGAL::abs( - to_double(CGAL::Mesh_3::dihedral_angle(P[v0],P[v1],P[v_other],Q[v0])) ); + to_double(CGAL::dihedral_angle(P[v0],P[v1],P[v_other],Q[v0])) ); } else { if(e == 2) { continue; } if(lambda.get(v0, v1) != -1){ const Point_3& p01 = P[lambda.get(v0, v1)]; angle = 180 - CGAL::abs( - to_double(CGAL::Mesh_3::dihedral_angle(P[v0],P[v1],P[v_other],p01)) ); + to_double(CGAL::dihedral_angle(P[v0],P[v1],P[v_other],p01)) ); } } ang_max = (std::max)(ang_max, angle); diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h index 45ce002a951..ac2ffb53d2c 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h @@ -22,6 +22,7 @@ #define CGAL_NAMED_PARAMETERS_HELPERS_H #include +#include #include #include diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h index 088ec2c61c0..8538aeed873 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h @@ -31,6 +31,7 @@ #include #include +#include #ifdef DOXYGEN_RUNNING #define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h index 97d37075639..a3249e3c883 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h @@ -26,6 +26,7 @@ #include #include #include +#include // headers for self-intersection removal #include diff --git a/Polygon_mesh_processing/test/Polygon_mesh_processing/triangulate_hole_Polyhedron_3_no_delaunay_test.cpp b/Polygon_mesh_processing/test/Polygon_mesh_processing/triangulate_hole_Polyhedron_3_no_delaunay_test.cpp index 0d57138f39e..9ec5715273e 100644 --- a/Polygon_mesh_processing/test/Polygon_mesh_processing/triangulate_hole_Polyhedron_3_no_delaunay_test.cpp +++ b/Polygon_mesh_processing/test/Polygon_mesh_processing/triangulate_hole_Polyhedron_3_no_delaunay_test.cpp @@ -83,10 +83,10 @@ CGAL::internal::Weight_min_max_dihedral_and_area double ang_max = 0; for(int i = 0; i < 3; ++i) { double angle = 180 - CGAL::abs( - CGAL::Mesh_3::dihedral_angle(ppmap[target(edge_it,poly)], - ppmap[source(edge_it,poly)], - ppmap[target(next(edge_it,poly),poly)], - ppmap[target(next(opposite(edge_it,poly),poly),poly)]) ); + CGAL::dihedral_angle(ppmap[target(edge_it,poly)], + ppmap[source(edge_it,poly)], + ppmap[target(next(edge_it,poly),poly)], + ppmap[target(next(opposite(edge_it,poly),poly),poly)]) ); edge_it = next(edge_it,poly); ang_max = (std::max)(angle, ang_max); } diff --git a/Polygon_mesh_processing/test/Polygon_mesh_processing/triangulate_hole_Polyhedron_3_test.cpp b/Polygon_mesh_processing/test/Polygon_mesh_processing/triangulate_hole_Polyhedron_3_test.cpp index 16a0897cc2e..542ebd19931 100644 --- a/Polygon_mesh_processing/test/Polygon_mesh_processing/triangulate_hole_Polyhedron_3_test.cpp +++ b/Polygon_mesh_processing/test/Polygon_mesh_processing/triangulate_hole_Polyhedron_3_test.cpp @@ -85,10 +85,10 @@ CGAL::internal::Weight_min_max_dihedral_and_area double ang_max = 0; for(int i = 0; i < 3; ++i) { double angle = 180 - CGAL::abs( - CGAL::Mesh_3::dihedral_angle(ppmap[target(edge_it,poly)], - ppmap[source(edge_it,poly)], - ppmap[target(next(edge_it,poly),poly)], - ppmap[target(next(opposite(edge_it,poly),poly),poly)]) ); + CGAL::dihedral_angle(ppmap[target(edge_it,poly)], + ppmap[source(edge_it,poly)], + ppmap[target(next(edge_it,poly),poly)], + ppmap[target(next(opposite(edge_it,poly),poly),poly)]) ); edge_it = next(edge_it,poly); ang_max = (std::max)(angle, ang_max); } diff --git a/Polyhedron/demo/Polyhedron/Scene_item.cpp b/Polyhedron/demo/Polyhedron/Scene_item.cpp index 1384305b77e..b0779ad03a5 100644 --- a/Polyhedron/demo/Polyhedron/Scene_item.cpp +++ b/Polyhedron/demo/Polyhedron/Scene_item.cpp @@ -229,6 +229,8 @@ bool CGAL::Three::Scene_item::testDisplayId(double, double, double, CGAL::Three: return false; } +#include + void CGAL::Three::Scene_item::compute_diag_bbox()const { const Bbox& b_box = bbox(); diff --git a/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.cpp b/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.cpp index 256528bca65..ad207be1982 100644 --- a/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.cpp +++ b/Polyhedron/demo/Polyhedron/Scene_surface_mesh_item.cpp @@ -424,8 +424,8 @@ void Scene_surface_mesh_item::draw(CGAL::Three::Viewer_interface *viewer) const d->program->setAttributeValue("is_selected", true); else d->program->setAttributeValue("is_selected", false); - if(!d->has_vcolors) - d->program->setAttributeValue("colors", this->color()); + if(!d->has_vcolors) + d->program->setAttributeValue("colors", this->color()); glDrawElements(GL_TRIANGLES, static_cast(d->idx_data_.size()), GL_UNSIGNED_INT, d->idx_data_.data()); vaos[Scene_surface_mesh_item_priv::Smooth_facets]->release(); diff --git a/BGL/include/CGAL/Polyhedron_items_with_id_3.h b/Polyhedron/include/CGAL/Polyhedron_items_with_id_3.h similarity index 100% rename from BGL/include/CGAL/Polyhedron_items_with_id_3.h rename to Polyhedron/include/CGAL/Polyhedron_items_with_id_3.h diff --git a/BGL/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h b/Polyhedron/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h similarity index 100% rename from BGL/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h rename to Polyhedron/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h diff --git a/BGL/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h b/Polyhedron/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h similarity index 100% rename from BGL/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h rename to Polyhedron/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h diff --git a/BGL/include/CGAL/boost/graph/properties_Polyhedron_3.h b/Polyhedron/include/CGAL/boost/graph/properties_Polyhedron_3.h similarity index 100% rename from BGL/include/CGAL/boost/graph/properties_Polyhedron_3.h rename to Polyhedron/include/CGAL/boost/graph/properties_Polyhedron_3.h diff --git a/Polyhedron/include/CGAL/import_from_polyhedron_3.h b/Polyhedron/include/CGAL/import_from_polyhedron_3.h new file mode 100644 index 00000000000..4410f857108 --- /dev/null +++ b/Polyhedron/include/CGAL/import_from_polyhedron_3.h @@ -0,0 +1,119 @@ +// Copyright (c) 2011 CNRS and LIRIS' Establishments (France). +// 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; either 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$ +// +// Author(s) : Guillaume Damiand +// + +#ifndef CGAL_IMPORT_FROM_POLYHEDRON_3_H +#define CGAL_IMPORT_FROM_POLYHEDRON_3_H + +#include +#include +#include + +namespace CGAL { + + /** Import a given Polyhedron_3 into a Linear_cell_complex. + * @param alcc the linear cell complex where Polyhedron_3 will be converted. + * @param apoly the Polyhedron. + * @return A dart created during the convertion. + */ + template< class LCC, class Polyhedron > + typename LCC::Dart_handle import_from_polyhedron_3(LCC& alcc, + const Polyhedron &apoly) + { + CGAL_static_assertion( LCC::dimension>=2 && LCC::ambient_dimension==3 ); + + typedef typename Polyhedron::Halfedge_const_handle Halfedge_handle; + typedef typename Polyhedron::Facet_const_iterator Facet_iterator; + typedef typename Polyhedron::Halfedge_around_facet_const_circulator + HF_circulator; + + typedef std::map < Halfedge_handle, typename LCC::Dart_handle> + Halfedge_handle_map; + typedef typename Halfedge_handle_map::iterator itmap_hds; + Halfedge_handle_map TC; + + itmap_hds it; + typename LCC::Dart_handle d = LCC::null_handle, prev = LCC::null_handle; + typename LCC::Dart_handle firstFacet = LCC::null_handle, firstAll = LCC::null_handle; + + // First traversal to build the darts and link them. + for (Facet_iterator i = apoly.facets_begin(); i != apoly.facets_end(); ++i) + { + HF_circulator j = i->facet_begin(); + prev = LCC::null_handle; + do + { + d = alcc.create_dart(); + TC[j] = d; + + if (prev != LCC::null_handle) alcc.template link_beta<1>(prev, d); + else firstFacet = d; + it = TC.find(j->opposite()); + if (it != TC.end()) + alcc.template link_beta<2>(d, it->second); + prev = d; + } + while (++j != i->facet_begin()); + alcc.template link_beta<1>(prev, firstFacet); + if (firstAll == LCC::null_handle) firstAll = firstFacet; + } + + // Second traversal to update the geometry. + // We run one again through the facets of the HDS. + for (Facet_iterator i = apoly.facets_begin(); i != apoly.facets_end(); ++i) + { + HF_circulator j = i->facet_begin(); + do + { + d = TC[j]; // Get the dart associated to the Halfedge + if (alcc.temp_vertex_attribute(d) == LCC::null_handle) + { + alcc.set_vertex_attribute + (d, alcc.create_vertex_attribute(j->opposite()->vertex()->point())); + } + } + while (++j != i->facet_begin()); + } + return firstAll; + } + + + /** Convert a Polyhedron_3 read into a flux into 3D linear cell complex. + * @param alcc the linear cell complex where Polyhedron_3 will be converted. + * @param ais the istream where read the Polyhedron_3. + * @return A dart created during the convertion. + */ + template < class LCC > + typename LCC::Dart_handle + import_from_polyhedron_3_flux(LCC& alcc, std::istream& ais) + { + if (!ais.good()) + { + std::cout << "Error reading flux." << std::endl; + return LCC::null_handle; + } + CGAL::Polyhedron_3 P; + ais >> P; + return import_from_polyhedron_3 > (alcc, P); + } + +} // namespace CGAL + +#endif // CGAL_IMPORT_FROM_POLYHEDRON_3_H diff --git a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h index 499807e7dbb..7c32daa143e 100644 --- a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h +++ b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h @@ -21,6 +21,7 @@ #define CGAL_POLYLINE_SIMPLIFICATION_2_HYBRID_SQUARED_DISTANCE_COST_H #include +#include namespace CGAL { diff --git a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h index e6aea07e78e..77417c8ca19 100644 --- a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h +++ b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h @@ -21,6 +21,7 @@ #define CGAL_POLYLINE_SIMPLIFICATION_2_SCALED_SQUARED_DISTANCE_COST_H #include +#include namespace CGAL { diff --git a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h index 4a0dac1c855..688f13ea400 100644 --- a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h +++ b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h @@ -21,6 +21,7 @@ #define CGAL_POLYLINE_SIMPLIFICATION_2_SQUARED_DISTANCE_COST_H #include +#include namespace CGAL { diff --git a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h index 8d2cc594b5d..821df3921ff 100644 --- a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h +++ b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h @@ -20,6 +20,7 @@ #ifndef CGAL_POLYLINE_SIMPLIFICATION_2_STOP_ABOVE_COST_THRESHOLD_H #define CGAL_POLYLINE_SIMPLIFICATION_2_STOP_ABOVE_COST_THRESHOLD_H +#include namespace CGAL { diff --git a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h index 2ade2faeadf..9bd0209a72a 100644 --- a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h +++ b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h @@ -20,6 +20,8 @@ #ifndef CGAL_POLYLINE_SIMPLIFICATION_2_STOP_BELOW_COUNT_THRESHOLD_H #define CGAL_POLYLINE_SIMPLIFICATION_2_STOP_BELOW_COUNT_THRESHOLD_H +#include + namespace CGAL { namespace Polyline_simplification_2 diff --git a/Principal_component_analysis/include/CGAL/barycenter.h b/Principal_component_analysis_LGPL/include/CGAL/barycenter.h similarity index 100% rename from Principal_component_analysis/include/CGAL/barycenter.h rename to Principal_component_analysis_LGPL/include/CGAL/barycenter.h diff --git a/Principal_component_analysis/include/CGAL/bounding_box.h b/Principal_component_analysis_LGPL/include/CGAL/bounding_box.h similarity index 100% rename from Principal_component_analysis/include/CGAL/bounding_box.h rename to Principal_component_analysis_LGPL/include/CGAL/bounding_box.h diff --git a/Principal_component_analysis/include/CGAL/centroid.h b/Principal_component_analysis_LGPL/include/CGAL/centroid.h similarity index 100% rename from Principal_component_analysis/include/CGAL/centroid.h rename to Principal_component_analysis_LGPL/include/CGAL/centroid.h diff --git a/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/copyright b/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/copyright new file mode 100644 index 00000000000..8932b3233d2 --- /dev/null +++ b/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/copyright @@ -0,0 +1,2 @@ +INRIA Sophia-Antipolis (France) + diff --git a/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/description.txt b/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/description.txt new file mode 100644 index 00000000000..75231209e0b --- /dev/null +++ b/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/description.txt @@ -0,0 +1 @@ +LGPL files of package Principal Component Analysis diff --git a/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/license.txt b/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/license.txt new file mode 100644 index 00000000000..5c1c5d8436f --- /dev/null +++ b/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/license.txt @@ -0,0 +1 @@ +LGPL (v3 or later) diff --git a/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/maintainer b/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/maintainer new file mode 100644 index 00000000000..5e9c7235461 --- /dev/null +++ b/Principal_component_analysis_LGPL/package_info/Principal_component_analysis_LGPL/maintainer @@ -0,0 +1 @@ +Pierre Alliez diff --git a/Ridges_3/include/CGAL/PolyhedralSurf_neighbors.h b/Ridges_3/include/CGAL/PolyhedralSurf_neighbors.h index b3aced4a555..efe61334904 100644 --- a/Ridges_3/include/CGAL/PolyhedralSurf_neighbors.h +++ b/Ridges_3/include/CGAL/PolyhedralSurf_neighbors.h @@ -23,6 +23,8 @@ #include #include #include +#include +#include namespace CGAL { diff --git a/Ridges_3/include/CGAL/Ridges.h b/Ridges_3/include/CGAL/Ridges.h index 9df6b91421d..24d6dc30ad6 100644 --- a/Ridges_3/include/CGAL/Ridges.h +++ b/Ridges_3/include/CGAL/Ridges.h @@ -27,9 +27,10 @@ #include #include #include -#include +#include #include #include +#include namespace CGAL { diff --git a/Ridges_3/include/CGAL/Umbilics.h b/Ridges_3/include/CGAL/Umbilics.h index a3306c7a0b0..150dc2867bb 100644 --- a/Ridges_3/include/CGAL/Umbilics.h +++ b/Ridges_3/include/CGAL/Umbilics.h @@ -25,6 +25,7 @@ #include #include #include +#include #include namespace CGAL { diff --git a/Ridges_3/include/CGAL/Vertex2Data_Property_Map_with_std_map.h b/Ridges_3/include/CGAL/Vertex2Data_Property_Map_with_std_map.h index 158d71a372a..08cb209c7d2 100644 --- a/Ridges_3/include/CGAL/Vertex2Data_Property_Map_with_std_map.h +++ b/Ridges_3/include/CGAL/Vertex2Data_Property_Map_with_std_map.h @@ -20,6 +20,16 @@ #ifndef CGAL_VERTEX2DATA_PROPERTY_MAP_WITH_STD_MAP_H #define CGAL_VERTEX2DATA_PROPERTY_MAP_WITH_STD_MAP_H +#include + +namespace boost { +template +class graph_traits; + +template +class associative_property_map; +} + //--------------------------------------------------------------------------- //Vertex2Data_Property_Map_with_std_map // defines models for Vertex2FTPropertyMap and Vertex2VectorPropertyMap diff --git a/STL_Extension/include/CGAL/Compact_container.h b/STL_Extension/include/CGAL/Compact_container.h index 3152f0480b8..9ff00673647 100644 --- a/STL_Extension/include/CGAL/Compact_container.h +++ b/STL_Extension/include/CGAL/Compact_container.h @@ -21,9 +21,10 @@ #ifndef CGAL_COMPACT_CONTAINER_H #define CGAL_COMPACT_CONTAINER_H -#include +#include #include +#include #include #include #include diff --git a/STL_Extension/include/CGAL/Handle_for.h b/STL_Extension/include/CGAL/Handle_for.h index dbdd92c33a1..5ed332c07cf 100644 --- a/STL_Extension/include/CGAL/Handle_for.h +++ b/STL_Extension/include/CGAL/Handle_for.h @@ -26,6 +26,7 @@ #define CGAL_HANDLE_FOR_H #include +#include // for CGAL_assume #include #include diff --git a/STL_Extension/include/CGAL/Object.h b/STL_Extension/include/CGAL/Object.h index e41a41c9dc1..37f06431532 100644 --- a/STL_Extension/include/CGAL/Object.h +++ b/STL_Extension/include/CGAL/Object.h @@ -29,7 +29,8 @@ #ifndef CGAL_OBJECT_H #define CGAL_OBJECT_H -#include +#include +#include #include diff --git a/STL_Extension/include/CGAL/algorithm.h b/STL_Extension/include/CGAL/algorithm.h index b1c467c710a..05c5dfa4461 100644 --- a/STL_Extension/include/CGAL/algorithm.h +++ b/STL_Extension/include/CGAL/algorithm.h @@ -27,10 +27,12 @@ #ifndef CGAL_ALGORITHM_H #define CGAL_ALGORITHM_H -#include #include +#include +#include #include #include +#include #ifdef CGAL_CFG_NO_CPP0X_NEXT_PREV # include diff --git a/STL_Extension/test/STL_Extension/test_Object.cpp b/STL_Extension/test/STL_Extension/test_Object.cpp index 2d39435cf0f..e5e10ab17ab 100644 --- a/STL_Extension/test/STL_Extension/test_Object.cpp +++ b/STL_Extension/test/STL_Extension/test_Object.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include diff --git a/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Scale_space_surface_reconstruction_3_impl.h b/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Scale_space_surface_reconstruction_3_impl.h index 8d9c7aaf14c..c9294946c15 100644 --- a/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Scale_space_surface_reconstruction_3_impl.h +++ b/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Scale_space_surface_reconstruction_3_impl.h @@ -31,7 +31,6 @@ #include #include -#include namespace CGAL { @@ -753,10 +752,10 @@ detect_bubbles(FT border_angle) { || _shape->classify (f1) != Shape::REGULAR) continue; - double angle = CGAL::Mesh_3::dihedral_angle (vedge.first->point (), - vedge.second->point (), - c->vertex (i)->point (), - c->vertex ((i + (j+2)%3 + 1)%4)->point ()); + double angle = CGAL::dihedral_angle (vedge.first->point (), + vedge.second->point (), + c->vertex (i)->point (), + c->vertex ((i + (j+2)%3 + 1)%4)->point ()); if (-border_angle < angle && angle < border_angle) { diff --git a/Scripts/developer_scripts/generate_list_of_documented_headers b/Scripts/developer_scripts/generate_list_of_documented_headers new file mode 100755 index 00000000000..9e06808cae7 --- /dev/null +++ b/Scripts/developer_scripts/generate_list_of_documented_headers @@ -0,0 +1,18 @@ +#!/bin/sh + +# Used to regenerate `Installation/list_of_documented_headers.cmake` +# +# Run it in the `Installation` directory of a Git layout, with +# `../build-doc/doc_output/` containing the build of the Doxygen +# documentation. + +file=cmake/modules/list_of_documented_headers.cmake + +printf "# Generated using $0\n" > "$file" + +exec >> "$file" + +printf 'set(list_of_documented_headers_txt [=[\n' +ack --no-heading --no-filename --output='$2' --cpp --html '# *include *(<|[<"])(CGAL/[^>&]*)([>"]|>)' ../build-doc/doc_output ../*/examples/*/*.cpp | sort | uniq +printf ']=])\n' +printf 'separate_arguments(list_of_documented_headers UNIX_COMMAND ${list_of_documented_headers_txt})\n' diff --git a/Segment_Delaunay_graph_Linf_2/include/CGAL/Polychain_2.h b/Segment_Delaunay_graph_Linf_2/include/CGAL/Polychain_2.h index 6ec4a820fac..8927d82d99b 100644 --- a/Segment_Delaunay_graph_Linf_2/include/CGAL/Polychain_2.h +++ b/Segment_Delaunay_graph_Linf_2/include/CGAL/Polychain_2.h @@ -25,6 +25,7 @@ #include #include #include +#include // Polychainsegment_2 diff --git a/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_bounded_square_2.h b/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_bounded_square_2.h index 001df0d632c..413622bd2fb 100644 --- a/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_bounded_square_2.h +++ b/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_bounded_square_2.h @@ -30,7 +30,7 @@ #include #include #include - +#include namespace CGAL { template diff --git a/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_oriented_square_2.h b/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_oriented_square_2.h index de7049ea8f1..35b766c465c 100644 --- a/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_oriented_square_2.h +++ b/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_oriented_square_2.h @@ -26,6 +26,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Solver_interface/include/CGAL/Lapack_svd.h b/Solver_interface/include/CGAL/Lapack_svd.h index b4c67403c0d..2dca01fad87 100644 --- a/Solver_interface/include/CGAL/Lapack_svd.h +++ b/Solver_interface/include/CGAL/Lapack_svd.h @@ -21,7 +21,7 @@ #include #include - +#include extern "C" { // taken from acml.h void dgelss(int m, int n, int nrhs, diff --git a/Spatial_searching/include/CGAL/Euclidean_distance.h b/Spatial_searching/include/CGAL/Euclidean_distance.h index d6d952d85dd..00e0ad8cfb7 100644 --- a/Spatial_searching/include/CGAL/Euclidean_distance.h +++ b/Spatial_searching/include/CGAL/Euclidean_distance.h @@ -25,7 +25,7 @@ #include #include #include - +#include namespace CGAL { diff --git a/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h b/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h index eea140821b0..c5511d7a932 100644 --- a/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h +++ b/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h @@ -25,6 +25,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h b/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h index 9ead32a8d5f..8c54a614f04 100644 --- a/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h +++ b/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h @@ -25,6 +25,7 @@ #include #include #include +#include namespace CGAL { diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_base.h b/Spatial_sorting/include/CGAL/Hilbert_sort_base.h index 43c5cd7830d..97920379e8c 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_base.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_base.h @@ -20,7 +20,7 @@ #ifndef CGAL_HILBERT_SORT_BASE_H #define CGAL_HILBERT_SORT_BASE_H -#include +#include #include #include diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_median_2.h b/Spatial_sorting/include/CGAL/Hilbert_sort_median_2.h index 84a93202619..56df1c0cd33 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_median_2.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_median_2.h @@ -20,7 +20,7 @@ #ifndef CGAL_HILBERT_SORT_MEDIAN_2_H #define CGAL_HILBERT_SORT_MEDIAN_2_H -#include +#include #include #include #include diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_median_3.h b/Spatial_sorting/include/CGAL/Hilbert_sort_median_3.h index 10042b6b5ff..551c66db534 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_median_3.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_median_3.h @@ -20,7 +20,7 @@ #ifndef CGAL_HILBERT_SORT_MEDIAN_3_H #define CGAL_HILBERT_SORT_MEDIAN_3_H -#include +#include #include #include #include diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_median_d.h b/Spatial_sorting/include/CGAL/Hilbert_sort_median_d.h index d2cf0a3feb5..ffb0d2bd47a 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_median_d.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_median_d.h @@ -20,10 +20,11 @@ #ifndef CGAL_HILBERT_SORT_MEDIAN_d_H #define CGAL_HILBERT_SORT_MEDIAN_d_H -#include +#include #include #include #include +#include #include namespace CGAL { diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_middle_2.h b/Spatial_sorting/include/CGAL/Hilbert_sort_middle_2.h index bc63fefcf2d..56857e77466 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_middle_2.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_middle_2.h @@ -20,7 +20,7 @@ #ifndef CGAL_HILBERT_SORT_MIDDLE_2_H #define CGAL_HILBERT_SORT_MIDDLE_2_H -#include +#include #include #include #include diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_middle_3.h b/Spatial_sorting/include/CGAL/Hilbert_sort_middle_3.h index 01a5747b7f7..3e7130620ba 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_middle_3.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_middle_3.h @@ -20,7 +20,7 @@ #ifndef CGAL_HILBERT_SORT_MIDDLE_3_H #define CGAL_HILBERT_SORT_MIDDLE_3_H -#include +#include #include #include #include diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_middle_base.h b/Spatial_sorting/include/CGAL/Hilbert_sort_middle_base.h index ebb7ca49630..a459e9391a1 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_middle_base.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_middle_base.h @@ -20,7 +20,7 @@ #ifndef CGAL_HILBERT_SORT_MIDDLE_BASE_H #define CGAL_HILBERT_SORT_MIDDLE_BASE_H -#include +#include #include namespace CGAL { diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_middle_d.h b/Spatial_sorting/include/CGAL/Hilbert_sort_middle_d.h index 4cd7b61e074..d17dbebba7f 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_middle_d.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_middle_d.h @@ -20,9 +20,10 @@ #ifndef CGAL_HILBERT_SORT_MIDDLE_d_H #define CGAL_HILBERT_SORT_MIDDLE_d_H -#include +#include #include #include +#include #include namespace CGAL { diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_on_sphere_3.h b/Spatial_sorting/include/CGAL/Hilbert_sort_on_sphere_3.h index b472d27dba7..e26d147b4f7 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_on_sphere_3.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_on_sphere_3.h @@ -23,6 +23,8 @@ #include #include +#include +#include #include #include diff --git a/Spatial_sorting/include/CGAL/Multiscale_sort.h b/Spatial_sorting/include/CGAL/Multiscale_sort.h index e0ecd6f5a1f..fd29e986492 100644 --- a/Spatial_sorting/include/CGAL/Multiscale_sort.h +++ b/Spatial_sorting/include/CGAL/Multiscale_sort.h @@ -20,7 +20,8 @@ #ifndef CGAL_MULTISCALE_SORT_H #define CGAL_MULTISCALE_SORT_H -#include +#include +#include #include #include diff --git a/Spatial_sorting/include/CGAL/hilbert_sort.h b/Spatial_sorting/include/CGAL/hilbert_sort.h index bc9bffa88d5..8de97db721c 100644 --- a/Spatial_sorting/include/CGAL/hilbert_sort.h +++ b/Spatial_sorting/include/CGAL/hilbert_sort.h @@ -21,7 +21,7 @@ #ifndef CGAL_HILBERT_SORT_H #define CGAL_HILBERT_SORT_H -#include +#include #include #include diff --git a/Spatial_sorting/include/CGAL/spatial_sort.h b/Spatial_sorting/include/CGAL/spatial_sort.h index 5dca2194648..17d814205c0 100644 --- a/Spatial_sorting/include/CGAL/spatial_sort.h +++ b/Spatial_sorting/include/CGAL/spatial_sort.h @@ -20,7 +20,7 @@ #ifndef CGAL_SPATIAL_SORT_H #define CGAL_SPATIAL_SORT_H -#include +#include #include #include diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_converter_2.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_converter_2.h index cd95bf9bd48..254869b10b3 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_converter_2.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_converter_2.h @@ -20,6 +20,7 @@ #define CGAL_STRAIGHT_SKELETON_CONVERTER_2_H 1 #include +#include #include diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_face_base_2.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_face_base_2.h index 0e4b2833483..a3bb94bcb9d 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_face_base_2.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_face_base_2.h @@ -19,6 +19,8 @@ #ifndef CGAL_STRAIGHT_SKELETON_FACE_BASE_2_H #define CGAL_STRAIGHT_SKELETON_FACE_BASE_2_H 1 +#include +#include namespace CGAL { diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_halfedge_base_2.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_halfedge_base_2.h index b7482d06919..b0d1a6fc85b 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_halfedge_base_2.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_halfedge_base_2.h @@ -19,6 +19,8 @@ #ifndef CGAL_STRAIGHT_SKELETON_HALFEDGE_BASE_2_H #define CGAL_STRAIGHT_SKELETON_HALFEDGE_BASE_2_H 1 +#include +#include namespace CGAL { diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_vertex_base_2.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_vertex_base_2.h index 0c19cc8bba1..a7f0c2cefad 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_vertex_base_2.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_vertex_base_2.h @@ -19,8 +19,10 @@ #ifndef CGAL_STRAIGHT_SKELETON_VERTEX_BASE_2_H #define CGAL_STRAIGHT_SKELETON_VERTEX_BASE_2_H 1 +#include #include #include +#include #include diff --git a/Stream_support/include/CGAL/IO/File_header_extended_OFF.h b/Stream_support/include/CGAL/IO/File_header_extended_OFF.h index 58d4ee49140..9bc7ee72c29 100644 --- a/Stream_support/include/CGAL/IO/File_header_extended_OFF.h +++ b/Stream_support/include/CGAL/IO/File_header_extended_OFF.h @@ -25,7 +25,8 @@ #ifndef CGAL_IO_FILE_HEADER_EXTENDED_OFF_H #define CGAL_IO_FILE_HEADER_EXTENDED_OFF_H 1 -#include + +#include #include #include diff --git a/Stream_support/include/CGAL/IO/File_scanner_OFF.h b/Stream_support/include/CGAL/IO/File_scanner_OFF.h index f8cb0e62873..88fb3e6ffe1 100644 --- a/Stream_support/include/CGAL/IO/File_scanner_OFF.h +++ b/Stream_support/include/CGAL/IO/File_scanner_OFF.h @@ -25,7 +25,7 @@ #ifndef CGAL_IO_FILE_SCANNER_OFF_H #define CGAL_IO_FILE_SCANNER_OFF_H 1 -#include +#include #include #include #include diff --git a/Stream_support/include/CGAL/IO/binary_file_io.h b/Stream_support/include/CGAL/IO/binary_file_io.h index 9a8c3f85ecb..81045c2878a 100644 --- a/Stream_support/include/CGAL/IO/binary_file_io.h +++ b/Stream_support/include/CGAL/IO/binary_file_io.h @@ -26,7 +26,7 @@ #ifndef CGAL_IO_BINARY_FILE_IO_H #define CGAL_IO_BINARY_FILE_IO_H -#include +#include #include #include diff --git a/Surface_mesh/include/CGAL/Surface_mesh/IO.h b/Surface_mesh/include/CGAL/Surface_mesh/IO.h index 9a65452e5e5..a35d4f71e9a 100644 --- a/Surface_mesh/include/CGAL/Surface_mesh/IO.h +++ b/Surface_mesh/include/CGAL/Surface_mesh/IO.h @@ -32,6 +32,7 @@ #include #include #include +#include //============================================================================= diff --git a/BGL/include/CGAL/boost/graph/graph_traits_Surface_mesh.h b/Surface_mesh/include/CGAL/boost/graph/graph_traits_Surface_mesh.h similarity index 100% rename from BGL/include/CGAL/boost/graph/graph_traits_Surface_mesh.h rename to Surface_mesh/include/CGAL/boost/graph/graph_traits_Surface_mesh.h diff --git a/BGL/include/CGAL/boost/graph/properties_Surface_mesh.h b/Surface_mesh/include/CGAL/boost/graph/properties_Surface_mesh.h similarity index 100% rename from BGL/include/CGAL/boost/graph/properties_Surface_mesh.h rename to Surface_mesh/include/CGAL/boost/graph/properties_Surface_mesh.h diff --git a/Surface_mesh_segmentation/include/CGAL/internal/Surface_mesh_segmentation/Surface_mesh_segmentation.h b/Surface_mesh_segmentation/include/CGAL/internal/Surface_mesh_segmentation/Surface_mesh_segmentation.h index b6273d49922..82f5394c6f1 100644 --- a/Surface_mesh_segmentation/include/CGAL/internal/Surface_mesh_segmentation/Surface_mesh_segmentation.h +++ b/Surface_mesh_segmentation/include/CGAL/internal/Surface_mesh_segmentation/Surface_mesh_segmentation.h @@ -21,7 +21,7 @@ #include #include -#include +#include #include @@ -326,7 +326,7 @@ private: // As far as I check: if, say, dihedral angle is 5, this returns 175, // if dihedral angle is -5, this returns -175. // Another words this function returns angle between planes. - double n_angle = to_double( ::CGAL::Mesh_3::dihedral_angle(a, b, c, d) ); + double n_angle = to_double( ::CGAL::dihedral_angle(a, b, c, d) ); n_angle /= 180.0; bool concave = n_angle > 0; double angle = 1 + ((concave ? -1 : +1) * n_angle); diff --git a/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h b/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h index 987bdcfa87c..6282704cf10 100644 --- a/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h +++ b/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h @@ -22,6 +22,7 @@ */ #include #include +#include namespace CGAL { diff --git a/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/function_objects.h b/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/function_objects.h index 076c7d0d315..b5cfe2ae729 100644 --- a/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/function_objects.h +++ b/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/function_objects.h @@ -26,6 +26,7 @@ #include #include +#include #ifndef CGAL_SURFACE_MESH_SHORTEST_PATH_INTERNAL_FUNCTION_OBJECTS_H #define CGAL_SURFACE_MESH_SHORTEST_PATH_INTERNAL_FUNCTION_OBJECTS_H diff --git a/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Detail/Common.h b/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Detail/Common.h index 1b895590cce..6df12146294 100644 --- a/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Detail/Common.h +++ b/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Detail/Common.h @@ -38,8 +38,11 @@ #include #include +#include #include #include +#include +#include namespace CGAL { diff --git a/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher.h b/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher.h index f922849375d..926c345f9fa 100644 --- a/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher.h +++ b/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher.h @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include diff --git a/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h b/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h index 3223bf9dc8e..e36e0986e52 100644 --- a/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h +++ b/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h @@ -29,6 +29,7 @@ #include // for CGAL::inserter #include // for CGAL::Circulator_from_container #include +#include // for CGAL::sqrt #include #include diff --git a/TDS_2/include/CGAL/Dummy_tds_2.h b/TDS_2/include/CGAL/Dummy_tds_2.h index 07756368164..8cd3fea0f86 100644 --- a/TDS_2/include/CGAL/Dummy_tds_2.h +++ b/TDS_2/include/CGAL/Dummy_tds_2.h @@ -21,7 +21,7 @@ #ifndef CGAL_TRIANGULATION_DUMMY_TDS_2_H #define CGAL_TRIANGULATION_DUMMY_TDS_2_H -#include +#include namespace CGAL { diff --git a/TDS_2/include/CGAL/Triangulation_data_structure_2.h b/TDS_2/include/CGAL/Triangulation_data_structure_2.h index 02e3c6b9e1a..9171f0e7fdf 100644 --- a/TDS_2/include/CGAL/Triangulation_data_structure_2.h +++ b/TDS_2/include/CGAL/Triangulation_data_structure_2.h @@ -21,7 +21,7 @@ #ifndef CGAL_TRIANGULATION_DATA_STRUCTURE_2_H #define CGAL_TRIANGULATION_DATA_STRUCTURE_2_H -#include +#include #include #include #include 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 2204eff553d..5c571670e1a 100644 --- a/TDS_2/include/CGAL/Triangulation_ds_face_base_2.h +++ b/TDS_2/include/CGAL/Triangulation_ds_face_base_2.h @@ -21,7 +21,7 @@ #ifndef CGAL_TRIANGULATION_DS_FACE_BASE_2_H #define CGAL_TRIANGULATION_DS_FACE_BASE_2_H -#include +#include #include #include #include diff --git a/TDS_2/include/CGAL/Triangulation_ds_iterators_2.h b/TDS_2/include/CGAL/Triangulation_ds_iterators_2.h index 935a13b1b27..0cc3307ec6d 100644 --- a/TDS_2/include/CGAL/Triangulation_ds_iterators_2.h +++ b/TDS_2/include/CGAL/Triangulation_ds_iterators_2.h @@ -23,7 +23,7 @@ #include #include -//#include +#include namespace CGAL { diff --git a/TDS_2/include/CGAL/Triangulation_ds_vertex_base_2.h b/TDS_2/include/CGAL/Triangulation_ds_vertex_base_2.h index 338b9e87338..e0de841a252 100644 --- a/TDS_2/include/CGAL/Triangulation_ds_vertex_base_2.h +++ b/TDS_2/include/CGAL/Triangulation_ds_vertex_base_2.h @@ -22,7 +22,8 @@ #ifndef CGAL_TRIANGULATION_DS_VERTEX_BASE_2_H #define CGAL_TRIANGULATION_DS_VERTEX_BASE_2_H -#include +#include +#include #include namespace CGAL { diff --git a/Triangulation/include/CGAL/Convex_hull.h b/Triangulation/include/CGAL/Convex_hull.h index a8f91bf8d32..b2b315ce02e 100644 --- a/Triangulation/include/CGAL/Convex_hull.h +++ b/Triangulation/include/CGAL/Convex_hull.h @@ -30,6 +30,8 @@ #ifndef CGAL_CONVEX_HULL_H #define CGAL_CONVEX_HULL_H +#include + namespace CGAL { template < class CHTraits, class TDS_ = Default > diff --git a/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h b/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h index 7acc27d7731..e7e68950048 100644 --- a/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h @@ -27,6 +27,7 @@ #include #include +#include #ifndef CGAL_TRIANGULATION_2_DONT_INSERT_RANGE_OF_POINTS_WITH_INFO #include diff --git a/Triangulation_2/include/CGAL/Regular_triangulation_2.h b/Triangulation_2/include/CGAL/Regular_triangulation_2.h index 4ecaeb9115e..86b2e2199f3 100644 --- a/Triangulation_2/include/CGAL/Regular_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Regular_triangulation_2.h @@ -25,6 +25,7 @@ #include #include #include +#include #include diff --git a/Triangulation_2/include/CGAL/Triangulation_face_base_2.h b/Triangulation_2/include/CGAL/Triangulation_face_base_2.h index 93d06b412ce..8bbd9bd9cc7 100644 --- a/Triangulation_2/include/CGAL/Triangulation_face_base_2.h +++ b/Triangulation_2/include/CGAL/Triangulation_face_base_2.h @@ -21,7 +21,7 @@ #ifndef CGAL_TRIANGULATION_FACE_BASE_2_H #define CGAL_TRIANGULATION_FACE_BASE_2_H -#include +#include #include #include diff --git a/Triangulation_2/include/CGAL/Triangulation_vertex_base_2.h b/Triangulation_2/include/CGAL/Triangulation_vertex_base_2.h index 15cb74897a8..dce0ef9d9d9 100644 --- a/Triangulation_2/include/CGAL/Triangulation_vertex_base_2.h +++ b/Triangulation_2/include/CGAL/Triangulation_vertex_base_2.h @@ -21,7 +21,7 @@ #ifndef CGAL_TRIANGULATION_VERTEX_BASE_2_H #define CGAL_TRIANGULATION_VERTEX_BASE_2_H -#include +#include #include namespace CGAL { diff --git a/BGL/include/CGAL/Triangulation_vertex_base_with_id_2.h b/Triangulation_2/include/CGAL/Triangulation_vertex_base_with_id_2.h similarity index 100% rename from BGL/include/CGAL/Triangulation_vertex_base_with_id_2.h rename to Triangulation_2/include/CGAL/Triangulation_vertex_base_with_id_2.h diff --git a/Triangulation_2/include/CGAL/Weighted_point.h b/Triangulation_2/include/CGAL/Weighted_point.h index 200b374a0aa..9f449d72a4e 100644 --- a/Triangulation_2/include/CGAL/Weighted_point.h +++ b/Triangulation_2/include/CGAL/Weighted_point.h @@ -22,9 +22,10 @@ #ifndef CGAL_WEIGHTED_POINT_H #define CGAL_WEIGHTED_POINT_H -#include #include #include +#include +#include #include #include #include diff --git a/BGL/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h b/Triangulation_2/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h similarity index 99% rename from BGL/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h rename to Triangulation_2/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h index 8b36e09112a..38410d380a4 100644 --- a/BGL/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h +++ b/Triangulation_2/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h @@ -28,6 +28,7 @@ #include #include #include +#include // The functions and classes in this file allows the user to // treat a CGAL Delaunay_triangulation_2 object as a boost graph "as is". No diff --git a/BGL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h b/Triangulation_2/include/CGAL/boost/graph/graph_traits_Triangulation_2.h similarity index 100% rename from BGL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h rename to Triangulation_2/include/CGAL/boost/graph/graph_traits_Triangulation_2.h diff --git a/Triangulation_2/include/CGAL/import_from_triangulation_2.h b/Triangulation_2/include/CGAL/import_from_triangulation_2.h new file mode 100644 index 00000000000..07c2fba34f6 --- /dev/null +++ b/Triangulation_2/include/CGAL/import_from_triangulation_2.h @@ -0,0 +1,136 @@ +// Copyright (c) 2011 CNRS and LIRIS' Establishments (France). +// 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; either 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$ +// +// Author(s) : Guillaume Damiand +// + +#ifndef CGAL_IMPORT_FROM_TRIANGULATION_2_H +#define CGAL_IMPORT_FROM_TRIANGULATION_2_H + +#include +#include + +#include + +namespace CGAL { + + /** Convert a given Triangulation_2 into a 2D linear cell complex. + * @param alcc the used linear cell complex. + * @param atr the Triangulation_2. + * @param aface_to_dart a pointer to a std::map associating to each + * triangle of atr a corresponding dart in alcc. Not used if NULL. + * @return A dart incident to the infinite vertex. + */ + template < class LCC, class Triangulation > + typename LCC::Dart_handle import_from_triangulation_2 + (LCC& alcc, const Triangulation &atr, + std::map* aface_to_dart=NULL) + { + CGAL_static_assertion( LCC::dimension>=2 && LCC::ambient_dimension==2 ); + + // Case of empty triangulations. + if (atr.number_of_vertices() == 0) return LCC::null_handle; + + // Check the dimension. + if (atr.dimension() != 2) return LCC::null_handle; + CGAL_assertion(atr.is_valid()); + + typedef typename Triangulation::Vertex_handle TVertex_handle; + typedef typename Triangulation::All_vertices_iterator TVertex_iterator; + typedef typename Triangulation::All_faces_iterator TFace_iterator; + typedef typename std::map + < TFace_iterator, typename LCC::Dart_handle >::iterator itmap_tcell; + + // Create vertices in the map and associate in a map + // TVertex_handle and vertices in the map. + std::map< TVertex_handle, typename LCC::Vertex_attribute_handle > TV; + for (TVertex_iterator itv = atr.all_vertices_begin(); + itv != atr.all_vertices_end(); ++itv) + { + TV[itv] = alcc.create_vertex_attribute(itv->point()); + } + + // Create the triangles and create a map to link Cell_iterator + // and triangles. + TFace_iterator it; + + std::map TC; + std::map* + mytc = (aface_to_dart==NULL?&TC:aface_to_dart); + + itmap_tcell maptcell_it; + + typename LCC::Dart_handle res=LCC::null_handle, dart=LCC::null_handle; + typename LCC::Dart_handle cur=LCC::null_handle, neighbor=LCC::null_handle; + + for (it = atr.all_faces_begin(); it != atr.all_faces_end(); ++it) + { + /* if (it->vertex(0) != atr.infinite_vertex() && + it->vertex(1) != atr.infinite_vertex() && + it->vertex(2) != atr.infinite_vertex() && + it->vertex(3) != atr.infinite_vertex()) + */ + { + res = alcc.make_triangle(TV[it->vertex(0)], + TV[it->vertex(1)], + TV[it->vertex(2)]); + + if ( dart==LCC::null_handle ) + { + if ( it->vertex(0) == atr.infinite_vertex() ) + dart = res; + else if ( it->vertex(1) == atr.infinite_vertex() ) + dart = alcc.beta(res,1); + else if ( it->vertex(2) == atr.infinite_vertex() ) + dart = alcc.beta(res,0); + } + + for (unsigned int i=0; i<3; ++i) + { + switch (i) + { + case 0: cur = alcc.beta(res,1); break; + case 1: cur = alcc.beta(res,0); break; + case 2: cur = res; break; + } + + maptcell_it = mytc->find(it->neighbor(i)); + if (maptcell_it != mytc->end()) + { + switch (atr.mirror_index(it,i) ) + { + case 0: neighbor = alcc.beta(maptcell_it->second,1); + break; + case 1: neighbor = alcc.beta(maptcell_it->second,0); + break; + case 2: neighbor = maptcell_it->second; break; + } + alcc.template topo_sew<2>(cur, neighbor); + } + } + (*mytc)[it] = res; + } + } + + CGAL_assertion(dart!=LCC::null_handle); + return dart; + } + +} // namespace CGAL + +#endif // CGAL_IMPORT_FROM_TRIANGULATION_2_H diff --git a/Triangulation_3/include/CGAL/internal/info_check.h b/Triangulation_2/include/CGAL/internal/info_check.h similarity index 100% rename from Triangulation_3/include/CGAL/internal/info_check.h rename to Triangulation_2/include/CGAL/internal/info_check.h diff --git a/Triangulation_2/include/CGAL/predicates/Regular_triangulation_ftC2.h b/Triangulation_2/include/CGAL/predicates/Regular_triangulation_ftC2.h index 54a70c6d13e..0bde1702333 100644 --- a/Triangulation_2/include/CGAL/predicates/Regular_triangulation_ftC2.h +++ b/Triangulation_2/include/CGAL/predicates/Regular_triangulation_ftC2.h @@ -22,6 +22,8 @@ #ifndef CGAL_REGULAR_TRIANGULATION_FTC2_H #define CGAL_REGULAR_TRIANGULATION_FTC2_H +#include + // This file contains the low level cartesian predicates // used by the 2D regular triangulation. diff --git a/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h b/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h index 331803c27e5..e94d38c4f23 100644 --- a/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h +++ b/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h @@ -26,7 +26,7 @@ #include #include -#include +#include namespace CGAL { diff --git a/Triangulation_3/include/CGAL/import_from_triangulation_3.h b/Triangulation_3/include/CGAL/import_from_triangulation_3.h new file mode 100644 index 00000000000..3a1bbf37cb0 --- /dev/null +++ b/Triangulation_3/include/CGAL/import_from_triangulation_3.h @@ -0,0 +1,141 @@ +// Copyright (c) 2011 CNRS and LIRIS' Establishments (France). +// 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; either 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$ +// +// Author(s) : Guillaume Damiand +// + +#ifndef CGAL_IMPORT_FROM_TRIANGULATION_3_H +#define CGAL_IMPORT_FROM_TRIANGULATION_3_H + +#include +#include + +namespace CGAL { + + /** Convert a given Triangulation_3 into a 3D linear cell complex. + * @param alcc the used linear cell complex. + * @param atr the Triangulation_3. + * @param avol_to_dart a pointer to a std::map associating to each + * tetrahedron of atr a corresponding dart in alcc. Not used if NULL. + * @return A dart incident to the infinite vertex. + */ + template < class LCC, class Triangulation > + typename LCC::Dart_handle import_from_triangulation_3 + (LCC& alcc, const Triangulation &atr, + std::map* avol_to_dart=NULL) + { + CGAL_static_assertion( LCC::dimension>=3 && LCC::ambient_dimension==3 ); + + // Case of empty triangulations. + if (atr.number_of_vertices() == 0) return LCC::null_handle; + + // Check the dimension. + if (atr.dimension() != 3) return LCC::null_handle; + CGAL_assertion(atr.is_valid()); + + typedef typename Triangulation::Vertex_handle TVertex_handle; + typedef typename Triangulation::Vertex_iterator TVertex_iterator; + typedef typename Triangulation::Cell_iterator TCell_iterator; + typedef typename std::map + < TCell_iterator, typename LCC::Dart_handle >::iterator itmap_tcell; + + // Create vertices in the map and associate in a map + // TVertex_handle and vertices in the map. + std::map< TVertex_handle, typename LCC::Vertex_attribute_handle > TV; + for (TVertex_iterator itv = atr.vertices_begin(); + itv != atr.vertices_end(); ++itv) + { + TV[itv] = alcc.create_vertex_attribute(itv->point()); + } + + // Create the tetrahedron and create a map to link Cell_iterator + // and tetrahedron. + TCell_iterator it; + + std::map TC; + std::map* + mytc = (avol_to_dart==NULL?&TC:avol_to_dart); + + itmap_tcell maptcell_it; + + typename LCC::Dart_handle res=LCC::null_handle, dart=LCC::null_handle; + typename LCC::Dart_handle cur=LCC::null_handle, neighbor=LCC::null_handle; + + for (it = atr.cells_begin(); it != atr.cells_end(); ++it) + { + /* if (it->vertex(0) != atr.infinite_vertex() && + it->vertex(1) != atr.infinite_vertex() && + it->vertex(2) != atr.infinite_vertex() && + it->vertex(3) != atr.infinite_vertex()) + */ + { + res = alcc.make_tetrahedron(TV[it->vertex(0)], + TV[it->vertex(1)], + TV[it->vertex(2)], + TV[it->vertex(3)]); + + if ( dart==LCC::null_handle ) + { + if ( it->vertex(0) == atr.infinite_vertex() ) + dart = res; + else if ( it->vertex(1) == atr.infinite_vertex() ) + dart = alcc.beta(res, 1); + else if ( it->vertex(2) == atr.infinite_vertex() ) + dart = alcc.beta(res, 1, 1); + else if ( it->vertex(3) == atr.infinite_vertex() ) + dart = alcc.beta(res, 2, 0); + } + + for (unsigned int i = 0; i < 4; ++i) + { + switch (i) + { + case 0: cur = alcc.beta(res, 1, 2); break; + case 1: cur = alcc.beta(res, 0, 2); break; + case 2: cur = alcc.beta(res, 2); break; + case 3: cur = res; break; + } + + maptcell_it = mytc->find(it->neighbor(i)); + if (maptcell_it != mytc->end()) + { + switch (atr.mirror_index(it,i) ) + { + case 0: neighbor = alcc.beta(maptcell_it->second, 1, 2); + break; + case 1: neighbor = alcc.beta(maptcell_it->second, 0, 2); + break; + case 2: neighbor = alcc.beta(maptcell_it->second, 2); break; + case 3: neighbor = maptcell_it->second; break; + } + while (alcc.temp_vertex_attribute(neighbor) != + alcc.temp_vertex_attribute(alcc.other_extremity(cur)) ) + neighbor = alcc.beta(neighbor,1); + alcc.template topo_sew<3>(cur, neighbor); + } + } + (*mytc)[it] = res; + } + } + CGAL_assertion(dart!=LCC::null_handle); + return dart; + } + +} // namespace CGAL + +#endif // CGAL_IMPORT_FROM_TRIANGULATION_3_H diff --git a/Visibility_2/include/CGAL/Rotational_sweep_visibility_2.h b/Visibility_2/include/CGAL/Rotational_sweep_visibility_2.h index 46b34a44b85..46048b92078 100644 --- a/Visibility_2/include/CGAL/Rotational_sweep_visibility_2.h +++ b/Visibility_2/include/CGAL/Rotational_sweep_visibility_2.h @@ -26,6 +26,7 @@ #include #include #include +#include #include #include diff --git a/Visibility_2/include/CGAL/Simple_polygon_visibility_2.h b/Visibility_2/include/CGAL/Simple_polygon_visibility_2.h index 61c8de1efbb..d7a9e5d76c4 100644 --- a/Visibility_2/include/CGAL/Simple_polygon_visibility_2.h +++ b/Visibility_2/include/CGAL/Simple_polygon_visibility_2.h @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include diff --git a/Visibility_2/include/CGAL/Visibility_2/visibility_utils.h b/Visibility_2/include/CGAL/Visibility_2/visibility_utils.h index e787cc551b2..5e332a73a3c 100644 --- a/Visibility_2/include/CGAL/Visibility_2/visibility_utils.h +++ b/Visibility_2/include/CGAL/Visibility_2/visibility_utils.h @@ -22,6 +22,7 @@ #ifndef CGAL_VISIBILITY_UTILS_H #define CGAL_VISIBILITY_UTILS_H +#include #include #include #include