Commit Graph

184 Commits

Author SHA1 Message Date
Jane Tournois 0ab9d3eebf Merge remote-tracking branch 'cgal/master' into Triangulation_3-CDT_3-lrineau
# Conflicts:
#	Installation/CHANGES.md
2025-06-10 11:18:38 +02:00
Sébastien Loriot 503b259c71 fix warning: avoid copy 2025-06-02 19:19:42 +02:00
Laurent Rineau 8145708ae5 Merge remote-tracking branch 'cgal/6.0.x-branch'
Conflicts:
	STL_Extension/include/CGAL/Compact_container.h
	STL_Extension/include/CGAL/Concurrent_compact_container.h
2025-05-30 12:27:15 +02:00
Sébastien Loriot 2148806957 workaround possible optimisation that would alter the value of the erase_counter
The code is still not legal but works in practise.

fix similar to 5853673267
2025-05-21 08:41:25 +02:00
Laurent Rineau 4b029e69bd Merge branch 'CGAL:master' into Triangulation_3-CDT_3-lrineau 2025-05-13 17:14:39 +02:00
Laurent Rineau fa7a62bd69 fix static_assert(std::is_nothrow_move_assignable<CDT_plus_2> 2025-04-29 11:52:40 +02:00
Sébastien Loriot 93e8257255 workaround possible optimisation that would alter the value of the erase_counter
The code is still not legal but works in practise.

fix similar to 5853673267
2025-04-03 12:16:27 +02:00
Laurent Rineau fa83d0bd45 fix Compact_container::reserve, with timestamps 2025-02-10 18:07:32 +01:00
Laurent Rineau 45da3684ba Bug with Linear_cell_complex
One cannot call `std::allocator_traits<Alloc>::construct`, because some of linear cell complex classes have protected constructors with a lot of friend classes. They cannot be friend of all possible allocator classes, so...
2025-01-31 19:19:45 +01:00
Laurent Rineau 5853673267 fix the concurrent compact container with timestamps 2025-01-31 18:07:59 +01:00
Laurent Rineau 0c0b22ba92 add tests and assertions for the timestamper 2024-05-23 16:35:54 +02:00
Laurent Rineau 6160887748 fix warning
```
include\CGAL/Compact_container.h(443): warning C4101: 'ts': unreferenced local variable
```

https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-6.0-Ic-248/Minkowski_sum_2/TestReport_Christo_MSVC2017-Debug-64bits.gz
2024-05-22 12:22:56 +02:00
Andreas Fabri ffc5541ce7 CGAL_USE 2024-05-13 10:50:50 +01:00
Laurent Rineau d9d5a02375 fix CC time_stamper 2024-04-26 16:39:01 +02:00
Laurent Rineau 33c3d22bf8 simpler timestamp system 2024-04-26 16:36:39 +02:00
Laurent Rineau ec1d97bea9 fix the timestamp system 2024-04-26 16:36:39 +02:00
Laurent Rineau ce58f38b76 move With_point_and_info_tag to Compact_container.h 2024-04-26 16:36:33 +02:00
Laurent Rineau 4d95e4c987 fix a compilation error with C++<20 2024-04-26 16:35:21 +02:00
Laurent Rineau 11402dfeb9 Add With_offset_tag 2024-04-26 16:35:14 +02:00
Laurent Rineau 4c75012cca oformat(x, tag) passed the tag value to the Output_rep
That allows to pass an integral offset to the displayed time stamps.

The goal is to set it to -1, to display vertices IDs that are identical
to the input vertices indices of the `Surface_mesh``.
2024-04-26 13:29:31 +02:00
Laurent Rineau 98f1e53020 Improve I/O
- `IO::oformat` can display triangulations vertex handles
  with point, using `With_point_tag{}` as second argument,

- improve the compatibility with C++20 `<format>`: now the precision
  can be specified in the format string.

Backport: master
2024-04-26 12:05:08 +02:00
Sébastien Loriot 8700394122 boost::mpl::if_ -> std::conditional 2023-09-24 22:57:20 +02:00
Laurent Rineau e8d1095526 Use Output_rep to display debug info 2023-02-06 10:00:58 +01:00
Andreas Fabri 8ddf7848a0 forward call instead of duplicated code 2022-11-30 10:03:45 +00:00
Andreas Fabri 699454ae84 STL Extensions: Correct spelling 2022-11-29 13:22:00 +00:00
Sébastien Loriot 4f5f8341cc use std::enable_if_t 2022-06-10 07:37:53 +02:00
Andreas Fabri 440a8dfb7b Fix file name 2022-02-03 08:41:04 +00:00
Andreas Fabri 735752bec9 Do the remaining changes after Laurent's check 2022-02-03 08:02:11 +00:00
Laurent Rineau e683686055 Merge pull request #6094 from sloriot/AOS_2-remove_fast_pool_allocator
Fix issues with new containers for arrangement cells

# Conflicts:
#	Arrangement_on_surface_2/include/CGAL/Arr_dcel_base.h
2021-11-18 12:31:39 +01:00
Sébastien Loriot 9ad2991483 same change for CCC 2021-11-04 16:27:05 +01:00
Sébastien Loriot 4788732815 speed up begin() in case the container is empty but freelist is not 2021-11-04 15:16:22 +01:00
Andreas Fabri 15d788ef29 Remove commented code section which contains a call to memset() 2021-09-23 16:57:34 +02:00
Simon Giraudot 3448035fc6 Fix CC_iterator by making constructor from pointer explicit 2021-03-24 08:25:29 +01:00
Simon Giraudot 80e99153dc Use Compact Container in DCEL base instead of in place list 2021-01-28 10:30:55 +01:00
Laurent Rineau 871c97273a Merge pull request #4496 from lrineau/CGAL-move_semantic_for_triangulations-GF
Add move-semantic to Compact_container and Triangulations
2020-06-03 16:23:22 +02:00
Laurent Rineau 14b18f81ee Merge pull request #4735 from lrineau/Triangulation_2-fix_CDT_2_degenerate_case-GF
Fix a bug in <CGAL/Constrained_triangulation_2.h>
2020-05-27 16:33:21 +02:00
Laurent Rineau 0ea385712f Fix compatibility with C++03 2020-05-22 14:52:18 +02:00
Laurent Rineau dcc4fb1cc1 Merge remote-tracking branch 'cgal/master' into CGAL-move_semantic_for_triangulations-GF
# Conflicts:
#	STL_Extension/include/CGAL/Compact_container.h
2020-05-20 09:46:26 +02:00
Laurent Rineau fcc5ccca53 Merge pull request #4669 from gdamiand/CGAL_warning-gdamiand
Remove "unused-but-set-parameter" warnings
2020-05-18 12:24:44 +02:00
Sébastien Loriot c5af2b25f3 Merge remote-tracking branch 'cgal/releases/CGAL-5.0-branch' 2020-04-22 13:27:29 +02:00
Sébastien Loriot 157bdbda08 Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch' 2020-04-22 13:26:52 +02:00
Guillaume Damiand 74d89220e2 Remove warnings 2020-04-20 15:25:40 +02:00
Jeff Trull 8b21a67508 Forward declare class template Instead of including a new header 2020-04-07 14:50:17 -07:00
Jeff Trull 905dabc3a2 Fix reference-to-null-pointer UB
Hash compact_container iterators directly from their underlying
pointers, rather than taking the address of their dereferenced objects
2020-04-07 14:47:58 -07:00
Laurent Rineau 1eba82246e Rule of zero for CC_iterator
This commit is the one fixing the mis-compilation by MSVC 2015.
2020-03-09 17:35:52 +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 e3d7f7946d CC_iterator(CC_iterator&&) is now `= default`
That fixes a segmentation fault with Visual Studio in Skin Surface
Meshing.
2020-02-28 14:01:54 +01:00
Laurent Rineau 0c40f7a458 "Fix" for dumb MSVC compilers
https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-5.1-Ic-77/Triangulation_2/TestReport_afabri_x64_Cygwin-Windows10_MSVC2015-Debug-64bits.gz

My guess is that the compiler short-circuits `Const &&` when the
argument `Const` is `false`, and then the expression `Const &&
!OtherConst` is no-longer dependent on the argument `OtherConst`.

That "fix" just turn `Const &&  !OtherConst` to `!OtherConst && Const`.
2020-02-19 16:27:10 +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
Laurent Rineau 65cde3ce79
Merge branch 'master' into Faster_dd_spatial_searching-cjamin 2019-12-03 19:18:15 +01:00