Commit Graph

931 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé 38312c1e63 Use 'FT' as template parameter rather than 'Traits' 2023-02-14 10:04:03 +01:00
Mael Rouxel-Labbé 07ce38a0f6 Add missing existing requirement for SLS' HDS halfedges 2023-02-14 10:03:30 +01:00
Mael Rouxel-Labbé 43f7fdf017 Document the weight requirement for SLS' HDS halfedges 2023-02-14 10:03:09 +01:00
Mael Rouxel-Labbé bc9e01a08d Misc minor fixes 2023-02-14 00:19:22 +01:00
Mael Rouxel-Labbé 6a44bf6244 Simplify outer frame offset removal: the outerframe is always at [0] 2023-02-14 00:18:55 +01:00
Mael Rouxel-Labbé 13cdc1004e Temp. disable an optimization and an assertion (not yet compatible w/ WSLS) 2023-02-13 23:46:17 +01:00
Mael Rouxel-Labbé fee6c36d51 Enable passing min & max weights through argv 2023-02-13 23:44:39 +01:00
Mael Rouxel-Labbé 9d43ea40df Fix weight order in exterior skeletons 2023-02-13 23:44:09 +01:00
Mael Rouxel-Labbé 0582f5fd42 Misc minor debug fixes 2023-02-13 23:43:37 +01:00
Mael Rouxel-Labbé c5c76db91d Use 0 weight to encode 90° taper angles 2023-02-13 23:41:47 +01:00
Mael Rouxel-Labbé 2d0ba983ba Align IO precision to 17 2023-02-13 17:42:09 +01:00
Mael Rouxel-Labbé 62be888c48 Fix precondition 2023-02-13 17:29:20 +01:00
Mael Rouxel-Labbé c6f23d0bc1 Do not generate different weights for adjacent collinear input segments 2023-02-13 17:28:30 +01:00
Mael Rouxel-Labbé a7a838251d Do not use infinity for number types that do not have it 2023-02-13 17:26:26 +01:00
Mael Rouxel-Labbé ef3023c270 Fix compilation after (undocumented) visitor API change 2023-02-13 16:22:07 +01:00
Mael Rouxel-Labbé 15cafdf72c Clean debug messages 2023-02-13 16:10:21 +01:00
Mael Rouxel-Labbé 62a2c9745a Initialize weights to 1 to make it seamless for unweighted SLS 2023-02-13 16:07:32 +01:00
Mael Rouxel-Labbé 3c7339933b Minor fixes for weighted trisegments 2023-02-13 16:06:37 +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é b51b4d8713 Fix SLS iterators to actually handle all possible models 2023-02-13 16:04:33 +01:00
Mael Rouxel-Labbé f6579ecb2c Misc minor cleaning 2023-02-11 17:34:02 +01:00
Mael Rouxel-Labbé 37d283ce7a Create a polygon mesh at the end of the pipeline 2023-02-11 17:32:48 +01:00
Mael Rouxel-Labbé 56fa7b9099 Fix time and intersection computations for collinear segments with != weights 2023-02-10 16:59:08 +01:00
Mael Rouxel-Labbé 4bdd91da80 Specify template to avoid ambiguous call 2023-02-10 16:58:33 +01:00
Mael Rouxel-Labbé 0b2b4bffae Do not collect lateral faces corresponding to the outer frame (exterior offset) 2023-02-10 16:57:49 +01:00
Mael Rouxel-Labbé 99d2edf365 Reserve some reasonnable space for the polygon soup 2023-02-10 16:57:13 +01:00
Mael Rouxel-Labbé 419bab61db Fix orientation of lateral faces 2023-02-10 16:56:59 +01:00
Mael Rouxel-Labbé bc7dce7d85 Fix missing semicolon 2023-02-10 16:55:44 +01:00
Mael Rouxel-Labbé 62c3212a6c Do not call visitor on duplicate offset points 2023-02-10 16:55:33 +01:00
Mael Rouxel-Labbé ea4d42f7e3 Work on weighted SLS offset with max height 2023-02-09 23:32:03 +01:00
Mael Rouxel-Labbé e6398a330f Clean macros 2023-02-09 23:31:16 +01:00
Mael Rouxel-Labbé dea1a65631 Add weighted SLS offset functions 2023-02-09 23:30:40 +01:00
Mael Rouxel-Labbé 7449c7419a Do not needless lose precision in outer frame computations 2023-02-09 23:28:52 +01:00
Mael Rouxel-Labbé c25c407b81 Remove unused trisegment member (EventTriedge was replaced by a Trisegment) 2023-02-09 23:27:56 +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é 7390209a54 Enhance visitor API 2023-02-09 23:27:14 +01:00
Mael Rouxel-Labbé 9d9a51731a Fix typo 2023-02-09 23:27:01 +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é f58cd7fb9d Make Compare_offset_against_event_time() public 2023-02-09 23:16:35 +01:00
Mael Rouxel-Labbé 5b89b81f8b Deactivate the "is_simple_2" precondition for strictly simple poly orientation
Recent changes to set_use_assertions have made it so that you need to also
define a macro to be able to use it, which makes it very unpractical.
2023-02-09 23:12:40 +01:00
Mael Rouxel-Labbé 0eb6f8062a Minor existing SLS doc fix 2023-02-03 16:46:44 +01:00
Mael 153c603209
Merge branch 'master' into CGAL-Clean_CMakeLists.txt-GF 2023-01-27 22:09:02 +01:00
Laurent Rineau 5f8930db8c Merge branch '5.5.x-branch'
# Conflicts:
#	Convex_hull_2/test/Convex_hull_2/ch_test_CH.cpp
#	Convex_hull_2/test/Convex_hull_2/ch_test_SC.cpp
#	Convex_hull_2/test/Convex_hull_2/ch_test_SH.cpp
#	Convex_hull_2/test/Convex_hull_2/ch_test_SS.cpp
#	Straight_skeleton_2/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h
#	Straight_skeleton_2/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h
2023-01-27 21:16:14 +01:00
Laurent Rineau c5176ef327 Merge pull request #7166 from MaelRL/SLS-Memorize_trisegments-GF
Fix seed computation in SLS offset computation
2023-01-27 20:52:10 +01:00
Mael Rouxel-Labbé 5059a01acc Add an example of weighted skeletons 2023-01-27 18:34:16 +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é 46ba764a8e Reorganise skeleton_HDS::halfedge model accessors 2023-01-27 18:10:01 +01:00
Mael Rouxel-Labbé a72c871bf9 Distinguish between Protector usage and split filtering 2023-01-27 18:08:27 +01:00
Mael Rouxel-Labbé d3e8fadb33 Cache's get / is_cached are const 2023-01-27 18:06:55 +01:00
Mael Rouxel-Labbé 23ed5a06e7 Document SkeletonHDS::halfedge::id() requirement 2023-01-27 18:05:34 +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é aa1cb4b664 Add missing include 2023-01-05 12:39:58 +01:00
Mael Rouxel-Labbé 11f0902573 Add new test 2023-01-05 11:52:56 +01:00
Mael Rouxel-Labbé fd23450d58 Link issue7149 with Qt5 2023-01-05 10:15:06 +01:00
Mael Rouxel-Labbé 6b5954d2cf Remove another unused function which isn't part of the concept 2023-01-04 22:11:13 +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
Mael Rouxel-Labbé 2410d8e304 Reduce the (large) delta between SLS HDS concepts and models... 2023-01-04 16:36:34 +01:00
Mael Rouxel-Labbé c38ff2b4e2 Move Segment_2_with_ID to aux 2023-01-04 16:26:31 +01:00
Mael Rouxel-Labbé b1b7cacf42 Minor debug improvements 2023-01-04 16:26:09 +01:00
Mael Rouxel-Labbé e2f1940747 Fix spelling 2023-01-04 16:17:15 +01:00
Mael 0ff7882997
Merge branch 'master' into feature/bug_documentation_spell_20221113 2022-12-06 22:21:06 +01:00
Mael 6538b22e06
Merge branch 'master' into CGAL-Clean_CMakeLists.txt-GF 2022-12-05 16:03:41 +01:00
Mael Rouxel-Labbé b5c21e1f5d Http -> https + update some dead links 2022-11-23 18:54:37 +01:00
albert-github c32b1f4127 spelling corrections
Some spelling corrections (Directories starting with `S` rest - `W`),
2022-11-16 13:22:39 +01:00
albert-github 45478184de spelling corrections
Some spelling corrections (Directories starting with `E`-` L`),
some backward work
some forward work
2022-11-15 13:39:40 +01:00
Andreas Fabri fa3f8a5872 Do the test if we want to assert at runtime only when CGAL_ENABLE_DISABLE_ASSERTIONS_AT_RUNTIME is defined 2022-10-07 11:21:02 +01:00
Andreas Fabri 9b357c6aff Reintroduce the runtime switch to enable/disable assrtions 2022-10-04 10:35:05 +01:00
Andreas Fabri 15c0ead499 Straight_skeleton_2 2022-09-27 09:34:25 +01:00
Mael Rouxel-Labbé 7cb21c24b0 Uniformize message() for missing 3rd party libraries
STATUS for non-essential, NOTICE for important stuff
2022-09-06 16:07:31 +02:00
Sébastien Loriot 861588abe1 Merge 'sloriot/CGAL-std_type_traits' into master 2022-08-03 20:19:51 +02:00
Sébastien Loriot 12795ba29c Merge remote-tracking branch 'cgal/5.4.x-branch' into HEAD 2022-07-12 18:21:16 +02:00
Sébastien Loriot 45b5fd43f8 fix more warnings 2022-07-12 18:18:34 +02:00
Sébastien Loriot 10903485c5 rename typedef 2022-06-30 09:19:31 +02:00
Sébastien Loriot 6462cac12e move back functions \o^o/ 2022-06-23 16:29:11 +02:00
Sébastien Loriot d6888482fe add an example to compute the exterior offset of disjoint polygons with holes 2022-06-23 15:54:27 +02:00
Sébastien Loriot e7186992c7 add a test for the exterior of a polygon with holes 2022-06-23 14:40:36 +02:00
Sébastien Loriot 86938310e6 update testsuite 2022-06-23 14:31:30 +02:00
Sébastien Loriot fd36330d2a update doc 2022-06-23 14:00:16 +02:00
Sébastien Loriot ccb0db385b make create_exterior_skeleton_and_offset_polygons_with_holes_2 ignore the offset of the outer frame 2022-06-23 14:00:16 +02:00
Sébastien Loriot f6680b793f move function in right header 2022-06-23 14:00:16 +02:00
Sébastien Loriot 79693c5674 add exterior offset parts of polygon with holes 2022-06-23 14:00:16 +02:00
Sébastien Loriot 034e5199b0 remove leftover 2022-06-23 14:00:16 +02:00
Sébastien Loriot 1b5ad071ff move function in right header 2022-06-23 14:00:16 +02:00
Sébastien Loriot 3fa436459d BOOST_MPL_ASSERT -> static_assert 2022-06-10 08:46:01 +02:00
Sébastien Loriot ac8b6d4731 boost::is_same --> std::is_same 2022-06-10 08:18:20 +02:00
Sébastien Loriot 4f5f8341cc use std::enable_if_t 2022-06-10 07:37:53 +02:00
Laurent Rineau 2288225448 Massive update of CMake policies to version 3.23 2022-05-06 09:34:35 +02:00
Laurent Rineau 6e114b31ae Merge pull request #6107 from efifogel/Polygon-fixes-efif
Polygon fixes efif

