Commit Graph

306 Commits

Author SHA1 Message Date
Jane Tournois 6af720cde8 remove useless typename(s) 2014-02-21 17:14:13 +01:00
Jane Tournois 9d19ac0f96 add a "less" function to CGAL_time_stamper
and handle null pointers given to comparison
it is necessary for example in Triangulation_3::remove_3D
2014-02-21 14:41:41 +01:00
Jane Tournois 22153ac273 make private the time_stamp_ variable
and add time_stamp() and set_time_stamp() methods everywhere
2014-02-20 16:18:49 +01:00
Jane Tournois 0740b3652f add class Has_timestamp not to modify the API of Compact_container
- use the Has_timestamp operator in Compact_container
- add partial specialization to classes that need the time stamp (i.e.
Mesh_vertex_base, Compact_mesh_cell_base_3 and Mesh_cell_base_3)
- remove "ts" from classes where they were actually needed for compilation
purpose only (i.e. Kd_tree_node and Triangulation_ds_cell_base_3)
- rename "ts" to time_stamp_
2014-02-20 15:53:36 +01:00
Jane Tournois b3eccc5905 determinism : add a template parameter to Compact_container
we add a template parameter to Compact_container that is able to
set and get the "time stamps" stored in Vertex_handle, Cell_handle etc.
We previously made sure that these pointers are always compared using
the operator< of CC_iterator, inside Compact_container.h
2014-02-18 17:25:50 +01:00
Jane Tournois 6db28ed43d move ts from Tds to Compact_container
Tds now is back to its original version (not different from master)
2014-02-14 17:15:33 +01:00
Andreas Fabri 83546c53b1 Add a time stamp in vertices and cells of triangulations and polyhedra
and use this for operator< of handles in order to make mesh generation
 deterministic
2014-02-13 19:46:34 +01:00
Laurent Rineau da3d641efe Add comments to #ifndef/endif 2014-01-31 16:50:20 +01:00
Laurent Rineau 3ed92e1c1a Merge branch 'STL_Extension-Boolean_tag_Boost_Integral_Constant-lrineau'
Small feature:
  cgal.org/wiki/Features/Small_Features/Boolean_tag_is_a_Boost_Integral_Constant

Now CGAL::Boolean_tag<true> and CGAL::Boolean_tag<true> are model of the
Boost concept "Integral Constant".

Tested in CGAL-4.4-Ic-84.
2014-01-09 17:54:28 +01:00
Sébastien Loriot 59f476b5b4 Merge branch 'STL_Extension-fix_make_sorted_pair-local'
Bug-fix when using make_sorted_pair on different types

  Successfully tested in CGAL-4.4-Ic-62
  Approved by the release manager
2013-12-20 08:44:23 +01:00
Sébastien Loriot 3adb58e046 better support of heterogeneous but compatible types 2013-12-17 20:37:19 +01:00
Laurent Rineau dc6c20cfdb merge branch origin/Fix_leak-STL_Extension-GF
Remove memory leaks detected by AddressSanitizer.
Tested in CGAL-4.4-Ic-54 and CGAL-4.4-Ic-55.
Approved by the release manager.
2013-12-11 13:42:31 +01:00
Marc Glisse b319b31825 Assume refcount>0 when copying.
Hopefully it will help compilers understand that destructing a copy
can't bring the counter to 0.
2013-11-16 12:14:44 +01:00
Andreas Fabri d8da1137cc Fix a memory leak in Handle_with_policy:
A rep that points to another rep is like a handle
So if such a rep gets deleted the reference counter must be decremented
2013-11-15 16:20:01 +01:00
Andreas Fabri 61298d3925 Fix memory leak in Compact_container::merge()
We forgot to merge all_items
2013-11-08 13:55:40 +01:00
Sébastien Loriot fd0e7756d5 add missing include
trivial bugfix
2013-10-29 13:05:44 +01:00
Sébastien Loriot 5f9ab81512 add the function make_sorted_pair 2013-10-18 10:44:54 -07:00
Sébastien Loriot 6a30252a82 remove not needed include directive 2013-10-18 09:22:14 -07:00
Andreas Fabri 6c547e5663 Mainly added includes 2013-09-13 22:24:30 +02:00
Andreas Fabri 4a9be1f608 put the 'deprecated' macro at the right spot and add a testsiuite 2013-09-10 11:37:08 +02:00
Laurent Rineau 224a54303a Make Tag_true and Tag_false be models of the Boost Integral Constant model
http://www.boost.org/libs/mpl/doc/refmanual/integral-constant.html
2013-08-27 17:07:24 +02:00
Clement Jamin 8b0edee1f4 Merge branch 'concurrency_in_cgal-cjamin-old' into concurrency_in_cgal-cjamin 2013-07-03 17:17:34 +02:00
Sébastien Loriot c09ec2beaa Merge branch 'Kernel-replace_object-pmoeller'
Successfully tested in CGAL-4.3-Ic-59
Approved by the release manager

