This commit also updates the respective mock-headers when the
corresponding .tex documentation has changed. This has been the case for:
AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABB_traits.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_features.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_no_features.tex
Number_types/doc_tex/NumberTypeSupport_ref/Interval_nt.tex
Number_types/doc_tex/NumberTypeSupport_ref/Lazy_exact_nt.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_2.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_3.tex
Triangulation_2/doc_tex/Triangulation_2_ref/Constrained_Delaunay_triangulation_2.tex
That is a followup-to my commit last year:
| ------------------------------------------------------------------------
| r63198 | lrineau | 2011-04-28 19:45:22 +0200 (Thu, 28 Apr 2011) | 5 lines
|
| Try to fix my last revision about cmake_policy, with CMake-2.6.x
|
| CMake gives an error if one tries to use cmake_policy(VERSION x.y.z) if
| x.y.z is greater than the current CMake version.
|
| ------------------------------------------------------------------------
The following check:
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" VERSION_GREATER 2.6)
is useless just after a call to:
cmake_minimum_required(VERSION 2.6.2)
The script used to fix that was:
#!/usr/bin/env perl
$replacement=<<'END';
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER 2.8.3)
cmake_policy(VERSION 2.8.4)
else()
cmake_policy(VERSION 2.6)
endif()
END
while(<>) {
if(/if\("\${CMAKE_MAJOR_VERSION}.\${CMAKE_MINOR_VERSION}" VERSION_GREATER 2.6\)/) {
while(<>) {
if(/^endif\(\)/) {
print "$replacement";
while(<>) {
print;
}
exit 0
}
}
}
print;
}
That is a followup to the following commit:
| ------------------------------------------------------------------------
| r71090 | pmoeller | 2012-08-07 13:04:32 +0200 (Tue, 07 Aug 2012) | 6 lines
| Changed paths:
| M /branches/next/Alpha_shapes_2/include/CGAL/Alpha_shape_2.h
| M /branches/next/Circulator/include/CGAL/circulator.h
| M /branches/next/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h
| M /branches/next/Intersections_3/test/Intersections_3/bbox_other_do_intersect_test.cpp
| M /branches/next/Kernel_d/include/CGAL/Cartesian_d.h
| M /branches/next/Mesh_3/include/CGAL/IO/File_medit.h
| M /branches/next/Mesh_3/include/CGAL/Mesh_cell_criteria_3.h
| M /branches/next/Mesh_3/include/CGAL/Mesh_edge_criteria_3.h
| M /branches/next/Mesh_3/include/CGAL/Mesh_facet_criteria_3.h
| M /branches/next/Mesh_3/include/CGAL/make_mesh_3.h
| M /branches/next/Nef_2/include/CGAL/Bounded_kernel.h
| M /branches/next/Nef_2/include/CGAL/Nef_polyhedron_2.h
| M /branches/next/Nef_3/include/CGAL/Nef_3/ID_support_handler.h
| M /branches/next/Nef_3/include/CGAL/Nef_3/Infimaximal_box.h
| M /branches/next/Nef_3/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h
| M /branches/next/Nef_3/include/CGAL/Nef_polyhedron_3.h
| M /branches/next/Nef_3/test/Nef_3/nef_union_error_llvm.cpp
| M /branches/next/Nef_S2/include/CGAL/Nef_S2/SM_overlayer.h
| M /branches/next/OpenNL/include/CGAL/OpenNL/blas.h
| M /branches/next/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h
| M /branches/next/Point_set_processing_3/include/CGAL/mst_orient_normals.h
| M /branches/next/QP_solver/include/CGAL/QP_solver/QP_functions_impl.h
| M /branches/next/STL_Extension/include/CGAL/iterator.h
| M /branches/next/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_simple_site_2.h
| M /branches/next/Subdivision_method_3/include/CGAL/Polyhedron_decorator_3.h
| M /branches/next/Subdivision_method_3/include/CGAL/Subdivision_mask_3.h
| M /branches/next/Surface_mesher/include/CGAL/Surface_mesh_default_criteria_3.h
| M /branches/next/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h
| M /branches/next/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h
| M /branches/next/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Default_site_removers.h
|
| WARNFIX: Silence a good part of unused variable/parameter warnings.
|
| Wextra results in a dreadful wall of yellow in the test-suite and is
| scary when using CGAL. Reduce some of the noise by silencing the
| obvious cases with CGAL_USE or comments.
|
| ------------------------------------------------------------------------
The reason is that everything from CGAL/Testsuite/ is removed in public
releases (that was discussed at a CGAL developers meetings, long ago). That
means that r71090 introduced compilation errors undetectable by the tests
of internal releases. I hope that the minutes of that developers meeting
say that I was against the removal of headers between internal and public
releases! -- Laurent Rineau
Wextra results in a dreadful wall of yellow in the test-suite and is
scary when using CGAL. Reduce some of the noise by silencing the
obvious cases with CGAL_USE or comments.
-Wunused-local-typedefs is a new warning flag of gcc-4.7, and it will enabled
by -Wall since gcc-4.8 (not yet released).
The fix is a big set of removals of unused typedefs (or comments, or moves,
depending on the context).
When InputIterator is an input-iterator type, one cannot do:
InputIterator it;
for(it = first; it != beyond; it++)
because input iterators may not be default-constructible. Only forward
iterators are required, by the C++03 norm, to be default-constructible.
We need to write:
for(InputIterator it = first; it != beyond; it++)
We declare
cmake_minimum_required(VERSION 2.6.2)
but we also use
cmake_policy(VERSION 2.8.4)
to declare that our CMake scripts are OK with all the defaults of CMake policies
as of CMake-2.8.4. That shuts down the warnings of CMake-2.8.4.
That way, we no longer need any declaration of specific policies.
Those two lines must be present and maintained in all our CMakeLists.txt
files (the one for the libraries, and also the one for examples and demos,
and maybe tests).
The documentation of CGAL says that the minimal version of CMake must be
CMake-2.6.2.
- change cmake_minimum_required to VERSION 2.6.2
- no longer any need for the policy CMP0003 (was for 2.4.x)
- no longer any need for CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS (was for 2.4)
In particular remove UNTESTED_XXXXXXXXXXX unused variable that possibly hide true warnings.
In those cases, the string printed while executed now starts with "NOTE: ".
*CGAL internal code no longer rely on depecrated features
Surface_reconstruction_points_3:
- [ "a" == "b" ] is a syntax of Bash. The POSIX way if with a single '='.
- do not override MAKE_CMD if it is already set (to jom, for example).
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
Diffs are:
* #undef added
* in old files, (void)0 is replaced by static_cast<void>(0)
* in old files, lines as "# define CGAL_xxx_assertion 1" are added
* in point_set_processing_assertions.h, surface_mesh_parameterization_assertions.h, surface_reconstruction_points_assertions.h, "|| defined(CGAL_NDEBUG)" is replaced by "|| defined (NDEBUG)"
* protective macros (if any) are removed
* included files if any (<CGAL/assertions.h>, <CGAL/trace.h>) are removed
CGAL 3.5 will include TAUCS/BLAS/LAPACK precompiled libraries for Visual C++ 8.0 and 9.0.
Auto-link is modified accordingly.
* Also fixed compatibility of cgal_test_with_cmake.bat scripts with VC++ 9.0.
* Fixed bug in Point_set_processing_3 examples/tests: use reasonable default knn parameters (0.1 or 0.15% of point set was overkill.* Updated the Point Set demo to use the recommended knn values by default.
Removed _HAS_ITERATOR_DEBUGGING=0 setting to go back to default settings.
This setting could create conflicts with third party libraries like _SECURE_SCL=0 crashes boost program options.
Note that no conflict with _HAS_ITERATOR_DEBUGGING was reported. This is just a safety change.
Updated manual.
* Also added a comment about the hack to have 2 functions documented on the same page (e.g. read_xyz_points() and read_xyz_points_and_normals()).
* cgal_test_with_cmake does not work when $MAKE_CMD environment variable exists.
* cgal_test_with_cmake returns an error when an application cannot be compiled.
:= When Point type is a pair or a tuple compute_average_spacing, jet_estimate_normal, jet_smooth_point_set,
pca_estimate_normals, pca_smooth_point_set, remove_outliers and remove_outliers_wrt_median_knn_sq_distance
files couldn't compile. Now they can!
Written a detailed example (average_spacing_example.cpp) that uses the tuples type.
==> Pairs and tuples are now used in the examples.
Document property maps and move them to Support Lib:
* Added new chapter "CGAL abd Boost Property Maps" (Property_map) to Support Lib:
- it is located in Point_set_processing_3/doc_tex/Property_map.
- it documents Dereference_property_map, First_of_pair_property_map, Second_of_pair_property_map and Nth_of_tuple_property_map.
* Renamed point_set_property_map.h as property_map.h
* Moved Normal_vector_property_map to Point_with_normal_3.h and renamed it Normal_of_point_with_normal_pmap.
Fixed bug in read_off_points_and_normals and read_xyz_points_and_normals : Initialization of Normals to NULL_VECTOR when normal information is missing in the input file.
Changes requested by AF on 06/12/2009:
* Point_set_processing_3:
- Added grid_simplify_example.cpp. It replaces random_simplify_example.cpp in Point_set_processing_3 User Manual.
Changes requested by AF on 06/12/2009:
* Point_set_processing_3:
- Fixed description of grid_simplify_point_set()
- Fixed description of read_xyz_points(), write_xyz_points(), read_off_points(), write_off_points()
- Added grid_simplify_example.cpp. It replaces random_simplify_example.cpp in Point_set_processing_3 User Manual.
* Surface_reconstruction_points_3:
- Small fixes in the User Manual.
Removed IndexPMap parameter of mst_orient_normals():
* Removed IndexPMap parameter of mst_orient_normals(). Instead, mst_orient_normals() creates internaly an Index_property_map object.
* Index_property_map is a template class "index" property map, which associates a 0-based index (unsigned int) to Iter iterators.
2 specializations exist:
- if Iter is a random access iterator (typically vector and deque), get() just calls std::distance() and is very efficient;
- else, the property map allocates a std::map to store indices and get() requires a lookup in the map.
* Index_property_map is moved to an independent header Index_property_map.h but is not documented.
* Improvements in C++ code:
- erase_small_connected_components() is renamed keep_largest_connected_components() and takes as new parameter the number of large components to keep.
- get_polyhedron_connected_components() writes the list of components found in an output iterator.
* Improvements in the User Manuals:
- Removed page number in links.
- New images for grid simplification and normal orientation (hopefully clearer).
- Added citation of OFF file format.
* Improvements in the Reference Manuals:
- Removed output_surface_facets_to_triangle_soup() (obsolete).
- Removed get_polyhedron_connected_components() from documentation.
- Set manually the classes/structs/concepts marging to get a pretty alignment of types, constructors and methods.
* Automatic documentation improvements by generate_reference_manual 1.3:
- Reduced left margin of free functions description.
- Fixed bug: fixed vertical alignment in methods/functions description.
- Fixed bug: does not remove anymore EOLs in methods/functions description.
- Fixed bug #7515: removed "[protected]", "[static]" and "[virtual]" comments.
- is cross-platform Unix/make and Cygwin/VisualC++
- concats all log files to cgal_test_with_cmake.log
- does not clean up object files and executables (too slow when called by developer)
- is cross-platform Unix/make and Cygwin/VisualC++
- concats all log files to cgal_test_with_cmake.log
- does not clean up object files and executables (too slow when called by developer)
This forces cgal_manual to expand const keyword are avoids 2 problems:
- bad keywords in HTML
- const and non-const methods seem identical.
* Also fixed a bug in copy_doxygen_latex_doc r49560:
cgal_manual compilation error on mst_orient_normals.tex.