Commit Graph

115 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé 70ac415808 Fix warnings 2023-04-06 00:40:52 +02:00
Mael Rouxel-Labbé a0ed8938d6 Fix warnings 2023-03-27 12:54:56 +02:00
Mael Rouxel-Labbé 66fe07936a Clean include guards 2023-03-23 11:49:18 +01:00
Mael Rouxel-Labbé a936b6d2d1 Rename enter_weights > enter_countour_weights 2023-03-23 11:49:01 +01:00
Mael Rouxel-Labbé 298440062f Update weighted skeleton construction, offsetting, and extrusion to new API 2023-03-18 21:33:40 +01:00
Mael Rouxel-Labbé 8078541f0f Don't store trisegments in the VertexData as it's already in the Vertex 2023-03-07 01:04:08 +01:00
Mael Rouxel-Labbé d609a64b0f Debug code cleaning 2023-03-07 01:03:52 +01:00
Mael Rouxel-Labbé 7b3ef62746 v2 of simply-connected enforcement + extrude for wsls of pwh 2023-03-06 20:44:14 +01:00
Mael Rouxel-Labbé 0404a616a2 Replace boost::intrusive_ptr and its machinery by a simple shared_ptr 2023-03-06 13:24:07 +01:00
Mael Rouxel-Labbé 99671f7867 Use kernel functor 2023-03-04 20:47:36 +01:00
Mael Rouxel-Labbé 8125fb62e1 Avoid needless copies 2023-03-04 20:47:16 +01:00
Mael Rouxel-Labbé 3003518ae9 Fix missing header includes 2023-03-03 23:22:53 +01:00
Mael Rouxel-Labbé 302dfd8846 Add a postprocessing step to ensure that all skeleton faces are simply connected 2023-03-03 15:41:54 +01:00
Mael Rouxel-Labbé 6893d831e3 Remove dangling bisectors ASAP to keep a valid (and printable) SLS HDS
Safe because it's a list-based HDS, and we're keeping handles left and
right already anyway.
2023-03-03 02:13:48 +01:00
Mael Rouxel-Labbé 63b7f9cb33 Replace archaic traits usage with _object() (which the concept requires) 2023-03-03 02:10:43 +01:00
Mael Rouxel-Labbé 8782d12930 Implement split event filtering for weighted SLS 2023-02-22 14:30:22 +01:00
Mael Rouxel-Labbé 23a9ab5a49 Improve debug messages 2023-02-22 10:39:54 +01:00
Mael Rouxel-Labbé d031add9d8 Misc debug improvements 2023-02-20 12:23:27 +01:00
Mael Rouxel-Labbé 62be888c48 Fix precondition 2023-02-13 17:29:20 +01:00
Mael Rouxel-Labbé 15cafdf72c Clean debug messages 2023-02-13 16:10:21 +01:00
Mael Rouxel-Labbé 80311b730c Enforce adjacent collinear segments not having different weights 2023-02-13 16:05:10 +01:00
Mael Rouxel-Labbé f6579ecb2c Misc minor cleaning 2023-02-11 17:34:02 +01:00
Mael Rouxel-Labbé 090084af98 Fix warning 2023-02-09 23:27:42 +01:00
Mael Rouxel-Labbé 182d693e49 Avoid point copy 2023-02-09 23:27:31 +01:00
Mael Rouxel-Labbé cb40b63bb3 weighted SLS: weights in trisegment, fix degenerate cases, weighted outer frame 2023-02-09 23:25:52 +01:00
Mael Rouxel-Labbé ad4b82383d Debug code improvements 2023-02-09 23:22:21 +01:00
Mael Rouxel-Labbé fd627e141c Misc minor fixes 2023-01-27 18:22:28 +01:00
Mael Rouxel-Labbé 114db88652 Add weighted (interior) straight skeletons 2023-01-27 18:17:04 +01:00
Mael Rouxel-Labbé f767612b24 Merge branch 'SLS-Memorize_trisegments-GF' into SLS-Weighted_skeleton-GF 2023-01-26 10:53:11 +01:00
Mael Rouxel-Labbé b2d562e582 Store trisegments within SLS vertices
This violates the concept, but it replaces storage of triedges, which
was also violating the concept...
2023-01-04 20:41:03 +01:00
Sébastien Loriot 4f5f8341cc use std::enable_if_t 2022-06-10 07:37:53 +02:00
Mael Rouxel-Labbé 1f45360d7a Merge remote-tracking branch 'cgal/master' into SDG-Fix_doc-GF 2021-01-26 09:05:24 +01:00
Mael Rouxel-Labbé 6b87fe393d Fix various grammar issues 2020-12-05 11:11:33 +01:00
Mael Rouxel-Labbé 7d311d3ad5 Fix taking the middle of the gap between e2 and e0 as seed of the bissector
See code for more information.
2020-11-27 13:56:17 +01:00
Mael Rouxel-Labbé c502e935f9 Misc minor improvements 2020-11-27 13:56:17 +01:00
Mael Rouxel-Labbé 7385ebb806 Refresh priority queues before calling top() if simultaneous events are present 2020-11-09 18:22:33 +01:00
Mael Rouxel-Labbé 9c8aeb0242 Fix strict ordering's asymmetry condition not being satisfied in Split Event PQ 2020-11-06 17:27:43 +01:00
Mael Rouxel-Labbé d609a9607e Fix Split Queue Comparer in edge case of two invalid pseudo-splits 2020-11-06 17:26:59 +01:00
Sébastien Loriot d493dfce88 exclude speed harmonization at compile time 2020-11-03 11:09:15 +01:00
Mael Rouxel-Labbé 05e4c44216 Misc minor fixes 2020-10-16 14:38:11 +02:00
Mael c5326a4832
Commit fixes from @sloriot's review
Co-authored-by: Sebastien Loriot <sebastien.loriot@cgal.org>
2020-10-13 09:56:32 +02:00
Mael Rouxel-Labbé 145f204517 Misc minor fixes 2020-10-09 18:36:53 +02:00
Mael Rouxel-Labbé 6bba0da37f Various minor fixes 2020-10-06 17:54:24 +02:00
Mael Rouxel-Labbé 75137526b6 Misc tiny fixes 2020-10-05 18:35:08 +02:00
Mael Rouxel-Labbé b6333ed459 Harmonize speeds of collinear input segments + caching for non-filtered kernels 2020-10-05 18:29:34 +02:00
Mael Rouxel-Labbé 2930624d7f Prevent tangleness in multisplits using certified angle-based local queue sorts
The goal is to prevent multi splits that can cross each other without noticing.
such as a square with four square holes, and two diagonal splits
in the middle.