Conflicts:
	Kernel_23/doc/Kernel_23/CGAL/intersections.h
	Kernel_23/doc_tex/Kernel_23_ref/intersection.tex
	Kernel_d/doc/Kernel_d/Kernel_d.txt
	STL_Extension/doc/STL_Extension/CGAL/iterator.h
2013-06-14 14:26:05 +02:00
Sébastien Loriot b30d3daa2b do not use exception in Object::assign. g++3.4 produces a segfault with -O2 2013-06-12 17:39:31 +02:00
Sébastien Loriot 0c9656f553 add missing overload of operator= if EDG is defined 2013-06-04 16:53:05 +02:00
Sébastien Loriot 2997e8ae08 Dispatch_(or_drop_)output_iterator<V,O> now accepts a tuple V put in it ...
...and makes the correct dispatch to the output iterators in O
2013-05-31 17:20:47 +02:00
Clement Jamin bbb5fec836 The Parallel_tag inherits Sequential_tag 2013-05-31 10:44:41 +02:00
Sébastien Loriot d6905c61be Merge branch 'Kernel-replace_object-pmoeller-old' into Kernel-replace_object-pmoeller
Conflicts:
	AABB_tree/include/CGAL/AABB_tree.h
	Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h
	Intersections_3/include/CGAL/Intersections_3/intersection_3_1_impl.h
	Kernel_23/doc/Kernel_23/CGAL/intersections.h
	Kernel_23/doc/Kernel_23/Concepts/FunctionObjectConcepts.h
	STL_Extension/doc/STL_Extension/CGAL/iterator.h
2013-03-14 10:29:31 +01:00
Laurent Rineau 2d8da664a3 Merge branch 'CGAL-fix_warnings-gdamiand'
Conflicts:
	.gitignore
	Skin_surface_3/examples/Skin_surface_3/CMakeLists.txt
2013-02-22 13:02:37 +01:00
Laurent Rineau 3f894697bc New macros CGAL_assume(EX) and CGAL_assume_code(CODE)
CGAL_assume(EX) is like CGAL_assertion, but is not disabled in release
mode. In debug mode, it is similar to CGAL_assertion(). In release mode, it
uses builtins of the compilateur, like the MSVC __assume or the g++/clang
__builtin_unreachable to give an hint to the compiler that some situation
in the code cannot happen.
2013-02-20 18:34:15 +01:00
Laurent Rineau d19578725b Fix warnings 2013-02-07 18:15:23 +01:00
Laurent Rineau 29c05b900b Mark BOOST_STATIC_ASSERT with 'CGAL_UNUSED'
In order to fix such a warning from g++-4.8:
  warning: typedef ‘boost_static_assert_typedef_241’ locally defined but
  not used [-Wunused-local-typedefs]
then:
  - create one macro CGAL_UNUSED that is "__attribute__ ((__unused__))"
    with g++ or empty otherwise,
  - use it after BOOST_STATIC_ASSERT in the definition of
    CGAL_static_assertion.
