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
Jane Tournois
29b6963b98
add missing include and namespace
2020-11-06 12:28:30 +01:00
Sébastien Loriot
314db57a38
disable polygon assertion
...
allow strictly simple polygons and epick construction issues
2020-11-06 12:03:15 +01:00
Sébastien Loriot
e1dd96414d
use non-protected interval type and use protector
...
guarantee that the same rounding mode will be used when approximating
the exact value to interval
2020-11-06 10:43:08 +01:00
Sébastien Loriot
dd49cb6035
remove unused variable
2020-11-06 10:10:11 +01:00
Sébastien Loriot
3d6e976770
add extra checks to make sure we do not use intervals with the wrong rounding mode
2020-11-03 11:40:24 +01:00
Sébastien Loriot
1d2af01102
add missing protector
2020-11-03 11:09:15 +01:00
Sébastien Loriot
d493dfce88
exclude speed harmonization at compile time
2020-11-03 11:09:15 +01:00
Mael Rouxel-Labbé
7fccb08191
Fix disabling harmonization for everything instead of just EPECK_w_SQRT
2020-11-02 18:47:41 +01:00
Sébastien Loriot
6221751bf1
fix warning
2020-11-02 15:27:39 +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é
3b57f6c4f5
Add missing header include
2020-10-12 11:01:10 +02:00
Mael Rouxel-Labbé
145f204517
Misc minor fixes
2020-10-09 18:36:53 +02:00
Mael Rouxel-Labbé
6601a5ec93
Extract CGAL::Trisegment_2 from _aux.h (needs to be documented for concepts)
2020-10-09 14:35:29 +02:00
Mael Rouxel-Labbé
9051fc1d23
Overhaul & enhance SLS's free functions to provide & complete the advertised API
2020-10-08 22:54:11 +02:00
Mael Rouxel-Labbé
e9c3531145
Fix missing namespace
2020-10-08 22:36:36 +02:00
Mael Rouxel-Labbé
7309da88c1
Misc minor fixes
2020-10-07 19:36:32 +02:00
Mael Rouxel-Labbé
14644c4ae6
Fix false positive assertions in offset construction:
...
If the constructions are not exact, you might get a degenerate polygon
even if predicate-wise it is not a degenerate polygon (Hook inside).
Let's ignore degenerate polygons in that case.
2020-10-07 19:33:36 +02:00
Mael Rouxel-Labbé
13f19c4ff1
Template Trisegment_2 with the inner Segment type
...
Needed because it is now documented
2020-10-07 19:28:54 +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é
e3679d1441
Print vertex and halfedge IDs in the basic drawers
2020-09-25 09:08:15 +02:00
Mael Rouxel-Labbé
a7af1ab048
Add some more debug dumps
2020-09-25 09:07:52 +02:00
Mael Rouxel-Labbé
3b584d1167
Add a convenience function to get the other collinear edge
2020-09-25 09:06:57 +02:00
Mael Rouxel-Labbé
9c80bf709c
Check for non-degenerate edges in the skeleton's validity functions
2020-09-25 09:06:10 +02:00
Mael Rouxel-Labbé
250b0628e8
Fix some bisectors sometimes being left marked as visited
2020-09-16 19:21:12 +02:00
Mael Rouxel-Labbé
7fb8cd8b80
Always exit faces ASAP when constructing offset to handle nm configurations
2020-09-16 19:19:49 +02:00
Mael Rouxel-Labbé
9e2085e030
Fix offset time conversions missing an intermediate conversion
2020-09-16 12:56:11 +02:00
Mael Rouxel-Labbé
2a10bdb3d6
Fix taking an extra prev()
2020-09-15 17:37:58 +02:00
Mael Rouxel-Labbé
9a90397c6c
Another fix for offset construction in degenerate configurations
2020-09-14 17:57:18 +02:00
Mael Rouxel-Labbé
f66d026cb3
Also draw points in basic drawing + add colors depending on vertex type
2020-09-11 20:08:45 +02:00
Mael Rouxel-Labbé
1fc41573e7
Fix a number of issues in the API of create_interior/exterior_skeleton
...
- Calls are broken with Polygon_with_holes and ranges
- is_simple() is not callable for anything else than Polygon_2
- Missing API for exterior
2020-09-11 20:07:37 +02:00
Mael Rouxel-Labbé
c8006669f5
Use proper namespaces
2020-09-11 19:20:36 +02:00
Mael Rouxel-Labbé
655d4275f6
Add missing header includes in SS2
2020-09-11 15:00:27 +02:00
Mael Rouxel-Labbé
dce8f123ea
Enforce (strictly) positive offset times
2020-09-11 14:12:15 +02:00
Mael Rouxel-Labbé
88e4be548d
Fix Straight_skeleton_2::is_valid tolerating fictitious vertices in complete SS
2020-09-11 14:01:10 +02:00
Mael Rouxel-Labbé
efc333f34a
Fix SLS offset functions (circular calls, doc/code inconsistencies, conversion)
...
WIP
2020-09-10 19:30:52 +02:00
Mael Rouxel-Labbé
8950cdef40
Fix conversion issues when computing the outer frame margin
...
Similar to d8d6935
2020-09-10 19:29:10 +02:00
Mael Rouxel-Labbé
bcd7cd2cfc
Draw skeleton's bisector edges in red (contour in black)
2020-09-10 15:44:45 +02:00
Mael Rouxel-Labbé
e26fa8a1f7
Enhance debug dumps
2020-09-10 15:43:51 +02:00
Mael Rouxel-Labbé
85295a0072
Change debug verbose level
2020-09-07 19:03:20 +02:00
Mael Rouxel-Labbé
d2cbbfed28
Fix offset construction issues when offset edges include skeleton bisectors
...
See comment in the code for an explanation.
2020-09-07 18:58:19 +02:00
Mael Rouxel-Labbé
d8d6935559
Fix MaxTime conversion when FT is not convertible to K1::FT
...
Although the documentation does say that it is required
to be implicitely convertible. In practice, this wasn't
checked and failed silently: the FT in the template parameter
is not necessarily Input_kernel::FT, but could be e.g. double.
Then the call to Cartesian_converter meant that it actually used the overload:
bool operator()(bool) { ... }
if FT was not convertible to K1::FT (e.g. FT=double and
K1=EPECK_w/_SQRT). Thus this returned... 1.
This commit changes the requirement to be only constructible rather
than convertible, and explicitely creates a K1::FT.
2020-09-04 17:59:48 +02:00
Mael Rouxel-Labbé
a0ed2280b8
Do not explore null nodes
2020-09-04 10:49:50 +02:00