Commit Graph

31 Commits

Author SHA1 Message Date
Maxime Gimeno d5811d0a41 clang-tidy on tests 2021-02-18 15:15:12 +01:00
Sébastien Loriot d1a323c730 extra run of the script to remove tabs and trailing whitespaces 2020-03-26 19:24:14 +01:00
Laurent Rineau 378554e5a7 Change the API of `for_compact_container`/`Compact_container_traits`
Now, we have a proper pair of getter/setter, and the `void` pointer is
get by a `reinterpret_cast`, instead of a union.

Cc: @mglisse
2020-03-09 17:19:58 +01:00
Laurent Rineau e82ea5de96 Add move-semantic to Compact_container
That required a refactoring the timestamper feature. And the
explanation why is quite long... Let's do it.

The CGAL triangulations use the `Rebind_TDS` feature. During the
instanciation of `Compact_container<T>` it is important that `T` is
allowed to be incomplete, otherwise the circular dependencies between
TDS and Vertex/Cell cannot be resolved by the compiler. In previous
implementation of the timestamper, to allow `T` to be an incomplete
type, the compact container only carried a *point* to the time
stamper, allocated on the heap. A moved-from compact container would
only be valid if one recreated a time stamper for it on the head in
the move-constructor. As I want move operations to be `noexcept`, I
needed to change that implementation. Now the triangulation always
carries a time stamp counter (`std::size`), independently of the type
`T`, and the time stamper is an empty class, with static methods. That
allows `T` to be incomplete during the declaration of
`Compact_container<T>`.
2020-01-31 11:29:55 +01:00
Andreas Fabri e62ab30e6c Fixes of fixes 2019-02-15 09:03:58 +01:00
Andreas Fabri f4ec38e27c STL_extensions 2018-01-18 14:15:21 +00:00
Laurent Rineau e294cd8fe9 Fix new (recycled) time stamps when a TDS is copied 2017-05-18 10:57:13 +02:00
Guillaume Damiand ebc4300334 Header only for random.cpp.
For the header only version, the global variable default_random no more exist => we need to replace all occurences of default_random by a call to the global function get_default_random().
As usual, no modification for the non header only version.
2014-11-14 14:20:26 +01:00
Laurent Rineau 3deb8e7910 Merge branch 'Mesh_3-compare_index-GF-old' into Mesh_3-compare_index-GF
Create an integration branch for 'Mesh_3-compare_index-GF': a new branch
created from 'master', where I merged the previous version of
'Mesh_3-compare_index-GF'.

There was a conflict with two features recently merged into 'master' for
CGAL-4.5:

- the move of two files from include/CGAL/Mesh_3/ to include/CGAL/. See
  the small feature:
    http://cgal.org/wiki/Features/Small_Features/New_constructor_in_Label_mesh_domain_3_and_new_function_wrapper

- parallelism for Triangulation_3 and Mesh_3:
    http://cgal.org/wiki/Features/Parallel_Mesh_3

Conflicts:
	Combinatorial_map/include/CGAL/Cell_attribute.h
	Mesh_3/include/CGAL/Implicit_mesh_domain_3.h
	Mesh_3/include/CGAL/Labeled_image_mesh_domain_3.h
	Mesh_3/include/CGAL/Mesh_3/Sliver_perturber.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h
	Mesh_3/test/Mesh_3/test_meshing_3D_image.cpp
	Mesh_3/test/Mesh_3/test_meshing_polyhedron.cpp
	Mesh_3/test/Mesh_3/test_meshing_polyhedron_with_features.cpp
	Polyhedron/demo/Polyhedron/Polyhedron_type.h
	STL_Extension/include/CGAL/Compact_container.h
	STL_Extension/test/STL_Extension/test_Compact_container.cpp

I also modified the following files during the conflict resolution:

	Linear_cell_complex/include/CGAL/Cell_attribute_with_point.h
	Mesh_3/include/CGAL/Labeled_mesh_domain_3.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_with_features_3.h
2014-07-18 15:47:14 +02:00
Sébastien Loriot 3fa09693a3 Merge branch 'Mesh_3-compare_index-GF-old' into Mesh_3-compare_index-GF
Conflicts:
	Mesh_3/include/CGAL/Mesh_3/Detect_features_in_polyhedra.h
	Mesh_3/include/CGAL/Mesh_domain_with_polyline_features_3.h
	Mesh_3/include/CGAL/Mesh_polyhedron_3.h
	Mesh_3/test/Mesh_3/test_meshing_polylines_only.cpp
	STL_Extension/include/CGAL/Compact_container.h
	STL_Extension/test/STL_Extension/test_Compact_container.cpp