2013-02-07 18:15:23 +01:00
Clement Jamin cd83c4680a Tags for concurrency 2013-02-06 18:15:25 +01:00
Sébastien Loriot 93df4bd3d5 typo while replacing boost::result_of to cpp11::result_of 2013-02-04 19:53:56 +01:00
Sébastien Loriot f0f34d45fa workaround to force the usage of the tr1 implementation of result_of from boost
see http://www.boost.org/doc/libs/1_52_0/libs/utility/utility.htm#result_of
2013-02-04 11:30:28 +01:00
Philipp Möller 0f34f2a89e Merge branch 'Maintenance-include-less-boost-pmoeller' 2012-12-21 09:44:18 +01:00
Sébastien Loriot 82b2ebc865 apply the cpp0x namespace renaming in all files 2012-12-19 11:33:17 +01:00
Philipp Möller 71ea8e6e22 Minimal boost includes
Replace type_traits.hpp and utility.hpp with the respective
fine-grained includes.
2012-12-14 18:13:59 +01:00
Philipp Möller a9cdb27b78 Remove tautological precondition 2012-12-12 11:28:57 +01:00
Philipp Möller 728cfaa456 Remove CGAL::Overload
Equivalent and better functionality is provided by
http://www.boost.org/libs//functional/overloaded_function/doc/html/index.html
2012-12-07 18:00:46 +01:00
Philipp Möller d198458ca7 Merge branch 'origin-gsoc2011-boost_object-pmoeller' into Kernel-replace_object-pmoeller
Conflicts:
	.gitattributes
	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
	AABB_tree/include/CGAL/AABB_traits.h
	AABB_tree/include/CGAL/AABB_tree.h
	AABB_tree/test/AABB_tree/AABB_test_util.h
	Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2/arr_queries.tex
	Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2_ref/Arr_trapezoid_ric_point_location.tex
	Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2_ref/intro.tex
	Arrangement_on_surface_2/include/CGAL/Arr_batched_point_location.h
	Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_generator_base.h
	Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_random_generator.h
	Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h
	Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h
	Arrangement_on_surface_2/include/CGAL/Arr_trapezoid_ric_point_location.h
	Arrangement_on_surface_2/test/Arrangement_on_surface_2/point_location.cpp
	Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h
	Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h
	Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h
	Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h
	Filtered_kernel/include/CGAL/Lazy.h
	Filtered_kernel/include/CGAL/Lazy_kernel.h
	Intersections_2/include/CGAL/Triangle_2_Iso_rectangle_2_intersection.h
	Intersections_2/test/Intersections_2/test_intersections_2.cpp
	Intersections_3/test/Intersections_3/test_intersections_3.cpp
	Kernel_23/doc_tex/Kernel_23_ref/intersection.tex
	Kernel_23/include/CGAL/Kernel/Type_mapper.h
	Kernel_d/doc_tex/Kernel_d_ref/Kernel.tex
2012-12-04 17:57:53 +01:00
Philipp Möller 465c5b265a Shuffle two undocumented headers backwards.
Also change the 2 places they were used in.
2012-11-17 02:16:32 +01:00
Philipp Möller 09e65b9c40 Drop the include guard and remove assert_equal_types
The include guard is unnecessary (tags.h is part of basic and no one
else defines it anymore) and it shouldn't be used anyway.

assert_equal_types doesn't do it's job completely and it's usage in
Nef_2 has been replaced.
2012-11-17 01:56:05 +01:00
Laurent Rineau 7bc300794d Fix last errors in headers of CGAL foundations
All were missing #include.
2012-10-08 09:03:50 +00:00
Philipp Möller 91f88474a8 The conditional code does not only require variadic templates but also
a variadic implementation of tuple. One would think that you never run
in a situation where you only have variadics but no tuple. But thanks
to clang pretending to be a gcc 4.2.1, some configuration code might
think otherwise.
2012-10-05 18:15:46 +00:00
Laurent Rineau 5c757a0a4d Fix/Improve all #include of all STL_Extension headers 2012-10-05 14:24:38 +00:00
Philipp Möller ab5c017c08 Unconditionally disable NO_TR1 defines.
Those cause trouble, because on MSVC the include paths for tr1
components are different from gcc. Instead of fixing up the include
paths depending on platform, just never use a tr1 component. Nothing
of value is lost compared to the boost equivalents and it removes
another code-path.
2012-09-28 13:15:14 +00:00
Laurent Rineau 90414d195f Move <CGAL/Testsuite/use.h> to <CGAL/use.h> (in the Installation package)
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
2012-08-09 15:34:08 +00:00
Philipp Möller 79b30908d5 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.
2012-08-07 11:04:32 +00:00
Laurent Rineau 69ef17087e Fix a warning of clang
The warning was:


In file included from [...]/cmake/platforms/x86-64_Linux-2.6_llvm-clang-with-g++-4.6.2_F16/test/Algebraic_foundations/Chinese_remainder_traits.cpp:34:
In file included from [...]/include/CGAL/Polynomial.h:44:
In file included from [...]/include/CGAL/Flattening_iterator.h:24:
In file included from [...]/include/CGAL/Nested_iterator.h:29:
[...]/include/CGAL/iterator.h:1240:10: warning: class template 'Derivator' was previously declared as a struct template [-Wmismatched-tags]
  friend class internal::Derivator;
         ^
[...]/include/CGAL/iterator.h:1193:8: note: previous use is here
struct Derivator
       ^
[...]/include/CGAL/iterator.h:1240:10: note: did you mean struct here?
  friend class internal::Derivator;
         ^~~~~
         struct
[...]/include/CGAL/iterator.h:1299:10: warning: class template 'Derivator' was previously declared as a struct template [-Wmismatched-tags]
  friend class internal::Derivator;
         ^
[...]/include/CGAL/iterator.h:1193:8: note: previous use is here
struct Derivator
       ^
[...]/include/CGAL/iterator.h:1299:10: note: did you mean struct here?
  friend class internal::Derivator;
         ^~~~~
         struct
2 warnings generated.
2012-06-20 10:18:05 +00:00