Commit Graph

529 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé ac361834db Restore skeleton reset on failure
Revert 1f98344908
2023-03-03 23:21:02 +01:00
Mael Rouxel-Labbé 9779807a40 Clarify some comments describing the algorithm 2023-03-03 16:52:56 +01:00
Mael Rouxel-Labbé da9674a63e Fix missing set_halfedge() on right side of split 2023-03-03 16:51:38 +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é 7b87eea95a Handle reconnection of fictuous fronts
Can happen for weighted polygon with holes
2023-03-03 15:40:13 +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é 3c9c0dae52 Remove undocumented functors from traits 2023-03-03 02:10:47 +01:00
Mael Rouxel-Labbé fd770a9763 Fix debug code + debug code improvements 2023-03-03 02:10:47 +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é a00b48a3c6 Harmonize regardless of the weight (since unweighted line coeffs are stored) 2023-03-01 13:46:48 +01:00
Mael Rouxel-Labbé 6452ad0e41 Do not take SLS weights (speed ranges) by reference 2023-02-28 16:46:30 +01:00
Mael Rouxel-Labbé d3398ce00d Allow downward extrusion 2023-02-28 16:46:30 +01:00
Mael Rouxel-Labbé baebae65b5 Dump outputs in taper testsuite 2023-02-28 16:46:23 +01:00
Mael Rouxel-Labbé 90877e18b5 Add SLS/extrude_skeleton.h 2023-02-24 18:50:53 +01:00
Mael Rouxel-Labbé fdf1823336 Fix offset point coordinates 2023-02-23 14:48:45 +01:00
Mael Rouxel-Labbé 39ec19b940 Clarify comment 2023-02-23 11:23:23 +01:00
Mael Rouxel-Labbé d7eaa7782e Give more (visual) breathing room by increasing the weights of the outer frame
This is purely cosmetic, it makes it so the bisectors of the input polygon
will end closer to the outer frame (a larger weight means one's face
is smaller).
2023-02-23 11:15:09 +01:00
Mael Rouxel-Labbé b3523fd879 Misc debug improvements 2023-02-23 11:14:48 +01:00
Mael Rouxel-Labbé f7533877e2 Fix offset point construction not taking weights into account in collinear cases 2023-02-23 11:13:28 +01:00
Mael Rouxel-Labbé e9e6c35eea Temporarily disable split event filtering (currently broken for weighted SLS) 2023-02-23 10:37:25 +01:00
Mael Rouxel-Labbé 4952eb2ac7 Remove intrinsic assertions
Never used + has false negatives
2023-02-23 10:35:29 +01:00
Mael Rouxel-Labbé 8d5484919a Fix compilation 2023-02-22 14:47:50 +01:00
Mael Rouxel-Labbé 8782d12930 Implement split event filtering for weighted SLS 2023-02-22 14:30:22 +01:00
Mael Rouxel-Labbé 5ceb8227df Fix missing namespace 2023-02-22 14:30:02 +01:00
Mael Rouxel-Labbé 732559e80b Cache unweighted coefficients instead of weighted coefficients 2023-02-22 14:29:39 +01:00
Mael Rouxel-Labbé 2b052e00ea Use inexact_norm() rather than inexact_sqrt(aLV.aLV) 2023-02-22 11:03:03 +01:00
Mael Rouxel-Labbé a1845691d5 Use std::hypot rather than explicitely computing sqrt(x²+y²) 2023-02-22 11:01:36 +01:00
Mael Rouxel-Labbé 23a9ab5a49 Improve debug messages 2023-02-22 10:39:54 +01:00
Mael Rouxel-Labbé 1ffde0eeaf Simplify is_equal + is_smaller into a single compare() call 2023-02-20 16:18:26 +01:00
Mael Rouxel-Labbé d06f58fc70 Doc improvements 2023-02-20 16:18:05 +01:00
Mael Rouxel-Labbé a93a083df6 Avoid needless constructions if the midpoint is an input point 2023-02-20 16:16:51 +01:00
Mael Rouxel-Labbé 606bef047b Do not compute a second SideOfBisector if the first one failed 2023-02-20 16:16:02 +01:00
Mael Rouxel-Labbé 5e56614d03 Fix subtle inconsistency between line displacement representations
Rarely resulted in broken skeletons on very regular inputs

See comments in the code.
2023-02-20 15:49:36 +01:00
Mael Rouxel-Labbé f4c1f204ad Re-introduce compute_noralized_line_coeffs (useful when weights are not used) 2023-02-20 14:33:58 +01:00
Mael Rouxel-Labbé d031add9d8 Misc debug improvements 2023-02-20 12:23:27 +01:00
Mael Rouxel-Labbé 8cfbefdcc1 Do not needlessly compare norms, weights are enough 2023-02-16 15:05:47 +01:00
Mael Rouxel-Labbé 4dfd622a64 typename K::Obj rather than Obj<K> since we don't control the traits in theory 2023-02-16 15:05:10 +01:00
Mael Rouxel-Labbé 15c674d5c9 Move helper classes to SLS_aux.h 2023-02-14 14:59:10 +01:00
Mael Rouxel-Labbé 9c5842625b Add missing defaults in collinear enum switch 2023-02-14 14:42:26 +01:00
Mael Rouxel-Labbé 8dc23b8051 Fix CI compilation errors 2023-02-14 13:30:00 +01:00
Mael Rouxel-Labbé 1f98344908 Temporarily do not abort if the returned skeleton is invalid
For polygons with holes
2023-02-14 13:03:38 +01:00
Mael Rouxel-Labbé 68067c039f Merge remote-tracking branch 'cgal/master' into SLS-Weighted_skeleton-GF 2023-02-14 12:26:50 +01:00
Mael Rouxel-Labbé 38312c1e63 Use 'FT' as template parameter rather than 'Traits' 2023-02-14 10:04:03 +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é 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é 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é 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é 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é 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é 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
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é 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é 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é 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 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
Guillaume Damiand d1eed1dc0f start straight skeleton 2, NYF 2022-10-18 16:14:23 +02:00
Guillaume Damiand 24a8004ee0
Merge branch 'master' into gsoc2022-EBVs-Mostafa-ashraf19 2022-10-14 08:53:12 +02:00
Mostafa-ashraf19 68b031e113 Uses overloading functions instead of different fill_buffer names. 2022-10-04 18:43:14 +02:00
Andreas Fabri 9b357c6aff Reintroduce the runtime switch to enable/disable assrtions 2022-10-04 10:35:05 +01:00
Mostafa-ashraf19 796ec13391 Modified GraphicBuffer class name to snake case. 2022-10-03 13:27:22 +02:00
Mostafa-ashraf19 273ead7ab4 Added two versions of add in SS2 2022-10-01 19:07:09 +02:00
Andreas Fabri 15c0ead499 Straight_skeleton_2 2022-09-27 09:34:25 +01:00
Mostafa-ashraf19 fcdad212b5 Applied new APIs version on Straight skeleton 2. 2022-09-24 00:50:13 +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 6462cac12e move back functions \o^o/ 2022-06-23 16:29:11 +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 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 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
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
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 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 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
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é b43e578322 Misc cleaning 2020-11-27 14:01:41 +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
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