2014-05-21 18:24:17 +02:00
Sébastien Loriot d34ebbaafa update names in the testsuite 2014-05-21 16:19:12 +02:00
Clement Jamin f3c00442fd Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin 2014-05-14 19:05:40 +02:00
Clement Jamin 239b6d0932 Merge branch 'STL_extension-Compact_container_as_vector-cjamin-old' into STL_extension-Compact_container_as_vector-cjamin 2014-04-16 14:14:24 +01:00
Laurent Rineau a2ef3c10f0 Change the name of timestamp policies 2014-04-16 12:36:40 +02:00
Laurent Rineau 1396d65b48 Test the time stamper policy in the testsuite 2014-04-16 12:34:30 +02:00
Laurent Rineau f8a97dc424 Check that Compact_container accepts incomplete types 2014-04-15 18:00:18 +02:00
Clement Jamin 157cd0465f Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin
Conflicts:
	Mesh_3/demo/Mesh_3/Mesh_3_optimization_plugin_cgal_code.cpp
	Mesh_3/doc/Mesh_3/Concepts/MeshCellBase_3.h
	Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h
	Mesh_3/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h
	Mesh_3/include/CGAL/Mesh_3/Mesh_global_optimizer.h
	Mesh_3/include/CGAL/Mesh_3/Sliver_perturber.h
	Mesh_3/include/CGAL/Mesh_3/Slivers_exuder.h
	Mesh_3/include/CGAL/Mesh_3/Triangulation_helpers.h
	Mesh_3/include/CGAL/Mesh_3/config.h
	Mesh_3/include/CGAL/Mesh_3/vertex_perturbation.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h
	Mesh_3/include/CGAL/exude_mesh_3.h
	Mesh_3/test/Mesh_3/test_meshing_utilities.h
	Triangulation_3/include/CGAL/Triangulation_cell_base_with_circumcenter_3.h
2014-03-10 17:01:03 +01:00
Laurent Rineau 5a8cc40ad7 Fix a warning
test/STL_Extension/test_Compact_container.cpp:110:34: warning: unused variable 't20' [-Wunused-variable]
2014-02-21 17:41:31 +01:00
Clement Jamin fc91cad0b1 Test 2013-12-20 15:05:14 +01:00
Clement Jamin 5d1eacf16f rename get_erase_counter => erase_counter
And add it to the concept ObjectWithEraseCounter
2013-12-12 07:23:07 +01:00
Clement Jamin f0d470ae28 Removed get_erase_counter&co from the test 2013-10-14 17:54:15 +02:00
Philipp Möller 5d5390ace6 Minor fixes with to avoid ambiguity clashes and add a missing include.
test_Compact_container.cpp defined its won CGAL::use and somehow
Testsuite/use.h got included. CGAL::internal::use got then picked up
by ADL, as the iterator of a compact container is in internal (as
opposed to a member of Compact_container).

test_multiset used strcmp without including cstring.
2012-08-09 08:44:13 +00:00
Guillaume Damiand 71d1d6f56a Add reserve method in compact container (include file, plus ref manual, plus test). 2011-09-27 12:01:42 +00:00
Sylvain Pion f06dc5554a Add two functions to check (more efficiently than naively, namely O(sqrt(n))
instead of O(n)) whether an iterator belongs to the range [begin(), end()).

  bool owns(const_iterator pos);
  bool owns_dereferencable(const_iterator pos);

This is useful for speeding up some debug function at the triangulation level.
2010-01-23 17:26:16 +00:00
Sylvain Pion da0da4cbc6 Add functions iterator_to and s_iterator_to that construct an iterator from
a reference to an object supposedly stored in a Compact_container.
This is inspired from Boost.Intrusive:
http://www.boost.org/doc/libs/1_38_0/doc/html/intrusive/obtaining_iterators_from_values.html
2009-03-03 02:47:23 +00:00
Sylvain Pion 4aa1cb057a Remove my email adress from header files. 2008-10-11 20:21:08 +00:00
Sylvain Pion 57904f1e25 Use boost::iterator_facade for the Compact_container's iterators. 2008-04-12 18:19:43 +00:00
Andreas Meyer 20315de571 * replaced CGAL_test_assert with ::assert, instead of CGAL_assertion
* removed include/Testsuite/assert.h
2008-03-19 13:45:36 +00:00
Sylvain Pion 0f587ba0b5 This SUNPRO workaround is not needed anymore 2008-01-20 20:34:39 +00:00
Andreas Meyer 6623d525eb * replaced assert in */test/*/*.{cpp,h} with CGAL_test_assertion
* replaced #include <assert.h> with the according CGAL/Testsuite/assert.h
2007-11-07 21:35:42 +00:00
Sylvain Pion 3c27e07382 rename .C to .cpp 2007-01-27 20:14:24 +00:00