Commit Graph

120 Commits

Author SHA1 Message Date
Laurent Rineau 161a313109 fix the move semantic of Constrained_triangulation_plus_2
The comparison functor passed to the constraints hierarchy has a
pointer to the `Constrained_triangulation_plus_2` that contains it.
That means the defaulted move constructor and move assignment operator of `Polyline_constraint_hierarchy_2` cannot be used to
implement the move constructor and move assignment operator of
`Constrained_triangulation_plus_2`.

Add a special constructor for `Polyline_constraint_hierarchy_2`, that is
usee to move the hierarchy and reassign the comparison operator.
2025-06-04 00:51:02 +02:00
Laurent Rineau fa7a62bd69 fix static_assert(std::is_nothrow_move_assignable<CDT_plus_2> 2025-04-29 11:52:40 +02:00
Laurent Rineau 6b97b34a10 Merge 'cgal/master' into Triangulation_3-CDT_3-lrineau 2025-03-21 18:01:23 +01:00
Andreas Fabri f557b1ca6e T2: avoid maybe uninitialized warning 2025-02-24 07:31:43 +00:00
albert-github cc9ab04a27 Spelling correction
Spelling correction
2025-02-19 11:29:09 +01:00
Sébastien Loriot bd358d01fc one extra tmp disable 2025-02-14 13:15:01 +01:00
Laurent Rineau 9572c603d5 fix the static assertions about nothrow-movable
```
/mnt/testsuite/include/CGAL/Conforming_constrained_Delaunay_triangulation_3.h:543:23: error: static assertion failed
  543 |   static_assert(CGAL::is_nothrow_movable_v<CDT_3_impl>);
      |                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
2025-02-12 13:53:18 +01:00
Laurent Rineau 7f88e5b0cf fix compilation errors with MSVC 2017 (VC++ 19.16) 2025-01-28 14:01:58 +01:00
Laurent Rineau b31c2ddbe1 CDt_plus_2: lots of refactoring
- encapsulate the creation/erasure of constraints in the hierarchy class
- add encapsulation in the hierarchy class, to detect direct uses of members
- add a test of `CDt_plus_2::insert_vertex_in_constraint`, and fix it
- rename `concatenate` and `concatenate2` to
  - `concatenate`
  - `prepend`
  and force a rvalue reference on the argument corresponding to the constraint
  that will be swallowed
- rename `split` to `split_tail` and `split2` to `split_head`
- rename `fix_contexts` to give it a longer self-explaning name
2025-01-24 16:29:56 +01:00
Laurent Rineau 796190863c derive Ct_plus_2 from the hierarchy
Instead of storing the hierarchy as a data member, store it
as a hidden (protected) base class. That allows to forward
member functions easily with using-declarations. That also avoids
mismatches between the names in the triangulation and the hierarchy.
2025-01-23 17:51:53 +01:00
Laurent Rineau 239a2adb1a virtual -> override 2025-01-23 17:26:06 +01:00
Laurent Rineau f95027a5c5 Polyline_constraint_hierarchy_2: more refactoring
- refactor the member function `enclosing_constraint`
- refactor things around `sc_to_sc_map`, using new member functions
  to encapsulate the logic
- remove unused/undocuments functions
2025-01-23 09:36:30 +01:00
Laurent Rineau 0b4dfa8952 Polyline_constraint_hierarchy_2: get_contexts -> context 2025-01-23 09:33:35 +01:00
Laurent Rineau 1ce108778f rewrite/refactor a lot of the code 2025-01-22 16:03:26 +01:00
Laurent Rineau eafa97a862 major cleanup of Polyline_constraint_hierarchy_2
- remove all mentions of `Edge` and `Constraint`
- `Subconstraint_iterator` is renamed `Subconstraint_and_contexts_iterator` (because of its value type)
- a new `Subconstraint_iterator`, with value type `Subconstraint`
- a few unused/untested and uncompilable functions are removed from the code
- a lot of internal renamings

== Breaking changes ==

For `Constrained_triangulation_plus_2`, there are a few breaking changes...

- The value type of `subconstraints_begin()`, `subconstraints_end()`, of the range `subconstraints()` has changed to `Subconstraint` (a simple `std::pair` of vertex handles). That is actually a kind of bug-fix, because it was documented as such in the user manual.
- The new member functions `subconstraints_and_contexts_begin()`, `subconstraints_and_contexts_end()`, `subconstraints_and_contexts()` are created get the old value type (`std::pair<const Subconstraint, std::list<Context>*>`).
- A few range types have changed from `CGAL::Iterator_range<It>` to `unspecified_type`, for efficiency reasons.
- Doc fixes.

== Determinism ==

Even if it was not documented, the range `subconstraints()` is deterministic (used by Mesh_2), and `subconstraints_and_contexts()` is not.
2025-01-13 17:06:58 +01:00
Laurent Rineau 56bb4191ed cleanup existing code 2025-01-13 11:24:30 +01:00
Sebastien Loriot 584c7ddb35
remove forward declaration 2024-11-06 10:10:03 +01:00
Andreas Fabri 6f8f89ea37 Remove Defaul 2024-10-08 15:26:05 +01:00
Andreas Fabri 9a12b3048e Triangulation_2: Do not include kernel header 2024-10-08 12:18:30 +01:00
Sébastien Loriot e82d970d19 boost::next -> std::next 2023-04-23 22:37:07 +02:00
Sébastien Loriot 99619dc634 boost::prior -> std::prev 2023-04-23 22:37:07 +02:00
Laurent Rineau e8d1095526 Use Output_rep to display debug info 2023-02-06 10:00:58 +01:00
Andreas Fabri d3fca65ae5 CGAL: No longer per package assertions 2022-09-23 12:49:40 +01:00
Sébastien Loriot 861588abe1 Merge 'sloriot/CGAL-std_type_traits' into master 2022-08-03 20:19:51 +02:00
Sébastien Loriot ac8b6d4731 boost::is_same --> std::is_same 2022-06-10 08:18:20 +02:00
Laurent Rineau 8ba010f760 Factorize the insertion of the intersection point 2022-06-01 14:42:01 +02:00
Laurent Rineau 910c930ede Better usage of the dispatch on `itag` 2022-06-01 12:26:50 +02:00
Andreas Fabri 48c462bf72 Change in CDTplus 2022-03-09 13:46:55 +00:00
Andreas Fabri 8501386fee
Update Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
2022-02-03 08:33:12 +01:00
Andreas Fabri c30327c3ec Triangulation_2: Quiet a warning 2022-02-02 09:38:38 +00:00
Maxime Gimeno 393ae7dae6 Clean-up boost_version reqs 2021-05-12 15:03:53 +02:00
Sebastien Loriot bdc2f3e0db
Merge pull request #5076 from lrineau/Triangulation_2-improve_CDT_plus_2-GF
Triangulation_2: improve CDT_plus_2
2020-10-20 13:28:12 +02:00
Laurent Rineau e37c290841 Better debug messages 2020-10-15 15:08:21 +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
Sébastien Loriot f8414293d7 extra run of the script to remove tabs and trailing whitespaces 2020-03-26 19:27:08 +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
Sébastien Loriot 0779373835 extra run of the script to remove tabs and trailing whitespaces
right after the  merge of 4.14 release branch

+ manual fix on one line in:
    * Arrangement_on_surface_2/include/CGAL/IO/Arr_text_formatter.h
    * .travis/generate_travis.sh
2020-03-26 14:16:06 +01:00
Simon Giraudot 5b8d92e08f First version of split_subconstraint_graph_into_constraints() 2020-02-17 10:28:02 +01:00
Laurent Rineau 20bb2c8428 Add move-semantic to CT_plus_2 and Tr_hierarchy_2 2020-01-31 16:28:07 +01:00
Laurent Rineau 94be80c2eb fix clang-tidy warnings 2020-01-31 16:27:41 +01:00
Andreas Fabri 48fedbae06 Typos: splitted -> split 2019-12-11 16:57:34 +01:00
Mael cf83a22e2d
Merge branch 'master' into T2-Throw_on_collinear_strongly_intersecting_segments-GF 2019-12-02 16:32:29 +01:00
Sébastien Loriot 254d60f642 First pass on removing license notice in header for GPL files 2019-10-19 15:23:19 +02:00
Sébastien Loriot 7356421d80 introduce Commercial license SPDX tag 2019-10-19 12:15:19 +02:00
Sébastien Loriot 9bd9c68b83 update LGPL[23]+ and GPL[23]+ SPDX tags
ack -l --no-svg "SPDX-License-Identifier: GPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-3.0+/SPDX-License-Identifier: GPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-3.0+/SPDX-License-Identifier: LGPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: GPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-2.0+/SPDX-License-Identifier: GPL-2.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-2.0+/SPDX-License-Identifier: LGPL-2.0-or-later/"
2019-10-18 21:57:54 +02:00
Mael Rouxel-Labbé 7a50939809 Deprecate No_intersection_tag
Introduce two new tags instead, to make the behavior change clearer.

Default tag for CDT2 is changed to keep the same behavior as before
(what was called 'No_intersection_tag' and is now called
'No_constraint_intersection_requiring_constructions_tag')
2019-09-19 18:11:33 +02:00
Mael Rouxel-Labbé 9b2a7f09d7 Merge branch 'T2-Throw_on_collinear_strongly_intersecting_segments-GF-old' into T2-Throw_on_collinear_strongly_intersecting_segments-GF 2019-09-19 15:50:49 +02:00
Mael Rouxel-Labbé e955c38215 Add a new tag allowing constraints to intersect if no construction is required 2019-08-22 12:44:16 +02:00
Mael Rouxel-Labbé 013272a466 Fix not throwing on T-like segment intersection (extremity on interior) 2019-08-19 17:55:39 +02:00
Mael Rouxel-Labbé 59e0e87e24 Readability (no real changes) 2019-08-19 17:55:26 +02:00