# Conflicts:
#	Installation/CHANGES.md
2022-03-18 15:59:58 +01:00
Andreas Fabri 2a513a0195 Clean up Straight_skeleton as Unique_hash_map is not used at all 2022-03-09 13:23:07 +00:00
Sébastien Loriot 5f23e76911 Merge remote-tracking branch 'efifogel/Polygon-fixes-efif' into HEAD 2022-02-01 20:08:56 +01:00
Laurent Rineau 4d38f2b7b3 Merge pull request #6114 from sloriot/CGAL-cmake_clean_up
Clean cmake scripts of examples and tests
2021-11-18 12:27:19 +01:00
Guillaume Damiand 2bbcabe71b The size of argv array is now 2, ending with nullptr. 2021-11-11 17:23:37 +01:00
Guillaume Damiand ee11c858b5 The size of argv array is changed to 1 in all basic viewers. 2021-11-10 09:59:48 +01:00
Sébastien Loriot ab48f63e30 update latest cmake version tested 2021-11-09 10:58:47 +01:00
Sébastien Loriot 58181afcdb remove useless include directives 2021-11-09 10:16:12 +01:00
Efi Fogel 4dbf509f7c Fixed GeneralPolygonWithHoles_2 concept: requires now nested Polygon_2 type instead of General_polygon_2 2021-11-03 18:16:40 +02:00
Sébastien Loriot 08b1457649 add CGAL::CGAL_Basic_viewer target 2021-11-01 11:07:55 +01:00
Sébastien Loriot 74c029cc68 Merge remote-tracking branch 'sloriot/CGAL-restore_rounding_mode-5.3' 2021-09-09 11:44:36 +02:00
Sébastien Loriot 6bae0e3939 Merge remote-tracking branch 'sloriot/CGAL-restore_rounding_mode' 2021-09-09 11:09:16 +02:00
Sébastien Loriot c8624ee0b3 check that the rounding mode when doing exact computation is to-nearest 2021-09-09 11:01:03 +02:00
Sébastien Loriot 106645ec2e make sure the rounding mode is to nearest when doing exact computations
Thoses changes should have been done when the code was modified for
CGAL_CFG_FPU_ROUNDING_MODE_UNWINDING_VC_BUG
2021-09-09 09:55:16 +02:00
Maxime Gimeno a3d1765ab4 Merge remote-tracking branch 'cgal/master' into CGAL-Clean_up_boost_versions-maxGimeno 2021-07-19 14:18:40 +02:00
Laurent Rineau 2c4a5db3ce Merge pull request #5631 from GilesBathgate/STL_ext-fix_uncaught_exceptions_cleanup-GilesBathgate
Fix uncaught exceptions cleanup
2021-05-18 18:14:14 +02:00
Maxime Gimeno 393ae7dae6 Clean-up boost_version reqs 2021-05-12 15:03:53 +02:00
Sébastien Loriot 4e519a3c7a move documented IO functions in IO namespace 2021-05-05 13:15:37 +02:00
Sébastien Loriot cfc0fee1c4 add missing IO namespace 2021-05-04 14:58:55 +02:00
Sébastien Loriot fb6f703b55 IO namespace for files in IO directories 2021-05-04 14:36:06 +02:00
Giles Bathgate 5ecd85248a Fix capitalisation of macro name. 2021-04-28 21:03:45 +01:00
Giles Bathgate 0ef8127c71 The CGAL_NOEXCEPT macro is no longer needed 2021-04-28 21:03:00 +01:00
Sebastien Loriot b7323389c7
Merge pull request #5622 from maxGimeno/CMake-Update_versions_in_scripts-maxGimeno
Update maximum cmake versions
2021-04-17 10:58:14 +02:00
Maxime Gimeno c49152359c update max version of cmake and announce the new minimal in CHANGE.md 2021-04-15 15:08:54 +02:00
Maxime Gimeno 17602e589e Merge remote-tracking branch 'cgal/master' into CGAL-clang_tidy__nullptr_on_Mesh_2-GF 2021-04-07 09:17:51 +02:00
Maxime Gimeno d5811d0a41 clang-tidy on tests 2021-02-18 15:15:12 +01:00
Sébastien Loriot 1e249afdb3 remove some boost::bind 2021-01-06 12:59:11 +01:00
Giles Bathgate a7abec0a42 Add noexcept to Ref_counted_base in Straight_skeleton_aux.h 2020-11-29 15:21:49 +00:00
Laurent Rineau 21755b1123 Merge pull request #5245 from GilesBathgate/create-assertions-fix
Allow -DNDEBUG and CGAL_nnn_assertions at the same time
2021-03-24 15:05:41 +01:00
Mael Rouxel-Labbé 5efa544734 Merge remote-tracking branch 'cgal/master' into SDG-Fix_doc-GF 2021-02-22 17:19:40 +01: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
Giles Bathgate 07120b82fa Add missing header includes 2020-12-04 19:42:21 +00:00
Giles Bathgate 5a36ff89b5 Drop NDEBUG it is already visible through CGAL_NO_ASSERTIONS 2020-12-04 19:42:21 +00:00
Mael Rouxel-Labbé 0e67ee3876 Add data from issue #5177 to SLS testsuite
@khumarahn
https://github.com/CGAL/cgal/issues/5177
2020-11-27 14:12:17 +01:00
Mael Rouxel-Labbé b43e578322 Misc cleaning 2020-11-27 14:01:41 +01:00
Mael Rouxel-Labbé b532e76d89 Enhance tests 2020-11-27 13:56:17 +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
Laurent Rineau 5bfd0c2340 Merge pull request #5155 from mhsaar/patch-9
Update test_sls_offset.cpp
2020-11-25 10:21:54 +01:00
Laurent Rineau 49e7ddccc9 Merge pull request #4243 from maxGimeno/Cmake_improvements-maxGimeno
General CMake improvements
2020-11-13 15:43:54 +01:00
Sebastien Loriot 2475a0c19c
Add missing .h 2020-11-12 11:06:25 +01:00
Maxime Gimeno e172dfbcb6 Merge remote-tracking branch 'cgal/master' into Cmake_improvements-maxGimeno 2020-11-12 09:04:01 +01:00
Michael Hemmer c47af04469
Update print.h
Adding includes for what is used to allow header to be compiled on its own.
2020-11-11 16:59:52 +01:00
Michael Hemmer 9fa318c6f0
Update test_sls_offset.cpp
Avoid unused variable in opt mode.
2020-11-11 16:56:37 +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é 770b7f7a28 Take FT by reference in for(:) loop 2020-11-07 18:50:40 +01:00
Mael Rouxel-Labbé 36cccb0d5c Remove extra backticks 2020-11-07 18:44:46 +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 03a225d7b4 do not use extra precision 2020-11-06 10:11:03 +01:00
Sébastien Loriot 61cb7b5930 accomodate to the update of is_valid() function 2020-11-06 10:10:31 +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é ee7eff3d77 Add missing data file 2020-11-03 11:08:32 +01:00
Mael Rouxel-Labbé 923ac03410 Fix traits test not setting up segment IDs in a Traits with IDs 2020-11-02 18:48:24 +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é 4488b7c64d Clean examples and tests 2020-10-09 18:40:11 +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é 6768393050 Improve SLS doc 2020-10-09 14:34:33 +02:00
Mael Rouxel-Labbé dc893884d8 Test the API of SLS 2020-10-08 22:59:08 +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é 93869786bc Fix countless issues in SLS's doc 2020-10-07 19:27:10 +02:00
Mael Rouxel-Labbé 6b6c86dd26 Enhance SLS/Offset tests 2020-10-06 17:56:01 +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é 6cc1e99dda Add another batch of tests 2020-09-16 20:41:12 +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é a9886a00e2 Continue actually testing stuff... and finding bugs... 2020-09-14 19:58:32 +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é 05836c36d9 Add some tests for interior/exterior skeleton, with expected results 2020-09-11 20:38:08 +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é 71da11f597 Skeleton offset test improvements 2020-09-11 19:21:39 +02:00
Mael Rouxel-Labbé c8006669f5 Use proper namespaces 2020-09-11 19:20:36 +02:00
Mael Rouxel-Labbé 8976876c4d Remove duplicate test data 2020-09-11 16:52:28 +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é 183678a8ff Start actually testing SLS (offset, WIP) 2020-09-10 19:34:05 +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é 95334645e7 Fix inconsistency in kernel parameter names / doc 2020-09-10 16:06:55 +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é b3ece4473b Fix tiny formatting issue in test data 2020-09-08 12:16:30 +02:00