Local split queues are sorted to give  priority to the smallest angle among possible split
events, we forbid diagonal splits and thus a later split cannot have
a triedge with two different subparts of the polygon.

The exact criterion for sorting is the angle within a triedge,
between the bisector and the supporting line of e2 (possibly swapped
in case of pseudo-splits, see code).
2020-09-29 20:02:06 +02:00
Mael Rouxel-Labbé 4d85f845e7 Enhance debug output 2020-09-29 20:00:55 +02:00
Mael Rouxel-Labbé 655d4275f6 Add missing header includes in SS2 2020-09-11 15:00:27 +02:00
Mael Rouxel-Labbé 79378f6871 Do multiple passes to remove multi nodes
Fix for https://github.com/CGAL/cgal/issues/4533

In a configuration like in Issue 4533, there are a lot of faces
with multi-nodes, with all degenerate halfedges being
the same vertex (the origin). Because of locks in the current implementation,
it is not possible to (combinatorially) collapse all degenerate halfedges
at once.

With this fix, the algorithm attempts to collapse multiple times, until
nothing can be done.

A better fix would be to rewrite the way halfedges are collapsed,
but this is a lot of work, so this quick fix will be used for now.

In theoretical degenerate cases, the complexity could be quadratic,
but it should never happen in real life (the norway data set
or example does not even have multi-nodes)
2020-09-02 18:15:02 +02:00
Sébastien Loriot 587d402452 use local lists instead of a global one for lookup on SLAV 2020-08-19 17:20:19 +02:00