diff --git a/.gitattributes b/.gitattributes index 456593a2b98..110da0d986e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1588,128 +1588,12 @@ Snap_rounding_2/doc_tex/Snap_rounding_2/sr1.ps -text svneol=unset#application/po Spatial_searching/demo/Spatial_searching/help/index.html svneol=native#text/html Spatial_searching/doc_tex/Spatial_searching/Fig1.gif -text svneol=unset#image/gif Spatial_searching/doc_tex/Spatial_searching/Fig1.ps -text svneol=unset#application/postscript -Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_1.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_2.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_3.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/closer_edge_event_0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/closer_edge_event_1.poly -text svneol=unset#application/octet-stream Straight_skeleton_2/demo/Straight_skeleton_2/data/complex_0.poly -text svneol=unset#application/octet-stream Straight_skeleton_2/demo/Straight_skeleton_2/data/complex_1.poly -text svneol=unset#application/octet-stream Straight_skeleton_2/demo/Straight_skeleton_2/data/complex_2.poly -text svneol=unset#application/octet-stream Straight_skeleton_2/demo/Straight_skeleton_2/data/complex_3.poly -text svneol=unset#application/octet-stream Straight_skeleton_2/demo/Straight_skeleton_2/data/complex_4.poly -text svneol=unset#application/octet-stream Straight_skeleton_2/demo/Straight_skeleton_2/data/complex_5.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_1.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_2.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_3.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_4.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate0a.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate1.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate10.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate11.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate12.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate13.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate2.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate20.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate21.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22b.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22c.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate24.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate25.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate26.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27b.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27c.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27d.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27e.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28a.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28aa.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28b.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28c.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28d.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28x.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate3.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate4.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate5.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate5a.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate6.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate7.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate8.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate9.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate_multinode0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/double_edge.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/double_split.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/equal_times_0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/hole.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/many_holes.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/masked_double_split.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/multi_split_1.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/multinode0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/multinode1.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/near_degenerate_0.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/near_degenerate_1.poly -text -Straight_skeleton_2/demo/Straight_skeleton_2/data/non_simple0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_101.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_102.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_123.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_147.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_22.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_235.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_298.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_319.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_325.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_333.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_38.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_46.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_47.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_476.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_481.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_630.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_638.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_643.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_650.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_656.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_698.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_7.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_70.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_73.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_85.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_90.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/parallels0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/parallels0_b.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_1.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_10.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_11.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_12.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_2.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_3.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_4.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_5.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_5b.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_6.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_7.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_8.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_9.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/rectangle.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/region_4.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/sample.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/sample2.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/sample3.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/sample_102.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_1.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_2.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_3.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/single_split.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/split_at_zero_0.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/square.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/star.poly -text svneol=unset#application/octet-stream -Straight_skeleton_2/demo/Straight_skeleton_2/data/triangle.poly -text svneol=unset#application/octet-stream Straight_skeleton_2/demo/Straight_skeleton_2/help/index.html svneol=native#text/html Straight_skeleton_2/dll/Straight_skeleton_2/A.poly -text Straight_skeleton_2/dll/Straight_skeleton_2/StraightSkeleton.cpp -text diff --git a/Straight_skeleton_2/TODO b/Straight_skeleton_2/TODO index 6c14cb1585e..930b7a80ad5 100644 --- a/Straight_skeleton_2/TODO +++ b/Straight_skeleton_2/TODO @@ -1,10 +1,11 @@ 20 June 2006 - * Add a test driver that uses font outlines as shapes + * Add a test driver that uses font outlines as shapes [DONE] 25 February 2006 * Add a few more pictures to the docs [DONE] * Update de docs according to latest review [DONE] - * Test with additional real-world cases + * Test with additional real-world cases [DONE... test suite of ~ 2000 (and growing) real world cases in use now] + * Get rid of the sqrt() in the predicates to improve robustness with Exact_predicates_inexact_constructions_kernel diff --git a/Straight_skeleton_2/changes.txt b/Straight_skeleton_2/changes.txt index 3bf0245766c..f1e01c5387c 100644 --- a/Straight_skeleton_2/changes.txt +++ b/Straight_skeleton_2/changes.txt @@ -1,3 +1,10 @@ +4 August 2006 Fernando Cacciola +- Fixed bug in seed tracking + +31 July 2006 Fernando Cacciola +- Seed tracking added for correct handling of degenerate vertices + (seed tracking refers to a 1 level history of the colliding edges which can be accessed when processing some non-initial event) + 15 July 2006 Fernando Cacciola - Visitor added to allow users to monitor the algorithm progress diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/cgal_types.h b/Straight_skeleton_2/demo/Straight_skeleton_2/cgal_types.h index 6c8dc1fe098..363d54ab653 100644 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/cgal_types.h +++ b/Straight_skeleton_2/demo/Straight_skeleton_2/cgal_types.h @@ -28,12 +28,37 @@ #include #include +#if USE_BIG_FLOAT + +#include + +namespace CGAL +{ + +template<> struct Number_type_traits +{ + typedef Tag_false Has_exact_ring_operations; + typedef Tag_false Has_exact_division; + typedef Tag_false Has_exact_sqrt; + + typedef Tag_true Has_gcd; + typedef Tag_true Has_division; + typedef Tag_true Has_sqrt; +}; + +CORE::BigFloat sqrt( CORE::BigFloat const& n ) { return CORE::sqrt(n); } + +} + +#endif + namespace demo { //typedef CGAL::Simple_cartesian K ; typedef CGAL::Exact_predicates_inexact_constructions_kernel K; //typedef CGAL::Exact_predicates_exact_constructions_kernel_with_sqrt K; +//typedef CGAL::Simple_cartesian K ; typedef CGAL::Polygon_2 CGAL_Polygon ; diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_0.poly deleted file mode 100644 index 87208995f0e..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_0.poly +++ /dev/null @@ -1,15 +0,0 @@ -1 -12 -0 0 -3 0 -3 1 -2 1 -2 3 -3 3 -3 4 -0 4 -0 3 -1 3 -1 1 -0 1 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_1.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_1.poly deleted file mode 100644 index 7fcf9fe2cfe..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_1.poly +++ /dev/null @@ -1,15 +0,0 @@ -1 -12 -0 0 -3 0 -3 2 -2 2 -2 6 -3 6 -3 8 -0 8 -0 6 -1 6 -1 2 -0 2 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_2.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_2.poly deleted file mode 100644 index a8f8444fa6d..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_2.poly +++ /dev/null @@ -1,16 +0,0 @@ -3 -6 -1.11765 0.52 -0.555556 0.782609 -0.15 0.538462 -0.105263 0.291667 -0.409091 0.0526316 -0.782609 0.2 -3 -0.833333 0.375 -0.507937 0.238095 -0.615385 0.565217 -3 -0.575758 0.592593 -0.464286 0.242424 -0.277778 0.409091 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_3.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_3.poly deleted file mode 100644 index 3741d88e272..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/alley_3.poly +++ /dev/null @@ -1,16 +0,0 @@ -3 -10 -1.15625 -0.52 -1.31818 -0.258065 -1.11765 0.52 -0.555556 0.782609 -0.15 0.538462 -0.105263 0.291667 -0.409091 0.0526316 -0.782609 0.2 -0.96 -0.258065 -0.6875 -0.482759 -3 -0.833333 0.375 0.507937 0.238095 0.615385 0.565217 -3 - 0.575758 0.592593 0.464286 0.242424 0.277778 0.409091 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/closer_edge_event_0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/closer_edge_event_0.poly deleted file mode 100644 index 4d54d578436..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/closer_edge_event_0.poly +++ /dev/null @@ -1,10 +0,0 @@ -1 -7 --0.9 -0.9 -0.9 -0.9 -0.9 0.9 -0.45 0.8 -0.0 0.9 -0.0 -0.3 --0.9 -0.3 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/closer_edge_event_1.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/closer_edge_event_1.poly deleted file mode 100644 index a0133055696..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/closer_edge_event_1.poly +++ /dev/null @@ -1,10 +0,0 @@ -1 -7 --0.9 0.9 --0.9 0.3 -0.0 0.3 -0.0 -0.9 -0.45 -0.8 -0.9 -0.9 -0.9 0.9 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_0.poly deleted file mode 100644 index 0d9828e2fd5..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_0.poly +++ /dev/null @@ -1,8 +0,0 @@ -1 -5 -0 0 -0 0 -2 0 -2 1 -0 1 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_1.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_1.poly deleted file mode 100644 index 5df0bddaf35..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_1.poly +++ /dev/null @@ -1,10 +0,0 @@ -1 -7 -0 0 -0 0 -0 0 -0 0 -2 0 -2 1 -0 1 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_2.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_2.poly deleted file mode 100644 index 19ec4e6bec1..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_2.poly +++ /dev/null @@ -1,15 +0,0 @@ -1 -12 -0 0 -0 0 -0 0 -2 0 -2 0 -2 0 -2 1 -2 1 -2 1 -0 1 -0 1 -0 1 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_3.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_3.poly deleted file mode 100644 index 0bc35d633fc..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_3.poly +++ /dev/null @@ -1,11 +0,0 @@ -1 -8 -0 0 -0 0 -0 0 -0 0 -2 0 -2 1 -0 1 -0 0 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_4.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_4.poly deleted file mode 100644 index 7fae77fa63d..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/consecutive_coincident_vertices_4.poly +++ /dev/null @@ -1,14 +0,0 @@ -1 -12 -0 0 -0 0 -0 0 -0 0 -2 0 -2 1 -0 1 -0 1 -0 1 -0 0 -0 0 -0 0 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate0.poly deleted file mode 100644 index 841c583054d..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate0.poly +++ /dev/null @@ -1,7 +0,0 @@ -1 -5 -0 0 -4 0 -8 0 -8 2 -0 2 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate0a.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate0a.poly deleted file mode 100644 index 87fd4eb67cb..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate0a.poly +++ /dev/null @@ -1,7 +0,0 @@ -1 -5 -0 0 -4 0.00001 -8 0 -8 2 -0 2 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate1.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate1.poly deleted file mode 100644 index b52c737ae43..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate1.poly +++ /dev/null @@ -1,8 +0,0 @@ -1 -6 -0 0 -4 0 -8 0 -8 2 -4 2 -0 2 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate10.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate10.poly deleted file mode 100644 index 811c09ce2a3..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate10.poly +++ /dev/null @@ -1,14 +0,0 @@ -1 -11 -0 2 -1 2 -5 2 -5 0 -9 0 -9 2 -12 2 -13 2 -13 3 -13 5 -0 5 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate11.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate11.poly deleted file mode 100644 index 3bd0d9ec4aa..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate11.poly +++ /dev/null @@ -1,14 +0,0 @@ -1 -12 -0 0 -1 0 -3 0 -4 0 -4 1 -4 3 -4 4 -3 4 -1 4 -0 4 -0 3 -0 1 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate12.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate12.poly deleted file mode 100644 index d3a7e813d97..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate12.poly +++ /dev/null @@ -1,12 +0,0 @@ -1 -10 -0 2 -3 2 -5 0 -6 1 -8 1 -8 2 -6 2 -5 1 -3 3 -0 3 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate13.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate13.poly deleted file mode 100644 index abbbea167c7..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate13.poly +++ /dev/null @@ -1,10 +0,0 @@ -1 -8 -0 0 -1 0 -2 0 -2 1 -2 2 -1 2 -0 2 -0 1 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate2.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate2.poly deleted file mode 100644 index d3c81bb4b66..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate2.poly +++ /dev/null @@ -1,7 +0,0 @@ -1 -5 -0 0 -8 0 -8 1 -8 2 -0 2 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate20.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate20.poly deleted file mode 100644 index fa407a5914d..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate20.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -89-0.758527 -0.547067-0.698499 -0.547067-0.627558 -0.547067-0.523874 -0.547067-0.436562 -0.544338-0.327422 -0.54161-0.196453 -0.538881-0.0381992 -0.5334240.130969 -0.5306960.248295 -0.5306960.341064 -0.5361530.436562 -0.5388810.559345 -0.5497950.663029 -0.5607090.80764 -0.5716230.944065 -0.5989090.933151 -0.4461120.924966 -0.2769440.919509 -0.07776260.914052 0.1350610.914052 0.3369710.914052 0.5252390.91678 0.7216920.922237 0.945430.804911 0.9317870.706685 0.9208730.633015 0.926330.542974 0.9181450.444748 0.9154160.392906 0.9126880.33015 0.9126880.286494 0.9099590.264666 0.9072310.177353 0.9099590.158254 0.9072310.0845839 0.8963170.0491132 0.8935884.05492e-17 0.893588-0.0518417 0.888131-0.0791269 0.882674-0.141883 0.879945-0.190996 0.879945-0.234652 0.869031-0.270123 0.866303-0.316508 0.863574-0.341064 0.860846-0.357435 0.855389-0.387449 0.847203-0.431105 0.844475-0.452933 0.841746-0.491132 0.836289-0.545703 0.836289-0.58663 0.836289-0.611187 0.836289-0.652115 0.833561-0.673943 0.830832-0.725784 0.825375-0.769441 0.836289-0.780355 0.74352-0.799454 0.699864-0.799454 0.656207-0.796726 0.61528-0.793997 0.552524-0.785812 0.519782-0.769441 0.481583-0.766712 0.421555-0.761255 0.391542-0.755798 0.358799-0.750341 0.334243-0.747613 0.304229-0.742156 0.241473-0.736698 0.214188-0.73397 0.186903-0.725784 0.135061-0.725784 0.110505-0.73397 0.0450205-0.731241 0.0231924-0.739427 -0.0395634-0.744884 -0.0804911-0.744884 -0.135061-0.750341 -0.227831-0.755798 -0.257844-0.777626 -0.336971-0.777626 -0.39427-0.796726 -0.476126-0.799454 -0.506139-0.804911 -0.52251-0.810368 -0.544338-0.813097 -0.57708 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate21.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate21.poly deleted file mode 100644 index 6261a764dc7..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate21.poly +++ /dev/null @@ -1,3 +0,0 @@ -2 -89 -0.758527 -0.547067 -0.698499 -0.547067 -0.627558 -0.547067 -0.523874 -0.547067 -0.436562 -0.544338 -0.327422 -0.54161 -0.196453 -0.538881 -0.0381992 -0.533424 0.130969 -0.530696 0.248295 -0.530696 0.341064 -0.536153 0.436562 -0.538881 0.559345 -0.549795 0.663029 -0.560709 0.80764 -0.571623 0.944065 -0.598909 0.933151 -0.446112 0.924966 -0.276944 0.919509 -0.0777626 0.914052 0.135061 0.914052 0.336971 0.914052 0.525239 0.91678 0.721692 0.922237 0.94543 0.804911 0.931787 0.706685 0.920873 0.633015 0.92633 0.542974 0.918145 0.444748 0.915416 0.392906 0.912688 0.33015 0.912688 0.286494 0.909959 0.264666 0.907231 0.177353 0.909959 0.158254 0.907231 0.0845839 0.896317 0.0491132 0.893588 4.05492e-17 0.893588 -0.0518417 0.888131 -0.0791269 0.882674 -0.141883 0.879945 -0.190996 0.879945 -0.234652 0.869031 -0.270123 0.866303 -0.316508 0.863574 -0.341064 0.860846 -0.357435 0.855389 -0.387449 0.847203 -0.431105 0.844475 -0.452933 0.841746 -0.491132 0.836289 -0.545703 0.836289 -0.58663 0.836289 -0.611187 0.836289 -0.652115 0.833561 -0.673943 0.830832 -0.725784 0.825375 -0.769441 0.836289 -0.780355 0.74352 -0.799454 0.699864 -0.799454 0.656207 -0.796726 0.61528 -0.793997 0.552524 -0.785812 0.519782 -0.769441 0.481583 -0.766712 0.421555 -0.761255 0.391542 -0.755798 0.358799 -0.750341 0.334243 -0.747613 0.304229 -0.742156 0.241473 -0.736698 0.214188 -0.73397 0.186903 -0.725784 0.135061 -0.725784 0.110505 -0.73397 0.0450205 -0.731241 0.0231924 -0.739427 -0.0395634 -0.744884 -0.0804911 -0.744884 -0.135061 -0.750341 -0.227831 -0.755798 -0.257844 -0.777626 -0.336971 -0.777626 -0.39427 -0.796726 -0.476126 -0.799454 -0.506139 -0.804911 -0.52251 -0.810368 -0.544338 -0.813097 -0.57708 -103 -0.706685 0.757162 -0.6603 0.738063 -0.646658 0.721692 -0.60573 0.705321 -0.55116 0.694407 -0.504775 0.691678 -0.47749 0.691678 -0.412005 0.68895 -0.365621 0.683492 -0.272851 0.645293 -0.174625 0.648022 -0.133697 0.65075 -0.0545703 0.65075 -0.00272851 0.653479 0.111869 0.678035 0.166439 0.68895 0.248295 0.694407 0.302865 0.708049 0.319236 0.713506 0.360164 0.72442 0.412005 0.729877 0.461119 0.732606 0.47749 0.735334 0.523874 0.746248 0.592087 0.748977 0.630286 0.757162 0.654843 0.762619 0.712142 0.768076 0.785812 0.803547 0.75307 0.718963 0.75307 0.661664 0.75307 0.634379 0.761255 0.587995 0.763984 0.549795 0.763984 0.511596 0.766712 0.484311 0.766712 0.410641 0.769441 0.364256 0.763984 0.336971 0.769441 0.298772 0.772169 0.24693 0.772169 0.219645 0.783083 0.173261 0.780355 0.140518 0.780355 0.121419 0.783083 0.0723056 0.783083 0.0450205 0.785812 0.0150068 0.78854 -0.0177353 0.78854 -0.0504775 0.78854 -0.0668486 0.78854 -0.0832196 0.78854 -0.102319 0.78854 -0.124147 0.78854 -0.145975 0.78854 -0.159618 0.793997 -0.189632 0.791269 -0.28513 0.785812 -0.345157 0.780355 -0.421555 0.673943 -0.443383 0.649386 -0.443383 0.575716 -0.427012 0.526603 -0.427012 0.442019 -0.41337 0.409277 -0.416098 0.346521 -0.418827 0.302865 -0.418827 0.251023 -0.418827 0.199181 -0.418827 0.136426 -0.418827 0.0545703 -0.421555 -0.0381992 -0.424284 -0.109141 -0.424284 -0.204638 -0.432469 -0.253752 -0.432469 -0.335607 -0.424284 -0.390177 -0.435198 -0.482947 -0.435198 -0.548431 -0.446112 -0.600273 -0.451569 -0.725784 -0.476126 -0.720327 -0.429741 -0.706685 -0.323329 -0.709413 -0.306958 -0.706685 -0.282401 -0.698499 -0.252387 -0.676671 -0.175989 -0.668486 -0.113233 -0.663029 -0.0723056 -0.654843 -0.0341064 -0.652115 0.0204638 -0.643929 0.0450205 -0.646658 0.0941337 -0.657572 0.143247 -0.657572 0.181446 -0.673943 0.24693 -0.682128 0.377899 -0.698499 0.427012 -0.695771 0.484311 -0.703956 0.533424 -0.71487 0.61528 -0.71487 0.686221 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22.poly deleted file mode 100644 index 37a0f71dfcd..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22.poly +++ /dev/null @@ -1,22 +0,0 @@ -2 -12 -0.758527 0.547067 -0.698499 0.547067 -0.627558 0.547067 -0.523874 0.547067 -0.52 0.26 -0.777626 0.336971 -0.777626 0.39427 -0.796726 0.476126 -0.799454 0.506139 -0.804911 0.52251 -0.810368 0.544338 -0.813097 0.57708 -6 -0.548431 0.446112 -0.600273 0.451569 -0.725784 0.476126 -0.720327 0.429741 -0.706685 0.323329 -0.58 0.319 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22b.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22b.poly deleted file mode 100644 index 2e45d988061..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22b.poly +++ /dev/null @@ -1,22 +0,0 @@ -2 -12 -75 54 -69 54 -62 54 -52 54 -52 26 -77 33 -77 39 -79 47 -79 50 -80 52 -81 54 -81 57 -6 -54 44 -60 45 -72 47 -72 42 -70 32 -58 31 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22c.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22c.poly deleted file mode 100644 index af5aaf526ac..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate22c.poly +++ /dev/null @@ -1,19 +0,0 @@ -2 -10 -75 54 -62 54 -52 54 -52 26 -77 33 -77 39 -79 47 -79 50 -81 54 -81 57 -5 -54 44 -72 47 -72 42 -70 32 -58 31 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate24.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate24.poly deleted file mode 100644 index 9d765e57236..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate24.poly +++ /dev/null @@ -1,25 +0,0 @@ -2 -12 - --0.758527 -0.547067 --0.698499 -0.547067 --0.627558 -0.547067 --0.523874 -0.547067 --0.52 -0.26 --0.777626 -0.336971 --0.777626 -0.39427 --0.796726 -0.476126 --0.799454 -0.506139 --0.804911 -0.52251 --0.810368 -0.544338 --0.813097 -0.57708 - -6 - --0.548431 -0.446112 --0.600273 -0.451569 --0.725784 -0.476126 --0.720327 -0.429741 --0.706685 -0.323329 --0.58 -0.319 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate25.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate25.poly deleted file mode 100644 index 815f96fd894..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate25.poly +++ /dev/null @@ -1,13 +0,0 @@ -2 -6 -0 0 -6 0 -6 6 -4 6 -2 6 -0 6 -4 -1 3 -3 1 -5 5 -3 4 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate26.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate26.poly deleted file mode 100644 index 5f762958dae..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate26.poly +++ /dev/null @@ -1,18 +0,0 @@ -1 -14 -1 2 -14 5 -18 5 -18 0 -22 0 -22 5 -26 5 -38 2 -38 13 -26 13 -26 23 -14 23 -14 13 -1 13 - - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27.poly deleted file mode 100644 index bce715c0b16..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27.poly +++ /dev/null @@ -1,14 +0,0 @@ -1 -11 -0 0 -3 0 -4 1 -5 0 -8 0 -8 4 -5 4 -5 6 -3 6 -3 4 -0 4 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27b.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27b.poly deleted file mode 100644 index 90fa9e08c54..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27b.poly +++ /dev/null @@ -1,14 +0,0 @@ -1 -11 -0 0 -4 0 -5 1 -6 0 -8 0 -8 4 -5 4 -5 6 -3 6 -3 4 -0 4 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27c.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27c.poly deleted file mode 100644 index c5684bb5b8a..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27c.poly +++ /dev/null @@ -1,14 +0,0 @@ -1 -11 -0 0 -2 0 -3 1 -4 0 -8 0 -8 4 -5 4 -5 6 -3 6 -3 4 -0 4 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27d.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27d.poly deleted file mode 100644 index 526853c59e5..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27d.poly +++ /dev/null @@ -1,17 +0,0 @@ -1 -14 -0 0 -1 0 -2 1 -3 0 -5 0 -6 1 -7 0 -8 0 -8 4 -5 4 -5 6 -3 6 -3 4 -0 4 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27e.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27e.poly deleted file mode 100644 index 38b2608685b..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate27e.poly +++ /dev/null @@ -1,18 +0,0 @@ -1 -15 -0 0 -1 0 -2 1 -3 0 -4 2 -5 0 -6 1 -7 0 -8 0 -8 6 -5 6 -5 8 -3 8 -3 6 -0 6 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28a.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28a.poly deleted file mode 100644 index ad1a4d3ae00..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28a.poly +++ /dev/null @@ -1,34 +0,0 @@ -1 -32 -0 4 -4 0 -7 0 -10 0 -12 0 -12 3 -10 5 -9 5 -7 3 -7 4 -6 4 -6 3 -7 2 -8 2 -9 3 -10 3 -11 2 -11 1 -9 1 -7 1 -5 1 -2 4 -9 11 -9 15 -10 15 -10 11 -3 4 -4 3 -11 10 -11 16 -7 16 -7 11 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28aa.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28aa.poly deleted file mode 100644 index 1e0d2d3e33b..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28aa.poly +++ /dev/null @@ -1,34 +0,0 @@ -1 -32 -0 4 -4 0 -7 0.0001 -10 0 -12 0 -12 3 -10 5 -9 5 -7 3 -7 4 -6 4 -6 3 -7 2 -8 2 -9 3 -10 3 -11 2 -11 1 -9 1 -7 1 -5 1 -2 4 -9 11 -9 15 -10 15 -10 11 -3 4 -4 3 -11 10 -11 16 -7 16 -7 11 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28b.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28b.poly deleted file mode 100644 index 79a7aa1ef27..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28b.poly +++ /dev/null @@ -1,46 +0,0 @@ -1 -43 -0 4 -1 3 -2 2 -3 1 -4 0 -7 0 -10 0 -12 0 -12 3 -10 5 -9 5 -7 3 -7 4 -6 4 -6 3 -7 2 -8 2 -9 3 -10 3 -11 2 -11 1 -9 1 -7 1 -5 1 -4 2 -3 3 -2 4 -4 6 -7 9 -9 11 -9 15 -10 15 -10 11 -3 4 -4 3 -11 10 -11 16 -9 16 -7 16 -7 11 -5 9 -3 7 -1 5 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28c.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28c.poly deleted file mode 100644 index 8e23bafeb7c..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28c.poly +++ /dev/null @@ -1,46 +0,0 @@ -1 -43 -0 4 -1 3 -2 2 -3 1 -4 0 -7 0 -10 0 -12 0 -12 3 -10 5 -9 5 -7 3 -7 4 -6 4 -6 3 -7 2 -8 2 -9 3 -10 3 -11 2 -11 1 -9 1 -7 1 -5 1 -4 2 -3 3 -2 4 -4 5.1 -7 9 -9 11 -9 15 -10 15 -10 11 -3 4 -4 3 -11 10 -11 16 -9 16 -7 16 -7 11 -5 9 -3 7 -1 5 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28d.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28d.poly deleted file mode 100644 index 79a7aa1ef27..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28d.poly +++ /dev/null @@ -1,46 +0,0 @@ -1 -43 -0 4 -1 3 -2 2 -3 1 -4 0 -7 0 -10 0 -12 0 -12 3 -10 5 -9 5 -7 3 -7 4 -6 4 -6 3 -7 2 -8 2 -9 3 -10 3 -11 2 -11 1 -9 1 -7 1 -5 1 -4 2 -3 3 -2 4 -4 6 -7 9 -9 11 -9 15 -10 15 -10 11 -3 4 -4 3 -11 10 -11 16 -9 16 -7 16 -7 11 -5 9 -3 7 -1 5 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28x.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28x.poly deleted file mode 100644 index a7a7837566c..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate28x.poly +++ /dev/null @@ -1,30 +0,0 @@ -1 -28 -0 4 -4 0 -12 0 -12 3 -10 5 -9 5 -7 3 -7 4 -6 4 -6 3 -7 2 -8 2 -9 3 -10 3 -11 2 -11 1 -5 1 -2 4 -9 11 -9 15 -10 15 -10 11 -3 4 -4 3 -11 10 -11 16 -7 16 -7 11 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate3.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate3.poly deleted file mode 100644 index 025254f6d8d..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate3.poly +++ /dev/null @@ -1,9 +0,0 @@ -1 -7 -0 0 -4 0 -8 0 -8 1 -8 2 -4 2 -0 2 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate4.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate4.poly deleted file mode 100644 index 79514ee6813..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate4.poly +++ /dev/null @@ -1,10 +0,0 @@ -1 -8 -0 0 -4 0 -8 0 -8 1 -8 2 -4 2 -0 2 -0 1 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate5.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate5.poly deleted file mode 100644 index 2d017e17d8c..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate5.poly +++ /dev/null @@ -1,8 +0,0 @@ -1 -6 -0 0 -3 0 -5 0 -8 0 -8 2 -0 2 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate5a.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate5a.poly deleted file mode 100644 index 39260e87e03..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate5a.poly +++ /dev/null @@ -1,8 +0,0 @@ -1 -6 -0 0 -3 0.001 -5 -0.001 -8 0 -8 2 -0 2 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate6.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate6.poly deleted file mode 100644 index d701ffddb4d..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate6.poly +++ /dev/null @@ -1,8 +0,0 @@ -1 -6 -0 0 -1 0 -7 0 -8 0 -8 2 -0 2 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate7.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate7.poly deleted file mode 100644 index 4f9bd63a396..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate7.poly +++ /dev/null @@ -1,9 +0,0 @@ -1 -7 -0 0 -3 0 -5 0 -8 0 -8 2 -4 2 -0 2 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate8.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate8.poly deleted file mode 100644 index 1f8e1d3cf98..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate8.poly +++ /dev/null @@ -1,14 +0,0 @@ -1 -12 -0 0 -1 0 -4 0 -7 0 -8 0 -8 1 -8 2 -7 2 -4 2 -1 2 -0 2 -0 1 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate9.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate9.poly deleted file mode 100644 index 174b11589a1..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate9.poly +++ /dev/null @@ -1,12 +0,0 @@ -1 -9 -0 2 -2 2 -5 2 -5 0 -9 0 -9 2 -13 2 -13 5 -0 5 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate_multinode0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate_multinode0.poly deleted file mode 100644 index f1e408739ec..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/degenerate_multinode0.poly +++ /dev/null @@ -1,31 +0,0 @@ -1 -28 -3 0 -4 0 -4 1 -5 1 -6 1 -6 2 -6 3 -7 3 -7 4 -6 4 -6 5 -6 6 -5 6 -4 6 -4 7 -3 7 -3 6 -2 6 -1 6 -1 5 -1 4 -0 4 -0 3 -1 3 -1 2 -1 1 -2 1 -3 1 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/double_edge.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/double_edge.poly deleted file mode 100644 index d0461fae6ff..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/double_edge.poly +++ /dev/null @@ -1,8 +0,0 @@ -1 -5 -0 0 -2 1 -2 6 --2 6 --2 1 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/double_split.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/double_split.poly deleted file mode 100644 index 0d496fe62c2..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/double_split.poly +++ /dev/null @@ -1,10 +0,0 @@ -1 -7 --0.8 -0.8 --0.4 -0.4 -0 -0.8 -0.4 -0.4 -0.8 -0.8 -0.8 0.8 --0.8 0.8 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/equal_times_0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/equal_times_0.poly deleted file mode 100644 index 37c3263612f..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/equal_times_0.poly +++ /dev/null @@ -1,12 +0,0 @@ -1 -9 -2 0 -5 0 -5 7 -1 7 -1 5 -0 5 -0 4 -2 4 -0 3 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/hole.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/hole.poly deleted file mode 100644 index 3fc2ed2ee49..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/hole.poly +++ /dev/null @@ -1,12 +0,0 @@ -2 -4 --0.8 -0.4 -0.8 -0.4 -0.8 0.4 --0.8 0.4 -4 --0.4 -0.2 -0.4 -0.2 -0.4 0.2 --0.4 0.2 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/many_holes.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/many_holes.poly deleted file mode 100644 index 2e8c592beb1..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/many_holes.poly +++ /dev/null @@ -1,125 +0,0 @@ -8 -14 --0.818182 0.769231 - -1.42105 0.24 - -1.38235 -0.814815 - -0.596154 -0.911111 - -0.324324 -0.458333 - 0.40625 -0.807692 - 0.653846 -1.01389 - 1.24 -0.709677 - 1.17857 -0.145833 - 1.14286 0.470588 - 1.14 0.851852 - 0.4375 0.984127 - -0.204082 0.787879 - -0.516129 0.669725 - - 10 - -0.785714 0.636364 - -0.5625 0.583333 - -0.777778 0.402778 - -1.11429 0.16129 - -1.18182 -0.255319 - -0.860465 -0.371429 - -0.354839 -0.402778 - -0.596154 -0.833333 - -1.31034 -0.703704 - -1.31818 0.212121 - - 6 -0.451613 0.903226 - 1.07692 0.8125 - 1.18182 -0.638889 - 1.10811 -0.697674 - 0.990291 0.730769 - 0.254237 0.861111 - - 4 - 1.05882 -0.684211 - 0.69697 -0.931034 - 0.7 -0.818182 - 1.03448 -0.545455 - - 6 - 0.653846 -0.923077 - 0.516129 -0.8125 --0.272727 -0.421053 - -0.233333 -0.344828 - 0.461538 -0.669725 - 0.647059 -0.789474 - - 4 - -0.444444 0.633333 - 0.244898 0.85 - 0.0909091 0.662338 - -0.322581 0.583333 - - 17 - -0.55 0.339623 - -0.473684 0.333333 - -0.32 0.272727 - -0.322581 0.102564 - -0.363636 -0.0294118 - -0.423077 0.0454545 - -0.513514 0.0689655 - -0.448276 0.181818 - -0.52 0.217391 - -0.625 0.189189 - -0.717391 0.142857 - -0.764706 0.0625 - -0.655172 0.0344828 - -0.711111 -0.0666667 - -0.708333 -0.16129 - -0.90625 -0.0645161 - -0.828571 0.205882 - -48 - 0.117647 0.321429 - 0.148148 0.454545 - 0.0606061 0.52381 - 0.190476 0.470588 - 0.290323 0.470588 - 0.371429 0.478261 - 0.428571 0.611111 - 0.428571 0.448276 - 0.548387 0.380952 - 0.6 0.3125 - 0.764706 0.503597 - 0.62963 0.275862 - 0.689655 0.185185 - 0.685714 0.0833333 - 0.661017 -0.00434783 - 0.947368 -0.00434783 - 0.65625 -0.0416667 - 0.621622 -0.111111 - 0.555556 -0.185185 - 0.48 -0.235294 - 0.56 -0.404255 - 0.45 -0.252427 - 0.361702 -0.275862 - 0.242424 -0.275862 - 0.142857 -0.217391 - 0.0454545 -0.321429 - 0.121212 -0.210526 - 0.04 -0.12 - 0.0357143 -0.037037 - 0.0357143 0.0714286 - 0.0666667 0.166667 - 0.125 0.26087 - 0.0967742 0.178571 - 0.0869565 0.0740741 - 0.0909091 -0.0113636 - 0.117647 -0.0909091 - 0.185185 -0.15 - 0.238095 -0.181818 - 0.324324 -0.190476 - 0.407407 -0.1875 - 0.481481 -0.16 - 0.564103 -0.0833333 - 0.611111 0.0026738 - 0.617647 0.142857 - 0.504 0.3 - 0.391304 0.407407 - 0.285714 0.421053 - 0.1875 0.416667 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/masked_double_split.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/masked_double_split.poly deleted file mode 100644 index 685740e45e5..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/masked_double_split.poly +++ /dev/null @@ -1,9 +0,0 @@ -1 -6 --0.8 -0.8 --0.4 -0.4 -0.8 -0.8 -0.8 0.8 -0.4 0.4 --0.8 0.8 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/multi_split_1.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/multi_split_1.poly deleted file mode 100644 index ff0c3df6203..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/multi_split_1.poly +++ /dev/null @@ -1,16 +0,0 @@ -1 -13 -0 0 -1 1 -2 0 -3 2 -4 0 -5 3 -6 0 -7 2 -8 0 -9 1 -10 0 -10 7 -0 7 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/multinode0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/multinode0.poly deleted file mode 100644 index 0e33ee7c412..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/multinode0.poly +++ /dev/null @@ -1,23 +0,0 @@ -1 -20 -3 0 -4 0 -4 1 -6 1 -6 3 -7 3 -7 4 -6 4 -6 6 -4 6 -4 7 -3 7 -3 6 -1 6 -1 4 -0 4 -0 3 -1 3 -1 1 -3 1 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/multinode1.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/multinode1.poly deleted file mode 100644 index 26136b473ff..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/multinode1.poly +++ /dev/null @@ -1,23 +0,0 @@ -1 -20 -0 0 -2 0 -2 1 -3 1 -3 0 -5 0 -5 2 -4 2 -4 3 -5 3 -5 5 -3 5 -3 4 -2 4 -2 5 -0 5 -0 3 -1 3 -1 2 -0 2 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/near_degenerate_0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/near_degenerate_0.poly deleted file mode 100644 index b1349b3174b..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/near_degenerate_0.poly +++ /dev/null @@ -1,8 +0,0 @@ -1 -6 -286.700 694.100 -273.900 625.600 -272.400 616.900 -270.900 608.200 -269.500 599.400 -0 606 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/near_degenerate_1.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/near_degenerate_1.poly deleted file mode 100644 index c7b1477f163..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/near_degenerate_1.poly +++ /dev/null @@ -1,11 +0,0 @@ -1 -8 -286.700 694.100 -273.900 625.600 -272.400 616.900 -270.900 608.200 -269.500 599.400 - -0 606 -30 651 -20 689 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/non_simple0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/non_simple0.poly deleted file mode 100644 index b68943c8d45..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/non_simple0.poly +++ /dev/null @@ -1,8 +0,0 @@ -1 -5 -0 0 -10 0 -10 5 -5 0 -0 5 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_101.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_101.poly deleted file mode 100644 index 80a589b64b4..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_101.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -174 16.18 69.2635 16.1836 69.2666 16.1765 69.271 16.1763 69.276 16.1824 69.2817 16.1806 69.2899 16.1653 69.3002 16.1613 69.3014 16.1474 69.3057 16.1403 69.31 16.1326 69.3185 16.1354 69.3243 16.1276 69.3286 16.1176 69.3273 16.105 69.3193 16.0978 69.3174 16.0809 69.3175 16.066 69.3089 16.0407 69.3024 16.0312 69.3014 16.0063 69.3044 15.9859 69.3034 15.984 69.3008 15.9928 69.2956 15.992 69.2917 15.9793 69.2866 15.9682 69.2869 15.955 69.2811 15.9463 69.2777 15.9097 69.2704 15.8792 69.258 15.8698 69.2567 15.8489 69.2593 15.8465 69.2567 15.8554 69.2511 15.8513 69.2475 15.8391 69.2452 15.836 69.2425 15.8411 69.2409 15.8522 69.2427 15.8581 69.2422 15.8656 69.2391 15.8631 69.2346 15.8422 69.2267 15.8437 69.224 15.8557 69.2208 15.8592 69.2094 15.8528 69.2052 15.8421 69.2025 15.8217 69.1972 15.8211 69.1824 15.8151 69.181 15.8106 69.1705 15.7902 69.1612 15.7588 69.1524 15.7586 69.151 15.7364 69.1499 15.7219 69.1507 15.7149 69.1465 15.7026 69.1424 15.6874 69.1438 15.6617 69.1394 15.6693 69.1358 15.6593 69.1328 15.6362 69.1344 15.614 69.1294 15.6085 69.1262 15.593 69.1224 15.6038 69.1189 15.5795 69.1142 15.574 69.1094 15.5645 69.107 15.5641 69.0982 15.5498 69.0905 15.5616 69.0857 15.557 69.0823 15.5271 69.0736 15.5176 69.0708 15.5259 69.0649 15.517 69.0568 15.508 69.0527 15.5005 69.0303 15.4942 69.028 15.4767 69.0266 15.4592 69.0231 15.4603 69.0098 15.455 69.0004 15.4397 68.9963 15.4249 68.9828 15.4342 68.9738 15.4331 68.9673 15.4338 68.9664 15.4406 68.9582 15.4325 68.9514 15.435 68.9419 15.4242 68.9101 15.4133 68.9046 15.4134 68.9003 15.4312 68.8907 15.4741 68.8743 15.4955 68.8752 15.5061 68.8839 15.515 68.8884 15.5422 68.9024 15.5626 68.9166 15.5781 68.9319 15.5791 68.9388 15.5841 68.9413 15.5899 68.9533 15.5893 68.9611 15.5957 68.9692 15.5986 68.9881 15.5858 68.9943 15.5627 68.9984 15.5594 69 15.5452 69.0069 15.5484 69.0091 15.6166 68.9999 15.625 68.9959 15.624 68.9887 15.6284 68.9831 15.6208 68.9787 15.6325 68.9679 15.6496 68.9847 15.6614 68.9881 15.6659 68.9837 15.6727 68.9847 15.6752 68.9928 15.687 68.9901 15.7096 68.9956 15.7106 68.9958 15.7225 68.9933 15.7324 68.9965 15.7454 68.9979 15.7689 69.0067 15.7741 69.0106 15.7961 69.0139 15.8243 69.016 15.8343 69.021 15.845 69.0216 15.8552 69.0261 15.8759 69.0297 15.8796 69.0324 15.8756 69.035 15.863 69.0361 15.8591 69.0385 15.8681 69.0427 15.8754 69.0501 15.8896 69.0479 15.8941 69.0541 15.9024 69.0565 15.9101 69.0669 15.9058 69.0706 15.9187 69.0745 15.9321 69.0895 15.9431 69.0937 15.9588 69.097 15.9831 69.1145 16.014 69.123 16.0234 69.1323 16.0616 69.1448 16.0691 69.1453 16.0993 69.1588 16.1051 69.1781 16.1001 69.182 16.0928 69.1827 16.0934 69.185 16.0855 69.1898 16.108 69.2053 16.1116 69.2105 16.1081 69.2159 16.1176 69.2272 16.122 69.2386 16.13 69.2445 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_102.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_102.poly deleted file mode 100644 index 1616a8208be..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_102.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -781 16.2499 68.9065 16.243 68.9019 16.2459 68.8954 16.2465 68.894 16.2434 68.8895 16.275 68.8859 16.2873 68.8829 16.3441 68.8418 16.3431 68.8342 16.3358 68.8328 16.3199 68.8329 16.3084 68.8357 16.2913 68.8421 16.2804 68.8535 16.2722 68.8581 16.2652 68.8621 16.2563 68.8645 16.2086 68.8687 16.1889 68.8687 16.1602 68.8538 16.1218 68.8457 16.1105 68.8345 16.1011 68.8295 16.0881 68.8263 16.0886 68.8183 16.106 68.8063 16.117 68.7948 16.1179 68.7944 16.1265 68.7905 16.1426 68.7875 16.1557 68.7818 16.1942 68.7713 16.2086 68.7695 16.2386 68.7621 16.248 68.7581 16.2408 68.7523 16.2428 68.7497 16.2658 68.7445 16.2608 68.7421 16.2451 68.7417 16.2282 68.7388 16.1966 68.7408 16.1786 68.7374 16.1661 68.7371 16.1466 68.7384 16.13 68.7395 16.081 68.7488 16.0657 68.7492 16.0618 68.7476 16.0532 68.7423 16.0399 68.7016 16.026 68.6953 16.025 68.6879 16.0312 68.684 16.066 68.6773 16.0772 68.6734 16.0792 68.6688 16.0777 68.6651 16.0829 68.6605 16.08 68.6574 16.0931 68.6512 16.0818 68.6405 16.0735 68.6385 16.0622 68.6406 16.0525 68.6393 16.049 68.6403 16.0568 68.6482 16.0471 68.6683 16.0395 68.6749 16.0336 68.6758 16.0153 68.6737 16.0048 68.6793 15.9919 68.6781 15.9573 68.665 15.9454 68.6614 15.8915 68.6445 15.9042 68.6402 15.8976 68.637 15.8782 68.6385 15.8643 68.6366 15.8378 68.6284 15.8245 68.6265 15.8076 68.6201 15.8178 68.5968 15.8167 68.586 15.826 68.5801 15.8253 68.5739 15.8234 68.5714 15.8162 68.5625 15.8052 68.5616 15.798 68.5583 15.7884 68.5591 15.7759 68.5547 15.7586 68.5455 15.7474 68.5349 15.7344 68.5365 15.7222 68.5353 15.7176 68.5381 15.7199 68.5407 15.7406 68.5491 15.7476 68.5547 15.7489 68.563 15.7608 68.561 15.8015 68.5697 15.7765 68.6147 15.7592 68.6197 15.7712 68.6239 15.7734 68.6329 15.7748 68.6336 15.7817 68.637 15.8526 68.6545 15.8808 68.6529 15.8927 68.6575 15.8884 68.6612 15.8911 68.6648 15.9149 68.6719 15.9203 68.6811 15.9415 68.6883 15.9557 68.6981 15.9832 68.7097 15.9847 68.7151 15.9887 68.7174 15.9917 68.7192 15.9929 68.7324 16.0011 68.7387 15.9981 68.7617 16.0095 68.779 15.9996 68.7866 15.9926 68.7971 15.9712 68.7968 15.9561 68.8006 15.9474 68.7998 15.9413 68.7908 15.9298 68.7846 15.9261 68.778 15.9207 68.7769 15.8919 68.7737 15.8684 68.7633 15.8423 68.7575 15.8368 68.7545 15.8376 68.7479 15.8016 68.7414 15.7705 68.7395 15.7635 68.7417 15.766 68.7439 15.7789 68.7451 15.7939 68.7501 15.8078 68.752 15.8167 68.7562 15.8236 68.7669 15.8353 68.7701 15.8395 68.7748 15.8485 68.7771 15.8672 68.7819 15.8753 68.7866 15.8931 68.8031 15.9344 68.8666 15.9515 68.8773 15.9638 68.8957 15.9622 68.8989 15.9487 68.9054 15.913 68.9225 15.9098 68.929 15.9203 68.9554 15.9123 68.965 15.9048 68.9686 15.8945 68.9707 15.8637 68.9713 15.7876 68.9566 15.7837 68.9569 15.7759 68.9614 15.7683 68.9614 15.7565 68.9579 15.7458 68.9616 15.7497 68.9696 15.7402 68.9736 15.7223 68.9733 15.7181 68.9665 15.6889 68.9656 15.6722 68.9619 15.6332 68.9578 15.6285 68.9544 15.6313 68.9518 15.6446 68.9521 15.6308 68.9409 15.6073 68.9285 15.6073 68.9184 15.6036 68.9141 15.6051 68.9121 15.6068 68.9098 15.6008 68.9027 15.6061 68.896 15.6173 68.8907 15.6037 68.8876 15.5883 68.8919 15.5782 68.8917 15.5701 68.8888 15.548 68.8624 15.5495 68.8597 15.595 68.8425 15.6284 68.8335 15.6412 68.8333 15.6602 68.8295 15.6577 68.8271 15.6753 68.8195 15.653 68.8177 15.6203 68.8228 15.6072 68.8221 15.5854 68.8267 15.5746 68.8267 15.5697 68.8281 15.5548 68.8268 15.5405 68.8221 15.5419 68.8076 15.5387 68.8057 15.5348 68.8057 15.5127 68.8195 15.4911 68.8175 15.4637 68.8196 15.4581 68.8152 15.4616 68.8133 15.4681 68.8099 15.4644 68.7936 15.4788 68.7882 15.4793 68.783 15.477 68.7801 15.4635 68.7747 15.4588 68.758 15.4628 68.7554 15.4869 68.7513 15.5007 68.7439 15.5103 68.7415 15.511 68.7372 15.5187 68.735 15.5218 68.7312 15.5275 68.7312 15.5371 68.7369 15.556 68.7393 15.5837 68.7397 15.587 68.7407 15.6115 68.7477 15.6256 68.7492 15.6462 68.7462 15.6576 68.7464 15.6477 68.7393 15.6491 68.733 15.6592 68.7251 15.7033 68.703 15.7012 68.6997 15.6913 68.7009 15.6529 68.7168 15.6347 68.7336 15.6298 68.7381 15.6211 68.7394 15.5636 68.7311 15.5515 68.7273 15.5168 68.725 15.4954 68.7246 15.4711 68.7274 15.4572 68.7312 15.4507 68.7298 15.4337 68.7158 15.4341 68.7126 15.4402 68.7034 15.468 68.6837 15.4778 68.6767 15.4767 68.6741 15.464 68.6706 15.463 68.6676 15.4892 68.6567 15.4994 68.6486 15.5134 68.6462 15.5638 68.6423 15.5763 68.6387 15.5924 68.6276 15.6228 68.6209 15.6137 68.6179 15.6018 68.6177 15.588 68.6215 15.5839 68.6183 15.5841 68.6117 15.5792 68.6123 15.5749 68.6129 15.5688 68.6163 15.5705 68.6329 15.5604 68.6351 15.5443 68.6342 15.5316 68.6304 15.5112 68.6293 15.4872 68.6292 15.4604 68.6323 15.4289 68.6284 15.4275 68.6267 15.475 68.6083 15.4643 68.6062 15.4546 68.609 15.4439 68.6072 15.442 68.6113 15.4446 68.6127 15.4302 68.6165 15.4138 68.6245 15.401 68.6192 15.389 68.6056 15.381 68.6029 15.355 68.6055 15.3519 68.6037 15.3434 68.5986 15.3202 68.5964 15.303 68.5913 15.3021 68.5883 15.3079 68.5858 15.3257 68.5833 15.3361 68.5745 15.3324 68.5723 15.2897 68.5799 15.2325 68.5816 15.2187 68.5778 15.2022 68.578 15.2009 68.5763 15.2083 68.569 15.2087 68.5621 15.193 68.5536 15.1911 68.5526 15.1883 68.544 15.1757 68.5402 15.1725 68.5366 15.1808 68.5326 15.2026 68.5313 15.2417 68.5344 15.2626 68.5318 15.2733 68.5281 15.2768 68.5212 15.2846 68.5164 15.2842 68.512 15.2913 68.5073 15.3078 68.505 15.34 68.508 15.3595 68.504 15.3512 68.4968 15.336 68.5012 15.3346 68.501 15.3191 68.4991 15.3026 68.5016 15.2882 68.5014 15.2799 68.504 15.2553 68.5237 15.2414 68.5219 15.2362 68.5187 15.2267 68.5169 15.2453 68.5081 15.2437 68.5052 15.2197 68.5079 15.2124 68.5034 15.2259 68.4966 15.2342 68.4961 15.2414 68.4932 15.2525 68.4842 15.2867 68.4753 15.2604 68.4675 15.2382 68.4723 15.2197 68.4715 15.2078 68.4678 15.1998 68.4614 15.2027 68.4489 15.1992 68.4462 15.1863 68.4415 15.1763 68.4418 15.1584 68.4315 15.1535 68.4256 15.1408 68.4261 15.1144 68.4059 15.1269 68.4018 15.1226 68.4005 15.1032 68.3943 15.089 68.3863 15.0735 68.373 15.0681 68.3573 15.0476 68.3516 15.0411 68.3448 15.0292 68.3413 15.0102 68.331 15 68.3284 14.9971 68.3276 14.9789 68.3169 14.9906 68.297 14.989 68.2945 14.9784 68.2775 14.9855 68.273 15 68.2688 15.0013 68.2684 15.0096 68.2697 15.0312 68.2795 15.0402 68.2803 15.0543 68.2867 15.0644 68.2881 15.0726 68.2915 15.0852 68.2927 15.0943 68.297 15.0823 68.2997 15.0592 68.2998 15.0507 68.3031 15.0523 68.3057 15.069 68.306 15.0793 68.3086 15.0995 68.304 15.1094 68.3079 15.1177 68.3089 15.1231 68.3096 15.1365 68.3183 15.1306 68.3268 15.1358 68.3277 15.1703 68.3288 15.1739 68.3275 15.1669 68.3222 15.1734 68.3213 15.1766 68.3173 15.1995 68.3349 15.213 68.3352 15.2248 68.341 15.2363 68.3422 15.2423 68.3524 15.2526 68.3591 15.2492 68.3637 15.2254 68.3701 15.2185 68.37 15.2122 68.3683 15.2094 68.3675 15.1966 68.3702 15.1871 68.367 15.1807 68.3713 15.1865 68.3746 15.2064 68.3747 15.2199 68.3733 15.2321 68.3743 15.2437 68.3711 15.2522 68.3719 15.2924 68.3903 15.3047 68.3926 15.3195 68.4009 15.3281 68.3994 15.3348 68.402 15.3467 68.4018 15.3577 68.4085 15.367 68.4105 15.3684 68.4283 15.3686 68.4308 15.3772 68.4314 15.3801 68.4262 15.3934 68.4197 15.404 68.4199 15.4258 68.4298 15.4391 68.4331 15.4774 68.4522 15.4961 68.4565 15.5051 68.4617 15.5037 68.4683 15.5085 68.4708 15.5212 68.4723 15.532 68.4757 15.5419 68.4839 15.5633 68.4936 15.5654 68.4981 15.5682 68.5041 15.5748 68.5069 15.5452 68.5153 15.5378 68.5192 15.5523 68.5188 15.5684 68.5154 15.5799 68.5108 15.5834 68.5057 15.58 68.4984 15.6055 68.4928 15.6124 68.4889 15.6036 68.487 15.58 68.4864 15.5684 68.4834 15.5145 68.4569 15.5088 68.454 15.4937 68.4403 15.4903 68.4314 15.4666 68.4194 15.4524 68.413 15.4346 68.4081 15.4099 68.4052 15.3815 68.3904 15.3717 68.3879 15.3664 68.3849 15.3648 68.3784 15.3559 68.373 15.3677 68.3712 15.3532 68.3621 15.3451 68.3633 15.3368 68.3646 15.3263 68.3643 15.32 68.3625 15.3192 68.3553 15.3249 68.3512 15.3441 68.3476 15.3591 68.3474 15.3753 68.3513 15.3845 68.3519 15.3896 68.3572 15.3965 68.3552 15.4061 68.3584 15.4132 68.3575 15.4174 68.3542 15.4244 68.3536 15.4344 68.3495 15.4394 68.3554 15.4441 68.3563 15.448 68.3539 15.4432 68.3452 15.4516 68.3463 15.4653 68.3425 15.4717 68.3437 15.4761 68.3517 15.4893 68.3573 15.4992 68.3573 15.5064 68.3541 15.4987 68.3471 15.5085 68.3436 15.5123 68.3374 15.5271 68.3359 15.5446 68.3394 15.5508 68.3358 15.5688 68.3358 15.5732 68.3337 15.5854 68.3342 15.59 68.3317 15.6002 68.3307 15.5991 68.3284 15.5741 68.3262 15.5724 68.3261 15.5713 68.3217 15.5596 68.3173 15.5668 68.3162 15.5807 68.3175 15.5796 68.3128 15.5841 68.3126 15.5976 68.315 15.6191 68.312 15.6581 68.3143 15.6538 68.3162 15.6571 68.3197 15.647 68.3221 15.6382 68.3265 15.6467 68.3313 15.642 68.3343 15.6532 68.3343 15.6633 68.3379 15.6711 68.3387 15.6824 68.3364 15.6901 68.3377 15.6894 68.342 15.6975 68.3442 15.699 68.3493 15.7151 68.3536 15.7141 68.3588 15.713 68.3648 15.7319 68.3722 15.7268 68.3748 15.7134 68.3738 15.7028 68.3694 15.699 68.3697 15.6943 68.3751 15.6806 68.3791 15.683 68.3813 15.7081 68.3809 15.717 68.3843 15.7355 68.385 15.7539 68.392 15.7546 68.3959 15.7385 68.4017 15.7401 68.4149 15.7566 68.4224 15.7688 68.4355 15.7693 68.436 15.7747 68.4367 15.7787 68.4339 15.7765 68.4164 15.7819 68.4108 15.789 68.41 15.7922 68.4057 15.7985 68.4035 15.8062 68.409 15.8224 68.4069 15.8323 68.4073 15.8385 68.4115 15.8349 68.4153 15.8344 68.4293 15.8245 68.4312 15.8204 68.4344 15.8087 68.4358 15.788 68.4446 15.7836 68.4488 15.7897 68.4532 15.772 68.4603 15.7769 68.4626 15.7797 68.4623 15.784 68.4619 15.7938 68.4584 15.8082 68.4418 15.8161 68.4384 15.8261 68.4381 15.8333 68.4352 15.846 68.4364 15.8523 68.4385 15.8732 68.454 15.8707 68.4604 15.8784 68.466 15.8693 68.4778 15.8728 68.4889 15.8677 68.4977 15.8696 68.5166 15.8805 68.5113 15.878 68.5032 15.8809 68.4932 15.8803 68.4911 15.8759 68.4764 15.8861 68.4674 15.8929 68.4677 15.8952 68.4664 15.8887 68.4567 15.8912 68.4524 15.8999 68.4484 15.8803 68.4449 15.8778 68.4429 15.8756 68.4376 15.8816 68.4282 15.8711 68.413 15.877 68.4098 15.8601 68.3956 15.8585 68.3861 15.8622 68.3842 15.8748 68.3858 15.876 68.3855 15.8836 68.3834 15.8955 68.3853 15.9094 68.3847 15.914 68.386 15.9168 68.3914 15.9254 68.3941 15.9224 68.3958 15.9256 68.3975 15.9343 68.3953 15.9477 68.3986 15.9586 68.3956 15.999 68.4107 15.9997 68.4232 16.0089 68.4366 16.0121 68.4492 16.0392 68.4633 16.0484 68.4655 16.0726 68.4713 16.0833 68.4754 16.0852 68.4837 16.0915 68.4879 16.0809 68.4943 16.0964 68.4993 16.1053 68.5162 16.1108 68.5166 16.1232 68.5127 16.1301 68.5146 16.1224 68.5198 16.1117 68.5219 16.1083 68.525 16.1175 68.5389 16.1173 68.544 16.1094 68.5494 16.0884 68.5548 16.0925 68.5582 16.0936 68.5581 16.1047 68.5573 16.1212 68.5522 16.127 68.5473 16.1252 68.536 16.1306 68.5325 16.1493 68.531 16.1628 68.5317 16.1944 68.5483 16.2247 68.5609 16.2359 68.5636 16.2588 68.5626 16.2778 68.5574 16.2913 68.5563 16.308 68.5592 16.3175 68.5657 16.3242 68.5666 16.3394 68.5684 16.4004 68.5699 16.4246 68.5665 16.451 68.5596 16.4618 68.5591 16.5162 68.5689 16.5171 68.5746 16.5266 68.5791 16.5122 68.5813 16.5088 68.5847 16.5104 68.5971 16.5002 68.6094 16.5004 68.6133 16.5302 68.6143 16.5431 68.6178 16.5686 68.6329 16.5756 68.6442 16.5955 68.6499 16.5935 68.6549 16.5964 68.6582 16.587 68.6607 16.5865 68.6648 16.6004 68.6669 16.6079 68.6742 16.5926 68.6772 16.5916 68.6833 16.5469 68.6877 16.5526 68.6923 16.5637 68.6931 16.5642 68.6947 16.5651 68.6973 16.5783 68.6973 16.5872 68.6995 16.5844 68.7051 16.592 68.7145 16.6003 68.7187 16.5937 68.7247 16.5957 68.7337 16.5919 68.7361 16.5793 68.7313 16.5715 68.7225 16.5502 68.722 16.5453 68.7237 16.5602 68.7338 16.5785 68.7386 16.5715 68.7485 16.5651 68.7508 16.573 68.7591 16.568 68.7662 16.5637 68.7723 16.566 68.7781 16.5799 68.7758 16.5916 68.7864 16.591 68.7907 16.5998 68.8004 16.5851 68.801 16.5742 68.8039 16.5621 68.8039 16.5527 68.8013 16.5494 68.7902 16.5422 68.7887 16.5376 68.7916 16.5403 68.8002 16.5554 68.8193 16.5602 68.8227 16.5769 68.8267 16.5925 68.8277 16.5928 68.8281 16.5988 68.8346 16.5968 68.8375 16.5602 68.8413 16.5495 68.8363 16.5418 68.8248 16.5214 68.8183 16.516 68.8218 16.4926 68.8239 16.4863 68.8283 16.4945 68.8467 16.4841 68.8572 16.4745 68.8616 16.4576 68.861 16.4363 68.855 16.4233 68.8569 16.4039 68.8598 16.3595 68.8749 16.3417 68.8842 16.3045 68.8961 16.2895 68.9041 16.2834 68.9165 16.2754 68.9224 16.27 68.9231 16.2623 68.9212 16.2558 68.9237 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_123.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_123.poly deleted file mode 100644 index 6711c60a576..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_123.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -361 14.9191 68.3317 14.945 68.3379 14.9626 68.3468 14.9877 68.3647 14.9829 68.3698 14.9839 68.3742 14.9939 68.3853 15 68.3862 15.0173 68.3751 15.0235 68.3733 15.0326 68.3739 15.0367 68.3749 15.051 68.3786 15.0779 68.3934 15.0807 68.4002 15.0919 68.404 15.1009 68.4108 15.1193 68.4192 15.1378 68.4332 15.1728 68.4522 15.1897 68.4656 15.1886 68.4688 15.178 68.4706 15.1897 68.475 15.1873 68.4768 15.1832 68.4762 15.1795 68.4757 15.1617 68.4782 15.1544 68.4758 15.1583 68.4716 15.1554 68.4689 15.0899 68.4662 15.0604 68.4684 15.0501 68.4674 15.045 68.464 15.0395 68.4522 15.004 68.4499 15 68.4456 14.9976 68.443 14.9876 68.4391 14.9658 68.4517 14.9547 68.4514 14.9411 68.4545 14.94 68.4543 14.9293 68.4523 14.9004 68.4526 14.9032 68.4573 14.8957 68.4609 14.8871 68.4623 14.878 68.4615 14.8751 68.4588 14.8875 68.4539 14.8771 68.4476 14.8893 68.4394 14.887 68.4333 14.8642 68.4159 14.8746 68.4127 14.8786 68.4067 14.8919 68.397 14.889 68.3927 14.8712 68.3974 14.8579 68.3977 14.8509 68.396 14.8487 68.3954 14.84 68.39 14.8243 68.3865 14.8105 68.3796 14.7996 68.3786 14.7792 68.3726 14.7745 68.3736 14.7763 68.3755 14.8068 68.3884 14.8276 68.3933 14.8334 68.3963 14.8306 68.3992 14.8385 68.4088 14.8392 68.4178 14.8317 68.4214 14.8386 68.4323 14.836 68.4342 14.8254 68.4305 14.8063 68.4375 14.8053 68.4379 14.7982 68.4387 14.7655 68.4374 14.7485 68.4394 14.7458 68.4436 14.7407 68.4438 14.7321 68.4434 14.7248 68.4392 14.7172 68.4393 14.7069 68.4365 14.6921 68.4305 14.691 68.4268 14.6978 68.4197 14.6998 68.4085 14.7141 68.3963 14.7102 68.3931 14.6976 68.3918 14.6701 68.4044 14.6886 68.4137 14.6858 68.4153 14.681 68.4178 14.6768 68.4314 14.6619 68.4381 14.6477 68.4411 14.6026 68.4396 14.5909 68.4338 14.5655 68.4312 14.5295 68.4198 14.5366 68.4139 14.5512 68.4134 14.5551 68.4111 14.5534 68.4055 14.5778 68.3965 14.5847 68.3913 14.5806 68.3872 14.5737 68.3858 14.5624 68.3836 14.5567 68.3838 14.5538 68.3797 14.5572 68.3736 14.5492 68.3751 14.5436 68.3804 14.545 68.385 14.5295 68.3988 14.5257 68.406 14.5146 68.4089 14.5035 68.4086 14.475 68.4008 14.4468 68.401 14.4254 68.3963 14.4115 68.3984 14.4103 68.3949 14.4196 68.3898 14.4182 68.3886 14.4011 68.3875 14.4007 68.3852 14.4136 68.3825 14.4344 68.3783 14.4231 68.3734 14.4234 68.3706 14.443 68.3683 14.4349 68.3647 14.4282 68.3644 14.4273 68.3616 14.4379 68.3547 14.4764 68.3536 14.4772 68.3564 14.4657 68.3625 14.4547 68.3652 14.4583 68.3675 14.4793 68.3611 14.4871 68.3569 14.4893 68.3524 14.4831 68.3454 14.4931 68.3348 14.4862 68.3297 14.4897 68.3268 14.4821 68.328 14.4779 68.3286 14.4721 68.3255 14.4563 68.333 14.4637 68.3385 14.4575 68.3455 14.4579 68.3495 14.4457 68.3521 14.4384 68.3483 14.4377 68.3432 14.4451 68.3383 14.4415 68.3328 14.4442 68.3304 14.4387 68.3283 14.4121 68.3279 14.4053 68.3294 14.4038 68.325 14.4077 68.321 14.418 68.3183 14.4241 68.3084 14.4205 68.3064 14.412 68.309 14.3944 68.3215 14.3918 68.326 14.3865 68.3347 14.3752 68.3418 14.3627 68.3453 14.3372 68.3486 14.3279 68.3449 14.3065 68.325 14.3043 68.3023 14.2996 68.2981 14.3093 68.2935 14.3413 68.2861 14.3434 68.2821 14.3404 68.2799 14.308 68.2835 14.295 68.285 14.2778 68.2793 14.2845 68.2746 14.2691 68.2692 14.2678 68.2627 14.2766 68.2573 14.2972 68.2535 14.3078 68.2536 14.3282 68.2606 14.3653 68.2661 14.3747 68.2661 14.3796 68.2645 14.3666 68.2609 14.343 68.2593 14.3212 68.2543 14.3179 68.2513 14.2778 68.2502 14.2742 68.2501 14.2633 68.2461 14.2429 68.2457 14.231 68.2426 14.211 68.2414 14.2047 68.2381 14.2043 68.2224 14.2091 68.2194 14.2151 68.2185 14.2128 68.2129 14.2241 68.2107 14.211 68.2042 14.2057 68.1968 14.2142 68.1956 14.2318 68.2 14.2325 68.198 14.2088 68.1901 14.1995 68.185 14.198 68.1808 14.2084 68.176 14.2206 68.1752 14.2224 68.1751 14.2304 68.1769 14.2395 68.1757 14.2908 68.1845 14.3022 68.1855 14.3149 68.1846 14.3323 68.1861 14.3418 68.1889 14.3295 68.1954 14.3329 68.1965 14.3369 68.1958 14.3385 68.198 14.335 68.2008 14.3362 68.2096 14.3298 68.2185 14.3371 68.2191 14.3422 68.2168 14.3432 68.204 14.3521 68.1966 14.3565 68.1998 14.3695 68.1981 14.3776 68.2013 14.3832 68.2014 14.3955 68.2017 14.3995 68.2042 14.3894 68.2083 14.3981 68.2134 14.3993 68.2185 14.4029 68.2189 14.4212 68.2163 14.4243 68.2146 14.4192 68.2098 14.422 68.2072 14.4383 68.2119 14.4464 68.21 14.4629 68.2124 14.4785 68.2104 14.4828 68.2159 14.4911 68.2186 14.4924 68.2235 14.5038 68.2229 14.5122 68.2272 14.526 68.227 14.5304 68.2284 14.5341 68.232 14.5309 68.2357 14.5373 68.2423 14.5341 68.2442 14.5255 68.244 14.5099 68.2403 14.5072 68.2397 14.4986 68.2411 14.5075 68.2457 14.5326 68.2503 14.5478 68.246 14.5462 68.2365 14.5527 68.2338 14.5632 68.2339 14.5806 68.2428 14.5691 68.2452 14.5707 68.2462 14.6252 68.25 14.6305 68.2419 14.6368 68.2418 14.6394 68.243 14.6377 68.2462 14.6422 68.2494 14.6485 68.2474 14.6433 68.2425 14.6492 68.2401 14.6623 68.2432 14.6597 68.2489 14.6604 68.2498 14.6651 68.2567 14.6755 68.2607 14.6819 68.2762 14.6792 68.2786 14.6593 68.2804 14.6406 68.2786 14.6285 68.2812 14.6235 68.2849 14.6255 68.288 14.6346 68.287 14.6629 68.2895 14.6738 68.2868 14.6853 68.2897 14.6925 68.3029 14.7145 68.3201 14.7072 68.3232 14.6942 68.3247 14.6924 68.326 14.6908 68.3273 14.6955 68.3316 14.712 68.3363 14.7084 68.3394 14.7107 68.3508 14.7046 68.3592 14.7085 68.3624 14.7422 68.355 14.747 68.352 14.7391 68.3424 14.749 68.3392 14.7527 68.3339 14.7824 68.3362 14.7904 68.3347 14.7847 68.3314 14.7526 68.3233 14.7441 68.3192 14.7368 68.3111 14.7073 68.2783 14.7149 68.2759 14.7121 68.2679 14.7236 68.2671 14.7268 68.2615 14.7422 68.2652 14.7461 68.2721 14.7526 68.2749 14.7972 68.2841 14.8055 68.2873 14.8186 68.298 14.8359 68.3037 14.8467 68.3012 14.8509 68.3041 14.8553 68.3071 14.8788 68.3146 14.8908 68.3216 14.9109 68.3265 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_147.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_147.poly deleted file mode 100644 index 9143c036846..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_147.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -198 13.0141 67.8875 13.0283 67.8888 13.0327 67.896 13.0267 67.9015 13.0273 67.9045 13.0325 67.9053 13.0469 67.9031 13.0554 67.9064 13.0497 67.9097 13.052 67.9131 13.0633 67.914 13.064 67.9152 13.0607 67.9173 13.0414 67.9208 13.0444 67.924 13.0691 67.9214 13.0701 67.9213 13.0734 67.9222 13.0728 67.928 13.0778 67.9308 13.0886 67.93 13.0918 67.9341 13.0886 67.9374 13.0835 67.9378 13.0768 67.9347 13.0711 67.9366 13.0715 67.9401 13.0929 67.9435 13.0952 67.9466 13.0878 67.9482 13.0699 67.9454 13.0571 67.9451 13.0384 67.9502 13.0183 67.9527 12.9948 67.953 12.9836 67.9472 12.9739 67.9469 12.9745 67.95 12.9938 67.9613 12.9819 67.9675 12.9821 67.97 12.9821 67.9714 12.9875 67.9718 13.0199 67.9621 13.0239 67.9658 13.0175 67.9707 13.0173 67.9758 13.008 67.9831 12.998 67.9865 13.0052 67.9929 13.0106 67.9946 13.018 67.9918 13.0372 67.9781 13.037 67.9654 13.0548 67.9581 13.0622 67.9565 13.0759 67.9561 13.0842 67.9584 13.09 67.9713 13.0935 67.9727 13.0947 67.9731 13.105 67.9617 13.1275 67.9503 13.1316 67.9508 13.1386 67.9607 13.1458 67.9641 13.1578 67.965 13.1825 67.9798 13.1675 67.9864 13.1635 67.9931 13.1646 68.0008 13.1784 68.0078 13.1729 68.0167 13.1807 68.0262 13.1665 68.0381 13.1683 68.0458 13.1615 68.0487 13.1539 68.0491 13.105 68.0288 13.0854 68.0239 13.0832 68.0291 13.0673 68.0317 13.0527 68.0371 13.0537 68.0406 13.082 68.0364 13.0941 68.0371 13.098 68.0397 13.091 68.043 13.1015 68.0489 13.1119 68.0449 13.1195 68.0458 13.1228 68.0513 13.1675 68.0642 13.1702 68.0681 13.1642 68.0722 13.1447 68.0699 13.1352 68.0615 13.1265 68.0617 13.1411 68.0787 13.1562 68.0812 13.1642 68.0872 13.1842 68.0911 13.1911 68.0954 13.1926 68.1038 13.171 68.1067 13.15 68.1018 13.149 68.1016 13.1417 68.1028 13.1438 68.1126 13.1365 68.1168 13.1235 68.1181 13.1035 68.1142 13.0836 68.1172 13.0748 68.116 13.0696 68.1109 13.0744 68.1051 13.0886 68.0965 13.0873 68.0906 13.0932 68.0854 13.0794 68.0768 13.061 68.0794 13.0528 68.0784 13.0452 68.0759 13.0412 68.0706 13.0319 68.0661 13.0192 68.0626 13.0176 68.0551 13.0171 68.0528 12.9967 68.0456 12.9957 68.0347 12.9897 68.0313 12.9806 68.031 12.9647 68.0349 12.9616 68.0306 12.9658 68.0251 12.9637 68.0168 12.9565 68.012 12.9546 67.9902 12.9578 67.9855 12.9541 67.9839 12.9432 67.9835 12.9206 67.9875 12.8984 67.9728 12.9011 67.9688 12.9067 67.9605 12.9015 67.9567 12.9029 67.949 12.8957 67.9458 12.8825 67.9434 12.8777 67.9403 12.8915 67.9337 12.8886 67.9248 12.8731 67.9206 12.8677 67.9145 12.8543 67.9128 12.8494 67.9083 12.8439 67.9068 12.8426 67.9028 12.8537 67.8998 12.854 67.8975 12.8436 67.8946 12.8458 67.8822 12.8524 67.8724 12.8435 67.8638 12.8284 67.8624 12.8275 67.8601 12.8326 67.8569 12.8302 67.8567 12.8376 67.8537 12.8257 67.8528 12.8114 67.8475 12.7969 67.8457 12.7942 67.8432 12.7979 67.8405 12.8138 67.8391 12.8131 67.8363 12.8005 67.8341 12.8008 67.8321 12.8057 67.8307 12.8538 67.8327 12.8717 67.8368 12.8736 67.8424 12.8833 67.8456 12.8862 67.8504 12.9044 67.8582 12.9068 67.8611 12.8972 67.8649 12.8994 67.8685 12.9054 67.8681 12.9158 67.8674 12.9251 67.87 12.9267 67.875 12.9408 67.8795 12.9528 67.8772 12.9614 67.8814 12.976 67.8802 12.9875 67.8867 12.9977 67.8886 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_22.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_22.poly deleted file mode 100644 index 2e5122b73ca..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_22.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -283 25.6817 71.1739 25.681 71.1876 25.6754 71.1881 25.6623 71.1854 25.6582 71.1774 25.6507 71.1744 25.6023 71.1676 25.5968 71.1636 25.5852 71.1619 25.5746 71.1571 25.5669 71.1574 25.5555 71.1709 25.5301 71.1614 25.535 71.1563 25.5475 71.1548 25.5516 71.149 25.603 71.139 25.6042 71.1379 25.5808 71.1369 25.6081 71.126 25.611 71.1216 25.6464 71.118 25.6681 71.1124 25.6735 71.1062 25.6863 71.101 25.7304 71.0831 25.7345 71.0773 25.7274 71.0729 25.7116 71.0704 25.7032 71.071 25.7028 71.0728 25.7095 71.075 25.69 71.0808 25.6435 71.0994 25.6086 71.1061 25.5979 71.1001 25.5795 71.0995 25.5688 71.0954 25.5577 71.0946 25.5516 71.0965 25.5648 71.1002 25.5642 71.1052 25.5707 71.1117 25.569 71.114 25.552 71.1182 25.5168 71.1189 25.4967 71.1163 25.4896 71.1107 25.4791 71.1111 25.4486 71.1243 25.4425 71.1212 25.4449 71.1134 25.4392 71.1078 25.4554 71.098 25.4515 71.0905 25.4479 71.0899 25.4336 71.0933 25.4236 71.0918 25.4219 71.0925 25.4089 71.0975 25.3816 71.0986 25.356 71.0967 25.3402 71.0995 25.3083 71.0981 25.2916 71.0993 25.2703 71.1034 25.2653 71.1026 25.2768 71.094 25.2721 71.0909 25.274 71.089 25.2885 71.0868 25.2877 71.0811 25.3046 71.081 25.3114 71.0739 25.3067 71.0707 25.2676 71.0667 25.2497 71.0538 25.2481 71.0526 25.2584 71.0509 25.2726 71.0516 25.2923 71.0467 25.2794 71.0446 25.2554 71.0441 25.2477 71.0387 25.2547 71.0277 25.2835 71.0179 25.3204 71.0153 25.3388 71.0168 25.354 71.0207 25.3652 71.0203 25.3796 71.0229 25.3934 71.0265 25.4074 71.0266 25.4176 71.0291 25.4248 71.0352 25.4322 71.0333 25.4475 71.0323 25.4503 71.0335 25.4609 71.0378 25.4702 71.0388 25.477 71.0374 25.4898 71.0383 25.5172 71.034 25.5335 71.0349 25.5389 71.0337 25.5386 71.0271 25.5265 71.0256 25.3985 70.9972 25.3903 70.9937 25.3982 70.9902 25.4668 70.9752 25.4714 70.9731 25.4633 70.9705 25.4643 70.9675 25.4867 70.9626 25.4922 70.9522 25.502 70.949 25.5503 70.9335 25.5635 70.9335 25.6161 70.9397 25.6206 70.9419 25.611 70.9478 25.6162 70.9498 25.6247 70.9501 25.6396 70.9473 25.6537 70.9478 25.6858 70.9431 25.714 70.9447 25.7333 70.9476 25.7235 70.9519 25.7215 70.9569 25.6934 70.9565 25.6784 70.9588 25.6753 70.9616 25.6944 70.9631 25.7103 70.9711 25.7081 70.9745 25.7377 70.9898 25.7517 70.985 25.758 70.9803 25.7767 70.9747 25.801 70.9739 25.8044 70.9777 25.8464 70.9774 25.9064 70.9679 25.915 70.9689 25.9127 70.9762 25.9198 70.9809 25.9326 70.9835 25.9335 70.9836 25.9369 70.9875 25.9293 70.9919 25.9403 70.9949 25.9571 70.995 25.9666 70.9974 25.9732 70.9948 25.9667 70.9897 25.9718 70.9825 25.967 70.9787 25.9876 70.9724 26.0002 70.9724 26.0154 70.9751 26.0241 70.9809 26.0383 70.9783 26.0768 70.9822 26.1184 70.9921 26.1378 71.0025 26.1697 71.0088 26.196 71.0224 26.2176 71.0336 26.214 71.0604 26.208 71.0619 26.1938 71.0615 26.1754 71.0568 26.1614 71.0571 26.1505 71.0553 26.1335 71.0501 26.1148 71.0477 26.0917 71.0404 26.0627 71.0229 26.0543 71.0143 26.0448 71.012 26.0329 71.0149 26.0272 71.0162 26.0172 71.0107 26.0047 71.0157 25.9597 71.0102 25.9179 71.0122 25.9001 71.0107 25.895 71.0136 25.8974 71.0153 25.8868 71.0194 25.8858 71.0222 25.8944 71.0273 25.9 71.0274 25.9075 71.0218 25.9175 71.0271 25.9319 71.0248 25.9419 71.0258 25.9563 71.0239 25.9631 71.0303 25.9638 71.0344 25.9322 71.0399 25.931 71.0449 25.903 71.0502 25.8905 71.0422 25.8766 71.039 25.8715 71.0416 25.8841 71.0457 25.887 71.055 25.8944 71.0572 25.8761 71.0614 25.8679 71.0673 25.8478 71.0649 25.8405 71.0721 25.8494 71.0747 25.8843 71.0775 25.9039 71.0769 25.9155 71.0788 25.9154 71.0829 25.9269 71.0834 25.936 71.0839 25.9513 71.0872 25.9727 71.0865 25.9895 71.0882 26.0033 71.095 26.0158 71.098 26.0413 71.1112 26.0501 71.1131 26.0423 71.121 26.0347 71.1221 26.0238 71.1287 26.0009 71.135 25.9963 71.1408 25.9821 71.1411 25.9706 71.1392 25.9435 71.1164 25.9375 71.1142 25.9327 71.1148 25.9267 71.1213 25.9306 71.1278 25.927 71.1318 25.9178 71.1315 25.9002 71.1274 25.8855 71.1151 25.8645 71.1114 25.8353 71.1098 25.8328 71.1115 25.8389 71.1146 25.8387 71.1176 25.8476 71.1206 25.8445 71.1229 25.8673 71.1287 25.8598 71.1307 25.8429 71.1273 25.8292 71.1246 25.7906 71.112 25.7806 71.111 25.7829 71.1171 25.779 71.1188 25.7531 71.1156 25.7522 71.1186 25.7954 71.1425 25.7932 71.1462 25.8059 71.1551 25.794 71.1603 25.8099 71.1623 25.8165 71.1684 25.8147 71.1705 25.7865 71.1751 25.7675 71.1754 25.7663 71.175 25.7563 71.1717 25.7401 71.1724 25.7391 71.1656 25.718 71.1575 25.7102 71.1569 25.7007 71.1594 25.6901 71.1552 25.6859 71.1553 25.6844 71.1592 25.6937 71.1693 25.6906 71.1719 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_235.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_235.poly deleted file mode 100644 index e49f16d2d0c..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_235.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -182 11.3239 64.922 11.3361 64.9254 11.3624 64.9391 11.3723 64.9466 11.3696 64.9478 11.3611 64.9483 11.3469 64.9444 11.3314 64.9425 11.3003 64.9322 11.2879 64.9231 11.2885 64.9166 11.2838 64.9086 11.2769 64.9057 11.265 64.9041 11.2606 64.9054 11.2596 64.9116 11.2359 64.9281 11.2267 64.9304 11.2065 64.9304 11.2181 64.9338 11.2298 64.9394 11.2301 64.9413 11.2226 64.9435 11.1887 64.9422 11.1751 64.9444 11.1673 64.9472 11.1589 64.9587 11.1516 64.9604 11.1565 64.9643 11.1282 64.9651 11.1446 64.9687 11.1578 64.9737 11.1603 64.979 11.1568 64.9808 11.1394 64.978 11.1301 64.9791 11.0928 64.9786 11.0321 64.969 10.9931 64.9608 10.9769 64.9553 10.9709 64.9553 10.9631 64.9579 10.9537 64.9569 10.916 64.9409 10.9004 64.9391 10.8903 64.936 10.8673 64.9202 10.8582 64.9162 10.8563 64.9179 10.8654 64.927 10.8598 64.9284 10.8538 64.9258 10.8462 64.9185 10.8292 64.9162 10.8467 64.9283 10.8431 64.9301 10.8279 64.9298 10.8134 64.9281 10.8062 64.9222 10.7984 64.919 10.7643 64.9108 10.7614 64.9101 10.7635 64.9066 10.7795 64.9051 10.7834 64.911 10.7899 64.9111 10.8008 64.909 10.8005 64.9048 10.7898 64.9029 10.7857 64.8989 10.7612 64.8962 10.7547 64.8924 10.7535 64.889 10.7656 64.8828 10.752 64.8745 10.7583 64.8739 10.766 64.8761 10.7869 64.889 10.8008 64.8897 10.8113 64.8919 10.8285 64.8984 10.8356 64.9034 10.8476 64.9119 10.8531 64.9118 10.8495 64.9041 10.8462 64.9029 10.8393 64.8963 10.8125 64.8855 10.8012 64.8816 10.7925 64.8839 10.7872 64.881 10.7816 64.8779 10.742 64.8639 10.7442 64.8615 10.7501 64.8606 10.7857 64.8736 10.7872 64.8716 10.7526 64.8539 10.76 64.851 10.8127 64.8562 10.8571 64.868 10.896 64.8835 10.9132 64.8925 10.918 64.9013 10.9413 64.9115 10.95 64.9092 10.9602 64.911 10.9846 64.9199 11.0193 64.9255 11.0208 64.9233 11.0083 64.9183 10.983 64.9137 10.9523 64.9029 10.93 64.8979 10.9191 64.8833 10.9095 64.8816 10.9017 64.8733 10.864 64.8649 10.8432 64.8518 10.8414 64.8449 10.8458 64.8411 10.8595 64.8387 10.8719 64.839 10.8839 64.8535 10.8908 64.8563 10.9057 64.8585 10.9133 64.8633 10.9308 64.867 10.9377 64.8711 10.9537 64.8719 10.9668 64.8767 10.9776 64.8831 10.9916 64.8812 10.9993 64.8835 11.0137 64.8906 11.0212 64.8943 11.0184 64.908 11.0262 64.9065 11.0335 64.9011 11.0669 64.9107 11.0725 64.9086 11.0378 64.8914 11.0563 64.8892 11.0661 64.8905 11.1104 64.9088 11.1064 64.8983 11.0982 64.8955 11.094 64.8941 11.1042 64.8884 11.0791 64.8748 11.0651 64.8534 11.069 64.8496 11.0832 64.8547 11.0909 64.8532 11.0817 64.8469 11.087 64.8447 11.0967 64.8451 11.1 64.8437 11.0894 64.8368 11.0867 64.8331 11.0885 64.8302 11.0956 64.8303 11.1229 64.8388 11.1258 64.8323 11.1305 64.8315 11.1367 64.8332 11.1378 64.8335 11.14 64.8323 11.1373 64.8286 11.1405 64.826 11.1461 64.8258 11.2279 64.8569 11.2439 64.8614 11.2832 64.8863 11.2895 64.8882 11.2963 64.885 11.3014 64.8858 11.3087 64.8904 11.3121 64.895 11.306 64.9038 11.305 64.9052 11.3091 64.9108 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_298.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_298.poly deleted file mode 100644 index dbdad4da6b5..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_298.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -262 9.1458 63.5392 9.15707 63.5464 9.19479 63.5633 9.20301 63.5705 9.19761 63.575 9.18763 63.579 9.18267 63.5766 9.17459 63.5762 9.17197 63.576 9.1605 63.5716 9.15439 63.5635 9.14423 63.5627 9.13028 63.5572 9.12918 63.5584 9.14092 63.5663 9.13318 63.5673 9.13309 63.5687 9.14409 63.5723 9.15325 63.5806 9.14138 63.5823 9.14674 63.5862 9.14561 63.5878 9.13739 63.5884 9.12445 63.598 9.11622 63.5986 9.11085 63.6024 9.10107 63.6032 9.09156 63.6074 9.08541 63.6075 9.06522 63.6034 9.051 63.6064 9.04703 63.6072 9.04051 63.6053 9.02215 63.6044 9.01394 63.5974 9.00393 63.5943 9.00673 63.5909 9.00379 63.5891 8.98793 63.5891 8.97529 63.5871 8.96399 63.5876 8.97586 63.5932 8.97357 63.5966 8.97691 63.5999 8.98245 63.6011 8.98618 63.6062 8.97828 63.6093 8.98575 63.6121 8.98579 63.6187 8.97702 63.6195 8.97309 63.6243 8.94585 63.6255 8.94419 63.627 8.9594 63.6293 8.97176 63.6283 8.98586 63.6317 8.99156 63.638 8.99853 63.6408 9.00014 63.6541 8.99462 63.6595 8.98748 63.6589 8.9812 63.6607 8.97002 63.6591 8.96426 63.6609 8.95824 63.659 8.94693 63.6593 8.9402 63.6532 8.92423 63.6473 8.91409 63.6458 8.91181 63.6421 8.90445 63.6445 8.9073 63.6475 8.90457 63.6497 8.8982 63.6458 8.89081 63.6486 8.87813 63.6468 8.88151 63.6428 8.87863 63.6402 8.88498 63.6376 8.87857 63.6343 8.88072 63.633 8.89195 63.6336 8.89065 63.6304 8.90446 63.6308 8.91383 63.6289 8.91502 63.6266 8.89834 63.6236 8.89254 63.6258 8.88634 63.6198 8.87982 63.6179 8.88518 63.6148 8.87719 63.6121 8.87537 63.6091 8.86769 63.609 8.86091 63.6174 8.85523 63.618 8.85823 63.6255 8.86687 63.6332 8.85949 63.6358 8.85603 63.6408 8.85863 63.647 8.84486 63.6461 8.82769 63.6427 8.80952 63.6413 8.78642 63.6395 8.76588 63.6399 8.75338 63.636 8.7427 63.635 8.7325 63.6343 8.72725 63.6359 8.69754 63.6294 8.69172 63.6255 8.6631 63.6246 8.64035 63.621 8.63764 63.6166 8.61032 63.6187 8.59247 63.6177 8.58169 63.612 8.56175 63.6058 8.5607 63.6051 8.55151 63.5999 8.54247 63.5979 8.54825 63.5962 8.55949 63.5964 8.56688 63.5937 8.57858 63.5946 8.59549 63.5885 8.60516 63.5891 8.62304 63.5835 8.6322 63.5841 8.64908 63.578 8.66882 63.5744 8.68683 63.5731 8.69218 63.5702 8.70855 63.5703 8.72882 63.5663 8.73846 63.5671 8.74213 63.566 8.73331 63.5613 8.73107 63.5574 8.73731 63.5497 8.74082 63.5379 8.7363 63.5369 8.72925 63.5421 8.73174 63.5492 8.72562 63.5552 8.72831 63.5577 8.72915 63.5619 8.70472 63.567 8.6961 63.5662 8.67854 63.5682 8.66753 63.5714 8.64485 63.5736 8.63954 63.5698 8.61449 63.5696 8.5941 63.5629 8.56964 63.5612 8.55848 63.555 8.55324 63.5565 8.55092 63.5597 8.53199 63.5598 8.52662 63.5627 8.50659 63.5637 8.48645 63.5602 8.48166 63.5624 8.47657 63.562 8.4692 63.5587 8.46649 63.5548 8.45905 63.5579 8.44217 63.5523 8.41872 63.5517 8.40631 63.5475 8.39925 63.541 8.36274 63.5271 8.36316 63.5226 8.37245 63.5216 8.36563 63.518 8.36367 63.5177 8.35356 63.516 8.33586 63.5088 8.32128 63.5065 8.31083 63.4983 8.30154 63.494 8.30651 63.49 8.30184 63.4856 8.30597 63.485 8.31143 63.4867 8.3204 63.4941 8.3378 63.499 8.34446 63.5042 8.35673 63.5039 8.35843 63.5021 8.3349 63.4919 8.32186 63.4896 8.32289 63.4841 8.31621 63.4792 8.32655 63.4778 8.32687 63.4744 8.32569 63.4728 8.3183 63.4626 8.36354 63.4584 8.36278 63.4556 8.37795 63.4514 8.36556 63.4477 8.36793 63.4441 8.37581 63.4415 8.38806 63.4413 8.38371 63.4387 8.38593 63.4367 8.39858 63.4321 8.40896 63.4355 8.4133 63.4326 8.42903 63.4331 8.43737 63.431 8.4563 63.4299 8.46774 63.4329 8.48363 63.4318 8.49719 63.4338 8.50062 63.434 8.53678 63.4352 8.55261 63.4405 8.5649 63.4398 8.57238 63.4475 8.57837 63.4489 8.58404 63.4541 8.59637 63.4588 8.60195 63.4592 8.60622 63.4629 8.63288 63.467 8.64275 63.4708 8.68112 63.4753 8.69289 63.4748 8.71052 63.4774 8.71742 63.4802 8.7333 63.4793 8.73733 63.4811 8.7397 63.4822 8.74736 63.4821 8.76071 63.4873 8.76331 63.4803 8.77398 63.4807 8.77879 63.4844 8.79782 63.4888 8.81505 63.4902 8.82143 63.4869 8.83778 63.4864 8.84226 63.4813 8.8474 63.4806 8.85731 63.4845 8.86449 63.4839 8.87856 63.4866 8.88248 63.4887 8.89479 63.4877 8.9489 63.5009 8.96508 63.5029 8.96558 63.5029 8.97035 63.5076 8.97912 63.5063 8.9865 63.5101 9.0109 63.5113 9.04584 63.5152 9.12426 63.533 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_319.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_319.poly deleted file mode 100644 index 236b3171d16..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_319.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -139 7.72713 62.999 7.73548 63.0051 7.7318 63.011 7.71683 63.0145 7.71073 63.0196 7.69383 63.0224 7.68548 63.0296 7.68548 63.0339 7.67953 63.042 7.68102 63.047 7.6817 63.0494 7.67706 63.0547 7.67952 63.0596 7.67765 63.0627 7.66946 63.0596 7.66386 63.0601 7.65312 63.0574 7.62943 63.0577 7.62679 63.0588 7.62811 63.0604 7.66939 63.0646 7.68178 63.0706 7.68223 63.0754 7.67595 63.0776 7.67929 63.0923 7.67687 63.1002 7.66304 63.1109 7.67207 63.1157 7.67012 63.1202 7.66929 63.1222 7.64164 63.1216 7.64243 63.1234 7.6382 63.1251 7.61034 63.1176 7.60823 63.1141 7.59201 63.1149 7.58826 63.1125 7.57972 63.1123 7.58166 63.1087 7.57538 63.1022 7.58157 63.1009 7.59811 63.1059 7.60581 63.1047 7.61729 63.1057 7.63427 63.1026 7.63543 63.1013 7.62935 63.0973 7.63964 63.0911 7.63129 63.0893 7.61567 63.0894 7.61331 63.088 7.61477 63.0841 7.61178 63.0816 7.60973 63.0799 7.62976 63.0765 7.6416 63.0786 7.64678 63.0773 7.63764 63.0737 7.63473 63.0684 7.61181 63.0665 7.59123 63.0575 7.57721 63.0569 7.57388 63.0553 7.57365 63.053 7.59123 63.0404 7.59121 63.0362 7.59443 63.0345 7.58771 63.0318 7.59099 63.0296 7.59864 63.0286 7.58902 63.025 7.59549 63.0213 7.58002 63.0161 7.57546 63.0164 7.57839 63.0233 7.58018 63.0275 7.56864 63.0316 7.557 63.0407 7.55557 63.0443 7.55095 63.0451 7.54486 63.0498 7.5097 63.0494 7.49877 63.0441 7.49504 63.0458 7.48195 63.0459 7.47716 63.0481 7.48042 63.0502 7.50232 63.0521 7.51802 63.0555 7.52273 63.0581 7.51238 63.0647 7.49967 63.0658 7.47656 63.0613 7.46396 63.0615 7.45851 63.0597 7.44847 63.0565 7.43852 63.0556 7.43147 63.0515 7.45632 63.0499 7.45805 63.0481 7.45273 63.0463 7.44323 63.0459 7.43345 63.0477 7.43022 63.0453 7.43895 63.0398 7.43502 63.039 7.43611 63.0343 7.43054 63.0346 7.42091 63.0311 7.41919 63.0288 7.42943 63.0272 7.45571 63.0302 7.46125 63.026 7.45902 63.0236 7.44439 63.0201 7.42655 63.018 7.41491 63.0187 7.41653 63.0137 7.38084 63.0018 7.37044 63.0006 7.35393 62.9881 7.36646 62.9801 7.38278 62.9781 7.39782 62.9782 7.4379 62.9705 7.46544 62.9628 7.47955 62.9622 7.49048 62.9547 7.49612 62.9537 7.49417 62.9491 7.50001 62.938 7.50848 62.9384 7.53373 62.9452 7.551 62.9475 7.60202 62.9613 7.60948 62.964 7.62801 62.9706 7.64465 62.9785 7.66185 62.9817 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_325.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_325.poly deleted file mode 100644 index 34a79895f02..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_325.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -131 7.89572 63.3597 7.91265 63.3628 7.96265 63.3561 7.979 63.3553 7.98483 63.3529 7.98245 63.3515 7.96548 63.3534 7.95699 63.3521 7.94313 63.3534 7.93645 63.3494 7.96689 63.3402 7.9708 63.3321 7.97557 63.3301 8.01763 63.3266 8.02344 63.3286 8.01905 63.3317 8.02144 63.3331 8.03159 63.3331 8.05143 63.3278 8.06436 63.3304 8.07185 63.3365 8.07976 63.3337 8.08724 63.335 8.1002 63.3322 8.1081 63.3345 8.12138 63.3336 8.10913 63.3393 8.08101 63.3412 8.07168 63.3431 8.07405 63.3447 8.09578 63.3444 8.11627 63.344 8.16717 63.3478 8.16707 63.3539 8.15237 63.3536 8.14965 63.3554 8.1535 63.3575 8.18334 63.3588 8.19852 63.3646 8.19366 63.3675 8.195 63.3693 8.20592 63.372 8.20615 63.3748 8.21879 63.3807 8.21554 63.3827 8.20533 63.3832 8.19954 63.3852 8.20756 63.3915 8.20563 63.4008 8.19751 63.3994 8.19663 63.3993 8.19214 63.4035 8.17706 63.4044 8.17374 63.406 8.17233 63.4134 8.17698 63.4178 8.17292 63.4228 8.16627 63.4231 8.15998 63.4351 8.15319 63.4368 8.14969 63.4413 8.15191 63.4445 8.13967 63.4548 8.13306 63.4597 8.10121 63.4721 8.08997 63.4723 8.07985 63.4666 8.06907 63.4673 8.06315 63.4654 8.04065 63.4647 8.03774 63.4646 8.02933 63.4669 8.02152 63.4734 8.01229 63.4739 7.99605 63.4635 7.98716 63.4608 7.98357 63.4562 7.97805 63.4602 7.96054 63.4571 7.95241 63.4521 7.9462 63.4435 7.95186 63.4381 7.94637 63.4371 7.93823 63.4417 7.92822 63.4402 7.91528 63.4467 7.9093 63.4455 7.91009 63.4382 7.90035 63.4341 7.89504 63.436 7.89145 63.441 7.88073 63.4422 7.87288 63.4431 7.87353 63.4371 7.86597 63.4317 7.86021 63.4378 7.85419 63.437 7.84793 63.429 7.82063 63.4227 7.81552 63.4183 7.80336 63.4178 7.79681 63.4126 7.81621 63.4076 7.82855 63.4065 7.82926 63.4047 7.82017 63.404 7.8155 63.4002 7.82608 63.3966 7.80279 63.391 7.79518 63.3909 7.7943 63.3851 7.80833 63.3793 7.81776 63.3754 7.82902 63.3747 7.82818 63.364 7.83249 63.3618 7.85127 63.362 7.84981 63.3706 7.85627 63.3719 7.86481 63.3682 7.88623 63.3769 7.89275 63.3777 7.89712 63.3748 7.92636 63.3819 7.92955 63.3806 7.91982 63.3765 7.90097 63.3722 7.88441 63.3702 7.87018 63.3656 7.86645 63.3625 7.87154 63.3587 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_333.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_333.poly deleted file mode 100644 index 65708eb2923..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_333.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -146 8.29079 63.6861 8.28642 63.6835 8.29314 63.6777 8.31433 63.6762 8.32563 63.6707 8.31616 63.6678 8.33369 63.667 8.34173 63.6688 8.3511 63.6673 8.36366 63.6703 8.39041 63.6806 8.40118 63.6808 8.41113 63.6842 8.43751 63.6821 8.45329 63.6893 8.46074 63.6898 8.47216 63.6907 8.48349 63.6941 8.48589 63.6919 8.45336 63.6829 8.44446 63.6791 8.44514 63.6772 8.473 63.6814 8.47934 63.6794 8.48445 63.6798 8.55675 63.6924 8.56222 63.6886 8.55071 63.6852 8.53891 63.685 8.5249 63.6809 8.50649 63.6801 8.5011 63.6792 8.47668 63.6748 8.46768 63.6722 8.46967 63.6672 8.49936 63.6679 8.50736 63.6703 8.54332 63.6758 8.57211 63.6753 8.65064 63.6814 8.66577 63.6846 8.68108 63.692 8.68626 63.6914 8.6848 63.69 8.67958 63.6853 8.69439 63.6862 8.69716 63.6899 8.71251 63.6906 8.72756 63.695 8.73337 63.693 8.74202 63.6941 8.756 63.6927 8.76244 63.6955 8.77043 63.692 8.78335 63.6975 8.79078 63.6944 8.79854 63.7002 8.80411 63.7012 8.80836 63.6994 8.8193 63.7039 8.82748 63.7045 8.83838 63.7097 8.8425 63.7162 8.84298 63.7232 8.83633 63.7359 8.83652 63.7395 8.83736 63.7558 8.8198 63.7631 8.79663 63.7632 8.79498 63.7645 8.79948 63.7662 8.81382 63.7671 8.81749 63.7728 8.81497 63.7851 8.81672 63.8023 8.81148 63.8033 8.79429 63.7926 8.79057 63.8005 8.78025 63.8006 8.77161 63.8055 8.76632 63.8008 8.76777 63.7986 8.76985 63.7954 8.76624 63.7889 8.75538 63.7895 8.75292 63.788 8.75799 63.7826 8.75114 63.7782 8.76025 63.7738 8.74591 63.7729 8.73487 63.7693 8.69758 63.7657 8.6655 63.7554 8.65274 63.754 8.63461 63.7494 8.62029 63.7423 8.623 63.7408 8.65144 63.7451 8.65372 63.7424 8.65802 63.7423 8.66352 63.7421 8.6601 63.74 8.62641 63.737 8.61738 63.7343 8.60454 63.7341 8.60316 63.7322 8.60697 63.7298 8.59205 63.7263 8.58972 63.721 8.58577 63.7192 8.58165 63.7193 8.57401 63.7126 8.5804 63.704 8.58877 63.7023 8.58334 63.6997 8.56791 63.6999 8.56906 63.7045 8.56398 63.7097 8.55174 63.7145 8.5355 63.7121 8.52873 63.7132 8.50702 63.7087 8.49718 63.7097 8.49617 63.7094 8.48513 63.7065 8.47893 63.7068 8.46479 63.6984 8.46052 63.7001 8.4761 63.7098 8.47086 63.7108 8.43987 63.7068 8.44207 63.7053 8.45391 63.705 8.44353 63.7005 8.4054 63.6962 8.38115 63.6973 8.3598 63.6949 8.35786 63.6937 8.36111 63.6919 8.36626 63.6918 8.36643 63.69 8.35109 63.6893 8.34057 63.6918 8.33301 63.6909 8.31923 63.6893 8.30791 63.6896 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_38.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_38.poly deleted file mode 100644 index 0ee88e5bd70..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_38.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -677 23.5095 70.797 23.5061 70.7993 23.4633 70.8022 23.4456 70.8101 23.4526 70.8121 23.4643 70.8104 23.4735 70.8136 23.4466 70.8176 23.4412 70.8215 23.4267 70.8222 23.4365 70.8247 23.4404 70.827 23.4479 70.8315 23.4341 70.8336 23.4187 70.8312 23.4 70.8328 23.3784 70.8288 23.3674 70.8323 23.3689 70.8364 23.3837 70.8425 23.3542 70.8511 23.3467 70.8559 23.326 70.8605 23.3208 70.8704 23.3111 70.8709 23.3061 70.8682 23.3079 70.8588 23.2985 70.8461 23.2995 70.8369 23.2913 70.8344 23.2855 70.8326 23.3013 70.8264 23.3031 70.8196 23.3168 70.8143 23.2994 70.8109 23.2937 70.8066 23.2977 70.8018 23.3211 70.7976 23.3256 70.7878 23.2848 70.7907 23.282 70.7877 23.2995 70.7728 23.2939 70.7712 23.2816 70.7759 23.2708 70.7853 23.2468 70.7936 23.2381 70.7944 23.2296 70.7952 23.2216 70.808 23.2053 70.8172 23.1922 70.8198 23.1812 70.8264 23.1743 70.8264 23.1644 70.821 23.1753 70.8105 23.1998 70.7972 23.1914 70.7917 23.1933 70.7867 23.187 70.7833 23.1501 70.8032 23.1371 70.8081 23.1204 70.8103 23.0908 70.8141 23.0687 70.8195 23.0561 70.8154 23.0526 70.8122 23.0581 70.8097 23.0803 70.8094 23.0865 70.8078 23.0877 70.8002 23.1007 70.7959 23.0923 70.7918 23.0524 70.8031 23.0392 70.8029 23.012 70.7911 23.0168 70.7874 23.032 70.7881 23.0382 70.7865 23.045 70.7819 23.0708 70.7735 23.0718 70.7731 23.0834 70.7658 23.0931 70.7637 23.118 70.7646 23.1248 70.7623 23.1213 70.7607 23.1027 70.7616 23.1005 70.7562 23.1039 70.7537 23.1205 70.7538 23.1485 70.743 23.1693 70.7446 23.174 70.7391 23.1809 70.7372 23.1746 70.7359 23.1622 70.7361 23.1512 70.7396 23.1367 70.7401 23.1251 70.7451 23.1175 70.7447 23.1048 70.7347 23.0874 70.7263 23.0928 70.7236 23.09 70.7222 23.0838 70.722 23.0681 70.7275 23.0536 70.7285 23.0418 70.7267 23.0334 70.7208 23.0338 70.7066 23.0254 70.7009 23.0281 70.6977 23.0391 70.6943 23.0418 70.6904 23.0067 70.6939 22.9976 70.6889 22.9846 70.6908 22.9797 70.6871 22.9954 70.6828 23.0008 70.6759 22.9987 70.6723 22.9883 70.6684 22.9662 70.6655 22.9436 70.6692 22.9471 70.6751 22.937 70.6881 22.9281 70.6911 22.9129 70.6909 22.9032 70.6891 22.875 70.6914 22.9055 70.7012 22.9131 70.7071 22.9263 70.7105 22.9361 70.723 22.9327 70.7265 22.921 70.729 22.912 70.7272 22.8886 70.727 22.8747 70.725 22.8623 70.7266 22.854 70.7234 22.8443 70.7232 22.8437 70.728 22.8505 70.7306 22.8687 70.7375 22.859 70.7428 22.8294 70.7511 22.8191 70.7513 22.8107 70.7493 22.81 70.7408 22.8003 70.7376 22.7955 70.7468 22.7838 70.7472 22.7838 70.7511 22.7998 70.7632 22.7985 70.7678 22.795 70.7691 22.7833 70.7687 22.7729 70.7664 22.759 70.766 22.7389 70.7594 22.7126 70.7583 22.6906 70.751 22.6808 70.7478 22.6767 70.7432 22.6863 70.7286 22.7021 70.7234 22.7139 70.7227 22.7243 70.73 22.7381 70.7311 22.7415 70.7293 22.7235 70.7195 22.7249 70.7126 22.7435 70.7094 22.7386 70.7062 22.7255 70.7056 22.7255 70.7031 22.7331 70.7017 22.7441 70.7021 22.7662 70.7062 22.7765 70.7057 22.7765 70.7032 22.7613 70.7016 22.7606 70.6987 22.7744 70.6932 22.7709 70.6911 22.7693 70.6909 22.7489 70.6884 22.7488 70.6855 22.7736 70.6793 22.7866 70.6692 22.792 70.661 22.8016 70.6582 22.8264 70.6582 22.8278 70.6559 22.816 70.6528 22.8009 70.6507 22.7899 70.6514 22.7768 70.6478 22.7685 70.6478 22.7528 70.6556 22.7473 70.6563 22.7369 70.6469 22.7204 70.6394 22.7045 70.6383 22.7066 70.6335 22.7121 70.631 22.7196 70.6305 22.7196 70.6286 22.7196 70.6253 22.712 70.6196 22.7189 70.615 22.7141 70.6132 22.7058 70.6139 22.7004 70.6193 22.6908 70.6235 22.6826 70.6522 22.6867 70.6602 22.6778 70.6618 22.6496 70.6522 22.6379 70.6552 22.6124 70.6561 22.6042 70.6536 22.5904 70.6527 22.5891 70.6509 22.5937 70.6488 22.6289 70.6502 22.6255 70.6443 22.5767 70.6399 22.5636 70.6351 22.5616 70.6393 22.567 70.6507 22.5608 70.6548 22.5478 70.6577 22.5663 70.6609 22.5766 70.6691 22.6042 70.6691 22.611 70.6712 22.5973 70.673 22.6028 70.6751 22.6386 70.675 22.6496 70.6803 22.651 70.6835 22.6549 70.6846 22.6627 70.6869 22.6545 70.6885 22.6338 70.683 22.6296 70.6833 22.629 70.6851 22.6427 70.6887 22.6421 70.6924 22.6331 70.6949 22.6248 70.6949 22.6076 70.6908 22.6035 70.6924 22.6028 70.6974 22.6186 70.7002 22.6103 70.7038 22.6021 70.7061 22.5917 70.7061 22.5828 70.6999 22.5745 70.6999 22.5662 70.7031 22.5621 70.7079 22.5476 70.7125 22.5427 70.7193 22.5344 70.7209 22.5165 70.7214 22.5172 70.715 22.5117 70.7109 22.5165 70.7079 22.5103 70.7053 22.5069 70.7038 22.4883 70.7022 22.4787 70.6997 22.4649 70.6999 22.4642 70.6981 22.4815 70.6954 22.4884 70.6881 22.4795 70.6846 22.4912 70.681 22.5098 70.6805 22.5112 70.678 22.4898 70.6778 22.4795 70.6728 22.472 70.6721 22.4657 70.6773 22.4526 70.6773 22.4319 70.6837 22.4278 70.6871 22.4422 70.6887 22.4194 70.6967 22.4098 70.6942 22.4063 70.6955 22.4083 70.7003 22.4013 70.7088 22.3923 70.7195 22.3791 70.7231 22.3647 70.7183 22.3778 70.7151 22.3573 70.7039 22.3492 70.6889 22.3375 70.6857 22.359 70.6766 22.3839 70.6697 22.3674 70.6643 22.3647 70.6604 22.371 70.6526 22.3813 70.6504 22.3863 70.638 22.3932 70.6346 22.3953 70.631 22.3836 70.6296 22.3698 70.6339 22.3623 70.633 22.345 70.6414 22.3029 70.65 22.2476 70.6662 22.2385 70.6748 22.2054 70.6793 22.193 70.6788 22.1938 70.6731 22.1973 70.6713 22.2152 70.6697 22.2242 70.6654 22.2189 70.6577 22.2256 70.6524 22.2349 70.6451 22.2268 70.6403 22.1979 70.6428 22.1738 70.643 22.1417 70.6336 22.1293 70.6326 22.1197 70.6356 22.1243 70.6404 22.1222 70.6429 22.1276 70.6461 22.1214 70.6483 22.0993 70.6515 22.0746 70.6498 22.0656 70.653 22.0456 70.6523 22.0277 70.6536 22.0147 70.6519 21.9904 70.6605 21.9822 70.6672 21.9769 70.6714 21.9599 70.6673 21.9566 70.6625 21.9415 70.6602 21.9348 70.6553 21.9459 70.6526 21.946 70.6501 21.9296 70.6453 21.9395 70.6389 21.9691 70.6358 21.9726 70.6338 21.97 70.6283 21.9803 70.6286 22.0014 70.6355 22.0173 70.6323 22.0338 70.6324 22.038 70.631 22.0355 70.6223 22.0213 70.6134 22.0117 70.6138 22.0006 70.617 21.9951 70.6163 21.9908 70.614 21.9789 70.6078 21.9882 70.5966 21.9828 70.595 21.9766 70.5955 21.9753 70.5936 21.998 70.5901 22.0284 70.581 22.0359 70.5851 22.0478 70.5986 22.074 70.5935 22.0825 70.5832 22.0874 70.5819 22.097 70.5826 22.1037 70.586 22.1055 70.5958 22.1349 70.6011 22.1522 70.6068 22.1669 70.6117 22.1718 70.6087 22.1992 70.6122 22.2294 70.6123 22.2542 70.6087 22.2816 70.6076 22.2933 70.6085 22.3022 70.6081 22.3043 70.6065 22.2934 70.6005 22.2914 70.5964 22.2115 70.5812 22.204 70.5773 22.2069 70.5675 22.2192 70.5707 22.2295 70.5705 22.2376 70.568 22.2405 70.5671 22.2549 70.5671 22.2537 70.5601 22.2292 70.5502 22.2155 70.549 22.2026 70.5449 22.1889 70.5442 22.1672 70.5389 22.1652 70.5346 22.1427 70.5293 22.1252 70.521 22.1232 70.5174 22.111 70.5153 22.1103 70.5128 22.1309 70.5085 22.1229 70.5028 22.1161 70.5021 22.1168 70.5 22.1237 70.498 22.1346 70.4973 22.1184 70.4886 22.1043 70.4879 22.0912 70.4872 22.0783 70.4846 22.077 70.4828 22.0872 70.481 22.0975 70.4819 22.1078 70.4779 22.129 70.4761 22.1461 70.472 22.1577 70.4727 22.1712 70.4771 22.1479 70.4848 22.1601 70.4876 22.2065 70.4876 22.2243 70.4836 22.2325 70.4834 22.2434 70.4864 22.2467 70.49 22.2411 70.498 22.2498 70.5076 22.2634 70.515 22.2721 70.5197 22.2652 70.5263 22.2692 70.5304 22.2835 70.5341 22.2959 70.5305 22.2878 70.5225 22.2859 70.5159 22.2833 70.5065 22.2847 70.5015 22.293 70.4962 22.3156 70.4892 22.332 70.4892 22.3653 70.5025 22.3543 70.5066 22.3584 70.5091 22.3816 70.5107 22.3883 70.5192 22.3931 70.5192 22.4062 70.5128 22.4001 70.5016 22.4022 70.498 22.3955 70.4927 22.4057 70.4893 22.4248 70.4886 22.4392 70.4889 22.4412 70.4892 22.4555 70.4918 22.4725 70.5019 22.4554 70.5057 22.452 70.5101 22.4655 70.5272 22.4744 70.5311 22.4785 70.5265 22.4888 70.524 22.4922 70.5208 22.495 70.5103 22.5128 70.5055 22.5196 70.5001 22.5326 70.5046 22.5387 70.5046 22.5429 70.4982 22.5654 70.4989 22.5804 70.5062 22.5858 70.5117 22.5855 70.5126 22.5817 70.5224 22.5865 70.524 22.6091 70.5094 22.6159 70.5103 22.6255 70.5176 22.6145 70.5254 22.6186 70.5272 22.6186 70.5336 22.6084 70.5359 22.6125 70.5407 22.6132 70.5548 22.6385 70.5461 22.6474 70.5452 22.6494 70.5466 22.6399 70.5544 22.6522 70.5594 22.659 70.5575 22.6686 70.5502 22.6776 70.552 22.7056 70.5577 22.7097 70.557 22.6932 70.5488 22.6912 70.5418 22.6802 70.5418 22.6754 70.5386 22.6795 70.5342 22.6911 70.5297 22.6836 70.5238 22.6842 70.5139 22.6883 70.5091 22.6972 70.5069 22.7054 70.5075 22.7129 70.5105 22.7206 70.5374 22.7186 70.5479 22.7234 70.5513 22.7358 70.5537 22.7384 70.5481 22.7459 70.5461 22.7644 70.5463 22.7548 70.5415 22.7451 70.5178 22.7478 70.5148 22.7717 70.5182 22.7875 70.5237 22.7998 70.5234 22.8011 70.5193 22.836 70.5208 22.8319 70.527 22.845 70.5341 22.8484 70.5336 22.8545 70.5254 22.9016 70.5319 22.9148 70.5337 22.9243 70.5339 22.9271 70.536 22.9326 70.5364 22.9292 70.5401 22.9314 70.5455 22.9206 70.5606 22.9118 70.5634 22.8864 70.5623 22.8762 70.5678 22.8831 70.5721 22.8804 70.5764 22.8941 70.5748 22.9127 70.5798 22.9202 70.5766 22.9139 70.5723 22.9187 70.5709 22.927 70.572 22.9324 70.5706 22.9516 70.5706 22.9877 70.5609 23.0001 70.5641 23.0059 70.5679 23.0133 70.5727 22.9965 70.5933 22.9911 70.5954 22.9788 70.5959 22.9727 70.5998 22.9796 70.6045 22.9885 70.6013 22.9974 70.6013 23.0158 70.5976 23.0274 70.593 23.036 70.5791 23.053 70.572 23.0592 70.5717 23.0635 70.5788 23.0746 70.5879 23.0857 70.5924 23.0948 70.6015 23.0938 70.6052 23.0936 70.6061 23.0977 70.609 23.1074 70.611 23.1138 70.6208 23.1118 70.6243 23.0912 70.622 23.0754 70.6251 23.0714 70.6285 23.0556 70.6276 23.0494 70.6295 23.0578 70.6331 23.1443 70.6328 23.1499 70.6369 23.148 70.641 23.1836 70.6594 23.1781 70.6615 23.1685 70.662 23.1405 70.6611 23.1299 70.6607 23.1286 70.6619 23.1314 70.6646 23.1403 70.6652 23.1585 70.6739 23.1578 70.6764 23.1462 70.6771 23.1359 70.6799 23.1387 70.6833 23.1512 70.6869 23.1529 70.6976 23.1598 70.6969 23.1754 70.6873 23.2068 70.6776 23.213 70.6778 23.2166 70.6837 23.2228 70.6848 23.2275 70.6786 23.235 70.6779 23.2488 70.6781 23.2696 70.683 23.2773 70.6869 23.2706 70.6908 23.2603 70.6924 23.2587 70.693 23.2392 70.7005 23.2495 70.7018 23.2681 70.6999 23.2743 70.7013 23.2779 70.7047 23.272 70.7134 23.2749 70.7172 23.2934 70.714 23.3042 70.7071 23.3389 70.7145 23.3219 70.7196 23.3287 70.7369 23.3219 70.741 23.3089 70.7434 23.3096 70.7452 23.3179 70.7456 23.3146 70.749 23.3209 70.7506 23.3255 70.7465 23.342 70.7421 23.3431 70.7409 23.3473 70.7361 23.3555 70.7336 23.3505 70.7288 23.3545 70.7265 23.3742 70.736 23.4021 70.742 23.403 70.7471 23.4093 70.7511 23.398 70.7621 23.4002 70.766 23.4065 70.7667 23.436 70.7617 23.4485 70.7628 23.4549 70.766 23.4516 70.7706 23.4387 70.7752 23.409 70.779 23.3828 70.7798 23.3773 70.7816 23.3858 70.7857 23.3933 70.7864 23.4045 70.7874 23.4095 70.792 23.4321 70.7846 23.4611 70.7833 23.4901 70.7795 23.4991 70.7813 23.5048 70.7854 23.494 70.7911 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_46.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_46.poly deleted file mode 100644 index 32b563b3bd7..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_46.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -131 22.3382 70.3379 22.3417 70.3315 22.3784 70.3206 22.3901 70.3021 22.3955 70.2987 22.4233 70.2946 22.4537 70.2944 22.4594 70.2929 22.4666 70.291 22.472 70.2853 22.516 70.278 22.5525 70.2783 22.5579 70.2746 22.5579 70.2675 22.5714 70.2652 22.6004 70.2634 22.6065 70.2659 22.622 70.265 22.6403 70.2597 22.6639 70.26 22.676 70.2577 22.705 70.2588 22.7408 70.2489 22.7599 70.2497 22.7731 70.2503 22.7961 70.2475 22.8932 70.2501 22.9161 70.2489 22.9565 70.2429 22.9788 70.2453 22.9949 70.2391 23.0154 70.2562 23.0148 70.2601 23.0036 70.2745 22.9985 70.2777 22.9836 70.2871 22.9783 70.2953 22.9669 70.2979 22.9561 70.3034 22.9474 70.3038 22.9222 70.295 22.9121 70.2971 22.9094 70.2994 22.9347 70.3137 22.9538 70.3285 22.9525 70.3321 22.9431 70.336 22.9186 70.3297 22.9165 70.3247 22.9091 70.3222 22.8935 70.322 22.8745 70.3177 22.8738 70.3204 22.8889 70.332 22.8869 70.3348 22.8747 70.3375 22.8653 70.3433 22.8484 70.3417 22.8314 70.3451 22.8225 70.3308 22.8157 70.3283 22.8103 70.3299 22.8029 70.3374 22.7887 70.3438 22.7881 70.3482 22.7766 70.3516 22.7895 70.3584 22.7909 70.3623 22.7788 70.368 22.7972 70.3796 22.7972 70.3833 22.787 70.3855 22.7809 70.3867 22.7735 70.3931 22.7579 70.395 22.7348 70.3916 22.7253 70.3886 22.7286 70.3831 22.7238 70.3692 22.7258 70.3521 22.7054 70.3425 22.7013 70.33 22.6945 70.341 22.7014 70.3549 22.6932 70.3659 22.6906 70.3695 22.6967 70.3804 22.6961 70.3891 22.6791 70.3969 22.6472 70.3958 22.6445 70.3894 22.6587 70.3652 22.6532 70.3583 22.6458 70.3581 22.6383 70.3647 22.6329 70.3841 22.6248 70.3896 22.6091 70.391 22.6022 70.3895 22.5916 70.3856 22.5874 70.3814 22.5834 70.359 22.5759 70.3563 22.5671 70.3647 22.5745 70.381 22.5743 70.3829 22.5738 70.3864 22.5684 70.3883 22.5535 70.3873 22.5399 70.3844 22.5311 70.3778 22.5386 70.3689 22.5366 70.365 22.5217 70.36 22.5142 70.359 22.5101 70.3718 22.504 70.3755 22.4904 70.3759 22.4544 70.372 22.449 70.3679 22.477 70.3435 22.4758 70.3298 22.4506 70.3433 22.4502 70.3437 22.4451 70.3497 22.4376 70.3526 22.422 70.3531 22.4064 70.3585 22.3732 70.356 22.3543 70.3509 22.3428 70.3448 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_47.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_47.poly deleted file mode 100644 index 42e84c01ad4..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_47.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -258 22.8131 70.4148 22.8111 70.4132 22.8246 70.4063 22.8409 70.4019 22.8491 70.4004 22.8849 70.3937 22.8903 70.3886 22.8833 70.3736 22.8907 70.3692 22.9373 70.3564 22.9454 70.3509 22.9671 70.3504 22.9632 70.3602 22.966 70.3652 22.9714 70.3659 22.9795 70.3611 22.9827 70.3542 22.9799 70.3465 23.0103 70.3398 23.0176 70.3413 23.0198 70.3418 23.0369 70.3522 23.0623 70.3636 23.0822 70.3777 23.1114 70.4043 23.1168 70.4043 23.1234 70.3963 23.1163 70.3837 23.0963 70.3694 23.0961 70.3598 23.0879 70.3543 23.0851 70.3523 23.0584 70.3405 23.0617 70.3362 23.0494 70.3305 23.0486 70.3271 23.0599 70.3177 23.0531 70.3125 23.0631 70.3063 23.0596 70.3006 23.0736 70.2926 23.085 70.2905 23.0937 70.285 23.1475 70.2761 23.1691 70.2752 23.2071 70.28 23.2162 70.282 23.2533 70.2899 23.2623 70.2965 23.2705 70.2988 23.2772 70.298 23.2956 70.3005 23.344 70.3133 23.3503 70.3194 23.3465 70.3254 23.3346 70.3327 23.3238 70.3346 23.2899 70.3356 23.2833 70.3386 23.2983 70.3429 23.2855 70.3457 23.2869 70.3475 23.3289 70.3448 23.3334 70.3458 23.348 70.3489 23.3725 70.3511 23.3989 70.3512 23.4222 70.3581 23.4136 70.3641 23.4199 70.367 23.443 70.3676 23.458 70.3716 23.474 70.3807 23.4667 70.3846 23.4417 70.3884 23.4278 70.3976 23.4293 70.3994 23.4636 70.3919 23.4882 70.3945 23.5079 70.394 23.5424 70.4077 23.5536 70.4143 23.568 70.4169 23.5854 70.4262 23.6255 70.4381 23.6333 70.444 23.6395 70.459 23.6288 70.4791 23.6151 70.4904 23.6186 70.4929 23.624 70.4922 23.6342 70.491 23.6405 70.4932 23.6234 70.5079 23.6079 70.5112 23.5602 70.5144 23.5494 70.5168 23.5348 70.5269 23.5358 70.5344 23.5508 70.5332 23.5496 70.5362 23.5334 70.5413 23.5466 70.5465 23.5558 70.5533 23.5524 70.5546 23.5357 70.5488 23.5368 70.557 23.5596 70.5605 23.5611 70.5617 23.5645 70.5644 23.562 70.5685 23.5669 70.571 23.5609 70.574 23.5902 70.585 23.5917 70.5875 23.5808 70.5899 23.5872 70.5939 23.5804 70.5963 23.5577 70.5955 23.5439 70.6095 23.5694 70.6253 23.5661 70.6283 23.5286 70.62 23.4928 70.6182 23.4846 70.6193 23.48 70.6223 23.4843 70.6278 23.485 70.6287 23.4797 70.6319 23.4666 70.6324 23.4328 70.6283 23.3916 70.6291 23.3502 70.625 23.3488 70.6227 23.3549 70.6202 23.3876 70.6136 23.3889 70.6116 23.384 70.6093 23.3867 70.6075 23.4039 70.6081 23.4392 70.6155 23.4488 70.6156 23.4534 70.6122 23.4477 70.607 23.4221 70.6009 23.4266 70.5924 23.431 70.584 23.4413 70.5833 23.4675 70.5863 23.475 70.5859 23.4844 70.581 23.4842 70.5762 23.4565 70.5691 23.4557 70.5666 23.4631 70.5635 23.4849 70.5598 23.5022 70.5483 23.5224 70.542 23.5112 70.5361 23.5038 70.5369 23.4792 70.5546 23.4452 70.5611 23.4438 70.5616 23.433 70.5653 23.4172 70.564 23.3931 70.5593 23.3689 70.5528 23.3674 70.5496 23.3851 70.5468 23.3929 70.5358 23.4031 70.5335 23.3899 70.529 23.3796 70.5286 23.375 70.5341 23.3623 70.5396 23.3308 70.54 23.3207 70.5437 23.3113 70.5503 23.2984 70.5533 23.247 70.5526 23.2499 70.5504 23.2737 70.5318 23.2701 70.5251 23.2742 70.5229 23.2878 70.5233 23.3099 70.5284 23.3146 70.5259 23.2855 70.516 23.2806 70.5103 23.2825 70.505 23.2755 70.4993 23.2801 70.4941 23.2696 70.4861 23.2707 70.4786 23.2638 70.4747 23.2323 70.4721 23.2269 70.4731 23.2298 70.4781 23.2353 70.4815 23.2423 70.4858 23.2459 70.494 23.2465 70.5136 23.2399 70.5214 23.2071 70.543 23.2072 70.5468 23.1888 70.5526 23.1731 70.5529 23.1518 70.5507 23.1533 70.5543 23.1492 70.5555 23.1293 70.5537 23.1141 70.5492 23.1126 70.5428 23.1289 70.538 23.1314 70.5355 23.1376 70.5293 23.1519 70.5258 23.2031 70.5243 23.2154 70.5224 23.2112 70.521 23.1558 70.5203 23.1476 70.5176 23.1563 70.513 23.145 70.4957 23.1409 70.4964 23.1337 70.5085 23.1214 70.5111 23.0936 70.521 23.0745 70.5196 23.0626 70.5164 23.0539 70.514 23.0079 70.505 22.9838 70.4955 22.9769 70.4898 22.989 70.4783 22.9842 70.4777 22.9624 70.4811 22.9522 70.478 22.9403 70.4631 22.9328 70.4613 22.9042 70.4644 22.8824 70.4603 22.8631 70.4473 22.8583 70.4403 22.863 70.4332 22.8812 70.4199 22.892 70.4172 22.9104 70.4169 22.9449 70.4065 22.9367 70.4047 22.9082 70.4041 22.8919 70.4062 22.8688 70.4056 22.8566 70.4079 22.8403 70.4166 22.8254 70.4198 22.8227 70.4186 22.8267 70.415 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_476.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_476.poly deleted file mode 100644 index 47c5d8876f1..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_476.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -341 13.4952 68.0619 13.5332 68.0704 13.5369 68.075 13.5557 68.0791 13.5623 68.0843 13.5577 68.0866 13.5334 68.0839 13.53 68.0846 13.5348 68.0881 13.5467 68.0908 13.568 68.0901 13.5813 68.0862 13.587 68.0872 13.5798 68.0915 13.5812 68.0943 13.5772 68.0966 13.5837 68.1005 13.5805 68.1054 13.5845 68.1125 13.574 68.1129 13.5638 68.1132 13.5676 68.1146 13.568 68.1197 13.5755 68.1243 13.5701 68.127 13.5607 68.1258 13.5531 68.1277 13.5546 68.1303 13.5495 68.1337 13.5589 68.1381 13.5735 68.1357 13.5817 68.1368 13.5951 68.1422 13.6124 68.1422 13.6339 68.1473 13.616 68.1394 13.6187 68.1372 13.6289 68.138 13.6376 68.1364 13.6336 68.1276 13.6487 68.1209 13.6276 68.1146 13.6301 68.1099 13.6292 68.1086 13.6238 68.1006 13.627 68.1003 13.641 68.1057 13.655 68.1032 13.6398 68.0929 13.6418 68.0909 13.6619 68.095 13.6756 68.093 13.6829 68.0934 13.6981 68.0972 13.7015 68.0852 13.708 68.0844 13.7185 68.0893 13.7256 68.0899 13.7367 68.0884 13.7451 68.0907 13.7321 68.0972 13.7345 68.1038 13.7452 68.108 13.7379 68.1109 13.7326 68.1166 13.7251 68.1173 13.7198 68.1178 13.7195 68.1233 13.7242 68.127 13.735 68.128 13.7414 68.1307 13.7422 68.1427 13.747 68.1465 13.7483 68.1541 13.7537 68.1563 13.7582 68.151 13.7675 68.1494 13.7655 68.1403 13.7729 68.1372 13.7732 68.1299 13.7792 68.1209 13.7865 68.1211 13.7934 68.124 13.8452 68.1261 13.8516 68.1289 13.8684 68.1319 13.8646 68.1351 13.8638 68.1358 13.862 68.1438 13.8576 68.1454 13.8444 68.1461 13.8431 68.1509 13.849 68.1533 13.8469 68.1589 13.8681 68.1536 13.8698 68.1555 13.865 68.1617 13.8566 68.1627 13.8311 68.1613 13.8045 68.1627 13.7938 68.1649 13.8092 68.1715 13.8436 68.174 13.8527 68.1777 13.8577 68.1872 13.8713 68.1923 13.8543 68.1947 13.8299 68.1982 13.8344 68.2009 13.8559 68.2 13.8788 68.2017 13.8841 68.2105 13.8895 68.2094 13.8932 68.2063 13.8871 68.1899 13.8942 68.1843 13.927 68.1892 13.9376 68.1955 13.9508 68.2001 13.9615 68.1998 13.9563 68.1937 13.96 68.1939 13.9782 68.2032 13.9869 68.2045 13.9947 68.2012 14.0025 68.198 14.0141 68.1967 14.0188 68.1907 14.0255 68.1895 14.0266 68.1997 14.0312 68.2006 14.0382 68.197 14.0404 68.1976 14.0436 68.204 14.0565 68.2077 14.0653 68.2206 14.0829 68.2268 14.0834 68.2353 14.0889 68.2354 14.0993 68.2292 14.0996 68.2219 14.1053 68.2182 14.1174 68.2239 14.1206 68.2271 14.1156 68.2322 14.1222 68.2362 14.1237 68.2413 14.1249 68.2455 14.1582 68.2597 14.166 68.267 14.1389 68.2813 14.1432 68.285 14.1528 68.2843 14.1612 68.2799 14.1592 68.2754 14.173 68.2685 14.1985 68.2617 14.2184 68.2634 14.2423 68.2695 14.2556 68.277 14.2677 68.2882 14.2799 68.2856 14.2862 68.2887 14.2821 68.2915 14.2733 68.2899 14.2729 68.2909 14.2673 68.3046 14.2462 68.3162 14.2321 68.3273 14.1999 68.33 14.183 68.3354 14.1668 68.3454 14.1499 68.3506 14.135 68.3519 14.1269 68.3469 14.1183 68.3481 14.1056 68.3472 14.0877 68.3481 14.0818 68.3455 14.0776 68.3368 14.091 68.3323 14.0991 68.3295 14.0886 68.3292 14.0761 68.3261 14.0596 68.3301 14.0546 68.3284 14.0582 68.3173 14.0681 68.3125 14.0687 68.3075 14.089 68.3048 14.1006 68.3073 14.1272 68.3095 14.1404 68.3125 14.1485 68.3125 14.138 68.2972 14.1422 68.2944 14.128 68.2856 14.1206 68.2854 14.0909 68.2915 14.0804 68.2915 14.0559 68.2838 14.0434 68.2838 14.0372 68.2821 14.0349 68.2783 14.0458 68.2724 14.0417 68.2701 14.03 68.2714 14.021 68.2704 14.0181 68.2684 14.0326 68.2646 14.0277 68.2627 14.0194 68.2632 13.9895 68.2764 13.9942 68.2806 14.0254 68.282 14.0073 68.3018 14.0162 68.3096 14.0169 68.3143 14.0149 68.3165 14.0062 68.326 13.9927 68.3354 13.9911 68.3462 13.9772 68.3514 13.9401 68.3521 13.9257 68.349 13.91 68.3491 13.9083 68.3472 13.9194 68.3392 13.9152 68.3339 13.9072 68.3321 13.8863 68.3345 13.88 68.333 13.8681 68.3218 13.8581 68.3187 13.863 68.3155 13.8411 68.3101 13.838 68.3094 13.8285 68.3114 13.8244 68.3105 13.833 68.3045 13.838 68.2948 13.8231 68.2931 13.8182 68.2977 13.8044 68.2898 13.7921 68.291 13.7866 68.2956 13.7756 68.2966 13.7597 68.3006 13.7444 68.2936 13.7382 68.2935 13.7346 68.2914 13.7412 68.2874 13.7286 68.2814 13.724 68.2819 13.7171 68.2884 13.7207 68.2935 13.7147 68.3024 13.6943 68.3109 13.6879 68.3136 13.6646 68.3156 13.5982 68.2943 13.5687 68.2917 13.5648 68.2874 13.5827 68.2784 13.583 68.2761 13.5779 68.2733 13.5524 68.2715 13.5353 68.2675 13.5066 68.2507 13.5363 68.2512 13.5651 68.2491 13.5802 68.2515 13.5821 68.2518 13.5925 68.2506 13.641 68.2571 13.6441 68.2554 13.6125 68.2505 13.6114 68.2486 13.6438 68.2436 13.6537 68.2453 13.6588 68.2435 13.6467 68.2394 13.5815 68.2375 13.5668 68.2355 13.5264 68.2276 13.5097 68.2195 13.5052 68.2184 13.4796 68.2125 13.4781 68.2085 13.4835 68.2058 13.4941 68.2041 13.5231 68.2048 13.5322 68.2022 13.5351 68.1996 13.5314 68.1948 13.5183 68.1902 13.4924 68.1915 13.4631 68.1855 13.4625 68.1839 13.4889 68.183 13.5084 68.1792 13.5447 68.1785 13.5465 68.1772 13.5413 68.1746 13.5284 68.1743 13.5183 68.1763 13.5082 68.1749 13.4959 68.1732 13.4884 68.1627 13.4767 68.1593 13.4813 68.154 13.493 68.1541 13.5166 68.1573 13.5359 68.1664 13.5748 68.1778 13.5751 68.1817 13.5921 68.1843 13.6023 68.1913 13.6099 68.191 13.606 68.182 13.6227 68.1758 13.6165 68.1743 13.5937 68.177 13.585 68.1748 13.5768 68.1728 13.5704 68.1685 13.5574 68.1685 13.5515 68.1631 13.5361 68.1581 13.5306 68.1532 13.5408 68.1524 13.5421 68.1508 13.5129 68.1462 13.4984 68.1422 13.4857 68.1353 13.4732 68.1138 13.4518 68.0916 13.4772 68.0807 13.4784 68.0798 13.4843 68.0751 13.4879 68.0661 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_481.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_481.poly deleted file mode 100644 index fdb99f41208..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_481.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -674 14.433 68.6345 14.4217 68.6272 14.4322 68.6261 14.436 68.621 14.4429 68.6195 14.4239 68.6126 14.4322 68.6107 14.4384 68.6115 14.4563 68.6139 14.4483 68.608 14.4649 68.6058 14.4717 68.6131 14.4783 68.6106 14.4769 68.6059 14.4866 68.6034 14.5063 68.6048 14.5184 68.6098 14.5244 68.6052 14.5356 68.6108 14.5494 68.6147 14.5579 68.6227 14.5657 68.6254 14.5993 68.627 14.5964 68.6208 14.6 68.6196 14.6073 68.6204 14.6231 68.6309 14.6358 68.6341 14.6538 68.6387 14.6538 68.6404 14.6402 68.6432 14.6402 68.6503 14.633 68.6527 14.6257 68.6519 14.6122 68.658 14.6111 68.6628 14.6247 68.6653 14.6361 68.6582 14.6457 68.6598 14.6501 68.6632 14.6544 68.6618 14.6548 68.6572 14.662 68.6582 14.6721 68.6638 14.6713 68.6695 14.6623 68.67 14.6691 68.674 14.6607 68.6762 14.6731 68.6804 14.6786 68.6936 14.6716 68.699 14.6722 68.7026 14.6745 68.7157 14.6851 68.7144 14.6887 68.7097 14.6805 68.6987 14.6867 68.6974 14.7043 68.7031 14.7078 68.7023 14.7087 68.6996 14.7 68.6939 14.6996 68.686 14.7042 68.6855 14.7222 68.6901 14.7267 68.6898 14.7302 68.6817 14.7143 68.675 14.7128 68.6719 14.7159 68.6704 14.7095 68.6669 14.726 68.6633 14.74 68.6665 14.7716 68.6638 14.778 68.6646 14.7803 68.667 14.7733 68.6724 14.7854 68.6886 14.7873 68.6977 14.7983 68.6986 14.8043 68.7015 14.8036 68.7051 14.7958 68.7094 14.8044 68.7176 14.8218 68.7128 14.8147 68.7079 14.8206 68.7038 14.8053 68.6967 14.794 68.6874 14.7973 68.6781 14.8083 68.6775 14.8101 68.6704 14.8143 68.6692 14.8221 68.6717 14.8377 68.6765 14.8473 68.6815 14.8505 68.687 14.849 68.6968 14.8522 68.6983 14.8561 68.6981 14.8656 68.6872 14.8774 68.6841 14.903 68.685 14.9163 68.6886 14.9265 68.6957 14.9335 68.705 14.9215 68.7102 14.9335 68.7197 14.952 68.7229 14.958 68.7312 14.9591 68.7336 14.948 68.7384 14.9488 68.7398 14.9499 68.7419 14.9577 68.7413 14.9724 68.7337 14.9714 68.7201 14.9572 68.719 14.9554 68.715 14.9594 68.7124 14.9703 68.714 14.9748 68.7119 14.969 68.7066 14.9824 68.7026 14.9926 68.7042 15 68.7067 15.0221 68.7143 15.0409 68.728 15.0563 68.7331 15.0524 68.737 15.0561 68.7393 15.0627 68.7384 15.0635 68.7343 15.075 68.7376 15.0807 68.7413 15.0764 68.7421 15.0624 68.7448 15.0359 68.7651 15.0273 68.7679 15.0321 68.7707 15.0546 68.7643 15.0649 68.7636 15.0752 68.7594 15.0881 68.7589 15.0902 68.7601 15.0864 68.7638 15.0941 68.7637 15.1052 68.7608 15.1172 68.7611 15.1408 68.757 15.1337 68.7498 15.1383 68.7454 15.1312 68.7327 15.1389 68.7284 15.1427 68.7228 15.1476 68.7214 15.137 68.7152 15.1393 68.7123 15.1734 68.7012 15.1714 68.6976 15.1513 68.703 15.1418 68.703 15.1329 68.7068 15.1188 68.7091 15.1218 68.7134 15.114 68.7158 15.0978 68.7169 15.089 68.7131 15.0885 68.7126 15.0801 68.7037 15.0549 68.696 15.0518 68.6866 15.0645 68.6826 15.0631 68.6811 15.0563 68.6806 15.0399 68.6824 15.0351 68.6799 15.0382 68.6779 15.0364 68.6742 15.03 68.6744 15.0217 68.6781 15.0098 68.6797 15 68.678 14.9901 68.6763 14.9664 68.6754 14.965 68.674 14.9763 68.6632 14.9697 68.6602 14.9545 68.6696 14.932 68.6688 14.9201 68.6668 14.9135 68.6657 14.8962 68.6589 14.8644 68.6524 14.8568 68.6525 14.8557 68.6538 14.8739 68.6577 14.8777 68.6595 14.872 68.6613 14.8657 68.6612 14.8522 68.6564 14.8315 68.6562 14.827 68.6528 14.8186 68.6515 14.8174 68.6475 14.7874 68.6431 14.7857 68.6354 14.7908 68.6352 14.8051 68.6395 14.8142 68.6367 14.8156 68.6292 14.8113 68.6235 14.8223 68.6173 14.8285 68.6179 14.8552 68.6204 14.8776 68.6088 14.8748 68.6077 14.8502 68.6094 14.8482 68.6081 14.8526 68.6044 14.846 68.6016 14.8448 68.5979 14.8517 68.5943 14.8472 68.5908 14.8497 68.5891 14.8765 68.5901 14.9034 68.587 14.919 68.5872 14.9387 68.5904 14.9512 68.5907 14.9735 68.5881 14.9853 68.5849 15 68.5852 15.0041 68.5853 15.0254 68.5818 15.0307 68.581 15.0457 68.583 15.0841 68.6017 15.106 68.608 15.1267 68.6101 15.1289 68.6148 15.1395 68.6171 15.1524 68.6142 15.1764 68.6198 15.2045 68.6303 15.2291 68.632 15.2393 68.6355 15.2621 68.6372 15.285 68.6462 15.2885 68.6468 15.318 68.6515 15.3509 68.6628 15.3792 68.6691 15.3919 68.6786 15.408 68.6855 15.4205 68.6959 15.4162 68.7309 15.4113 68.7362 15.3843 68.7458 15.3748 68.7492 15.3443 68.7532 15.3297 68.7514 15.312 68.755 15.2809 68.7571 15.2742 68.76 15.312 68.7686 15.316 68.7717 15.3089 68.7779 15.3139 68.7861 15.3038 68.7917 15.2703 68.8008 15.2708 68.8029 15.2973 68.8036 15.3297 68.7992 15.3359 68.7983 15.3454 68.7983 15.3561 68.8026 15.3696 68.8039 15.3823 68.8118 15.3676 68.816 15.3781 68.8305 15.3989 68.8468 15.3897 68.8574 15.3586 68.8612 15.3474 68.866 15.3401 68.8728 15.3313 68.8745 15.3303 68.8696 15.3205 68.8685 15.3148 68.8588 15.3128 68.8577 15.3062 68.8539 15.2889 68.8483 15.2875 68.8411 15.2686 68.8327 15.2587 68.8318 15.2549 68.8377 15.2646 68.8429 15.2652 68.8489 15.273 68.8522 15.2711 68.8561 15.287 68.8581 15.2919 68.8606 15.2852 68.8636 15.2928 68.8676 15.3047 68.8798 15.3076 68.8884 15.3028 68.8933 15.306 68.8989 15.2971 68.9027 15.2721 68.9012 15.2786 68.9086 15.2797 68.9167 15.2929 68.9193 15.314 68.9193 15.3128 68.9227 15.3035 68.9239 15.2811 68.922 15.2649 68.9246 15.2593 68.9223 15.2593 68.9165 15.2546 68.9154 15.2469 68.9165 15.2304 68.9226 15.2256 68.9217 15.2026 68.9258 15.2057 68.9278 15.2173 68.9294 15.2128 68.9313 15.1964 68.929 15.1881 68.9328 15.1749 68.9341 15.1771 68.9369 15.1845 68.9416 15.2127 68.9355 15.2166 68.9372 15.2125 68.944 15.2185 68.9451 15.2306 68.9433 15.2417 68.9388 15.2666 68.9332 15.2757 68.9363 15.2839 68.9369 15.2908 68.9448 15.2995 68.9474 15.3011 68.9523 15.2987 68.9547 15.2965 68.9567 15.3026 68.9614 15.2952 68.9645 15.2862 68.9607 15.2698 68.9639 15.2589 68.9618 15.2508 68.9536 15.2406 68.9534 15.229 68.9575 15.2234 68.9571 15.2192 68.9507 15.207 68.9488 15.1949 68.9487 15.1681 68.9598 15.1741 68.9628 15.1821 68.9638 15.1796 68.9692 15.1447 68.9645 15.1358 68.9567 15.1252 68.9579 15.1103 68.9566 15.1043 68.9575 15.1061 68.9588 15.1084 68.9604 15.1313 68.9646 15.1417 68.9697 15.1647 68.9718 15.1669 68.9804 15.1779 68.9802 15.1879 68.9845 15.1757 68.9865 15.184 68.9924 15.1826 68.9986 15.1888 69.0048 15.182 69.0135 15.185 69.018 15.1645 69.0217 15.1569 69.0269 15.1498 69.0273 15.141 69.0246 15.1183 69.0255 15.0959 69.0194 15.091 69.0152 15.0895 69.0139 15.069 69.0063 15.0145 69.0044 15.0087 68.9988 15.0251 68.9922 15.0093 68.9784 15.0098 68.9715 15.02 68.9586 15.0063 68.9446 15.012 68.9428 15.0303 68.9416 15.038 68.938 15.0437 68.927 15.0519 68.9243 15.089 68.9121 15.0834 68.9078 15.059 68.9177 15.0482 68.9156 15.0393 68.9116 15.0372 68.9085 15.0428 68.9053 15.0471 68.902 15.0433 68.8982 15.0371 68.8954 15.0305 68.8925 15.0453 68.8904 15.0578 68.8986 15.0693 68.9023 15.0814 68.9026 15.0795 68.8857 15.0592 68.874 15.0935 68.8668 15.1149 68.8583 15.1352 68.8548 15.1406 68.8502 15.1395 68.8308 15.149 68.825 15.1478 68.824 15.1456 68.8221 15.148 68.8185 15.1365 68.8187 15.1237 68.8267 15.118 68.8379 15.1123 68.8416 15.1128 68.8455 15.0981 68.8497 15.0784 68.8608 15.0482 68.8613 15.0405 68.8596 15.0352 68.8548 15.0398 68.843 15.0359 68.8339 15.0424 68.828 15.0395 68.8179 15.0331 68.8142 15.0338 68.8086 15.0342 68.8055 15.029 68.8039 15.0169 68.804 15.0121 68.8068 15.0177 68.8165 15.0071 68.8213 15.0181 68.8303 15.0139 68.837 15.0155 68.8415 15.0117 68.8434 15.0018 68.8443 15.0079 68.8487 15 68.8503 14.9929 68.8518 14.9887 68.8546 14.9917 68.8607 14.9852 68.8648 14.9603 68.8706 14.9439 68.8664 14.9176 68.8558 14.9013 68.8548 14.8968 68.8514 14.8973 68.8495 14.8984 68.845 14.9093 68.8356 14.9457 68.8243 14.9536 68.818 14.9634 68.8171 14.9628 68.8152 14.9345 68.8126 14.9256 68.8069 14.9236 68.8017 14.9376 68.7961 14.9406 68.7928 14.9535 68.7922 14.9751 68.787 14.9853 68.7812 14.9839 68.7798 14.9747 68.7808 14.9533 68.7874 14.9374 68.7892 14.9284 68.7877 14.9251 68.7861 14.907 68.7779 14.9163 68.7751 14.9017 68.7676 14.906 68.7643 14.9067 68.7551 14.8954 68.7457 14.8969 68.7411 14.8942 68.7398 14.8893 68.7412 14.8826 68.7478 14.8886 68.7525 14.8888 68.7645 14.8845 68.7677 14.887 68.7734 14.8844 68.7753 14.8684 68.7721 14.8666 68.7736 14.8876 68.7881 14.8872 68.7911 14.8742 68.7958 14.8654 68.7989 14.8495 68.7991 14.8358 68.7964 14.8258 68.7922 14.7991 68.7887 14.7894 68.7855 14.7688 68.7843 14.7565 68.778 14.7542 68.7701 14.7483 68.7705 14.743 68.773 14.7298 68.7636 14.7324 68.7599 14.7284 68.7585 14.7168 68.7589 14.7024 68.7532 14.6977 68.7539 14.7057 68.76 14.7027 68.7629 14.7083 68.767 14.6991 68.7714 14.681 68.7688 14.678 68.77 14.6801 68.7715 14.6876 68.7769 14.6891 68.7922 14.7049 68.8051 14.6988 68.8078 14.7059 68.8111 14.7056 68.8173 14.6975 68.8188 14.7039 68.8258 14.7006 68.8279 14.6926 68.8287 14.7035 68.8393 14.6967 68.8404 14.6849 68.8396 14.6786 68.8412 14.6714 68.8381 14.656 68.8385 14.6439 68.835 14.6263 68.8325 14.6235 68.8174 14.622 68.8157 14.6168 68.8093 14.6261 68.8031 14.6238 68.797 14.6303 68.7931 14.6496 68.7906 14.6525 68.7879 14.6517 68.7867 14.6235 68.7873 14.6166 68.7835 14.6177 68.7716 14.6139 68.7698 14.6012 68.7696 14.6033 68.7587 14.5978 68.7527 14.6134 68.7446 14.631 68.745 14.6373 68.7469 14.644 68.7442 14.6356 68.7395 14.6122 68.7335 14.6059 68.7319 14.6066 68.7388 14.5928 68.7437 14.5896 68.7491 14.5793 68.7476 14.5811 68.762 14.5914 68.7669 14.5909 68.7701 14.5801 68.7737 14.5846 68.7788 14.584 68.7891 14.5912 68.7993 14.5861 68.8046 14.5713 68.8102 14.5725 68.8139 14.5656 68.8173 14.5666 68.8196 14.5456 68.8248 14.5323 68.8152 14.5434 68.8116 14.4972 68.7901 14.4796 68.7895 14.4649 68.7846 14.4517 68.7874 14.4465 68.786 14.4526 68.7817 14.4469 68.7745 14.4538 68.7714 14.4502 68.7673 14.4571 68.7642 14.4694 68.7636 14.4612 68.76 14.4622 68.7573 14.4798 68.7524 14.5035 68.7535 14.5176 68.7514 14.5291 68.7444 14.5398 68.7428 14.5412 68.7431 14.5541 68.7455 14.5769 68.7455 14.5839 68.7419 14.5821 68.74 14.5607 68.7412 14.5369 68.7334 14.5243 68.7312 14.5191 68.737 14.5096 68.7368 14.5066 68.7398 14.498 68.7392 14.4883 68.7362 14.4783 68.7373 14.4497 68.7288 14.4422 68.725 14.43 68.7256 14.4186 68.7204 14.4207 68.7148 14.4173 68.7118 14.4246 68.7092 14.4362 68.7121 14.4392 68.7074 14.4515 68.7053 14.4608 68.7038 14.4577 68.7018 14.4514 68.7001 14.43 68.703 14.4156 68.7028 14.4072 68.7049 14.3961 68.7039 14.3638 68.692 14.3621 68.6896 14.3705 68.6891 14.3802 68.6905 14.3855 68.6879 14.3981 68.6881 14.4163 68.6834 14.4136 68.6805 14.3943 68.6814 14.3898 68.6799 14.3886 68.6676 14.394 68.6667 14.4058 68.6691 14.4185 68.6672 14.4254 68.6689 14.4387 68.6815 14.4433 68.6859 14.457 68.6916 14.4675 68.6924 14.4722 68.6898 14.466 68.6844 14.4537 68.6799 14.4574 68.6716 14.4546 68.6687 14.4389 68.6649 14.4331 68.6619 14.4219 68.6614 14.4212 68.6597 14.4305 68.6569 14.419 68.6502 14.4237 68.6444 14.4226 68.6404 14.4316 68.6383 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_630.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_630.poly deleted file mode 100644 index 1acc62d8455..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_630.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -136 5.29758 59.9726 5.28316 59.9662 5.28364 59.9635 5.29866 59.9639 5.3019 59.9611 5.2979 59.956 5.29978 59.9552 5.31224 59.9595 5.32665 59.9424 5.31948 59.9417 5.32008 59.9383 5.32529 59.9346 5.32042 59.9337 5.312 59.9374 5.31228 59.9358 5.31424 59.9247 5.30092 59.9225 5.29083 59.9227 5.28487 59.9255 5.28046 59.9246 5.28086 59.9223 5.28538 59.92 5.28433 59.9156 5.27366 59.9036 5.27009 59.8876 5.27903 59.8887 5.28398 59.8917 5.28684 59.8961 5.28373 59.9008 5.28664 59.9076 5.29404 59.9045 5.30146 59.9064 5.30361 59.9097 5.30699 59.9087 5.31321 59.9019 5.32244 59.9039 5.32595 59.8996 5.32767 59.8975 5.3289 59.8904 5.33823 59.8814 5.33712 59.8747 5.33132 59.874 5.32931 59.8751 5.32962 59.8785 5.32433 59.8826 5.29373 59.901 5.29183 59.8989 5.29667 59.8928 5.29512 59.8905 5.28857 59.8889 5.28142 59.8803 5.28619 59.8713 5.29396 59.8634 5.29504 59.8573 5.30014 59.8568 5.30541 59.8501 5.30307 59.8427 5.31019 59.8384 5.30645 59.8364 5.31566 59.8228 5.32267 59.8217 5.33368 59.816 5.34078 59.8276 5.34457 59.8424 5.3474 59.8419 5.35019 59.8362 5.34642 59.8239 5.34669 59.8145 5.35719 59.8012 5.35523 59.7968 5.34707 59.7966 5.33752 59.8123 5.32834 59.8075 5.32682 59.8006 5.32274 59.7979 5.33003 59.7874 5.33564 59.7865 5.33996 59.7825 5.34444 59.783 5.35116 59.7888 5.35842 59.7889 5.35768 59.7826 5.36173 59.7803 5.3731 59.7771 5.38007 59.782 5.3837 59.7794 5.37794 59.7707 5.38137 59.7692 5.38863 59.7693 5.39328 59.766 5.40614 59.7652 5.4089 59.7624 5.39698 59.763 5.39659 59.7547 5.44871 59.7501 5.46833 59.7576 5.47207 59.7623 5.4854 59.7668 5.49679 59.7666 5.49606 59.7709 5.5104 59.7775 5.50941 59.7785 5.50655 59.7815 5.5004 59.7856 5.50084 59.7883 5.50888 59.7919 5.5146 59.7931 5.52157 59.7895 5.53447 59.7912 5.53145 59.7956 5.53211 59.7998 5.52683 59.8041 5.52938 59.8079 5.52496 59.8126 5.52546 59.8204 5.52118 59.8269 5.52591 59.8339 5.52685 59.8445 5.51985 59.8861 5.51966 59.8872 5.50047 59.9116 5.49271 59.917 5.47795 59.9233 5.46152 59.9366 5.43265 59.9477 5.41233 59.9517 5.40037 59.9521 5.38913 59.9642 5.3695 59.9693 5.36057 59.9742 5.35433 59.9776 5.34976 59.9777 5.34421 59.9754 5.3256 59.9745 5.31914 59.9853 5.30873 59.9821 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_638.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_638.poly deleted file mode 100644 index 4aeb17b593d..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_638.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -164 5.50459 60.0596 5.48284 60.0555 5.46482 60.0402 5.46147 60.0277 5.47276 60.0206 5.46803 60.0188 5.47051 60.015 5.47435 60.014 5.48169 60 5.48317 59.9972 5.48004 59.9941 5.46267 59.994 5.45487 60 5.45029 60.0035 5.44729 60 5.44019 59.9917 5.43508 59.9913 5.43342 59.9911 5.42766 59.998 5.42998 60 5.43444 60.0038 5.42391 60.0038 5.41887 60 5.4146 59.9968 5.40651 59.996 5.40773 60 5.40884 60.0036 5.40723 60.0061 5.4001 60.0071 5.39047 60.004 5.39145 60 5.39355 59.9915 5.39012 59.9902 5.37811 59.9961 5.37228 59.9954 5.36881 59.989 5.3711 59.9864 5.39706 59.9765 5.40665 59.9739 5.41449 59.9736 5.43446 59.9676 5.43666 59.9669 5.46521 59.9471 5.47682 59.9459 5.48102 59.9535 5.4885 59.9552 5.49084 59.9576 5.48704 59.9611 5.47468 59.9665 5.47668 59.9682 5.4863 59.9654 5.48887 59.9664 5.49116 59.9798 5.49676 59.9792 5.49963 59.9703 5.49542 59.9656 5.50112 59.9589 5.49811 59.9551 5.50129 59.9525 5.50006 59.949 5.50461 59.9464 5.5116 59.9456 5.5138 59.9434 5.51597 59.9414 5.51413 59.936 5.51028 59.9345 5.50939 59.9317 5.53051 59.9067 5.53037 59.9021 5.54058 59.8956 5.55403 59.8943 5.55886 59.8955 5.56714 59.9032 5.56834 59.9096 5.57822 59.916 5.59112 59.9317 5.60635 59.9362 5.60877 59.9244 5.61085 59.9226 5.61675 59.9176 5.62026 59.9102 5.6319 59.9116 5.6404 59.9237 5.64516 59.9225 5.64738 59.92 5.63862 59.9123 5.63545 59.9039 5.63858 59.9016 5.64692 59.9063 5.65799 59.9056 5.66883 59.909 5.67079 59.9109 5.6603 59.9192 5.66375 59.9288 5.65858 59.9352 5.65541 59.9351 5.65328 59.9258 5.65026 59.9248 5.64395 59.9325 5.63299 59.9325 5.62872 59.9363 5.63197 59.9414 5.63023 59.9437 5.61602 59.9412 5.61504 59.9444 5.62554 59.9526 5.63254 59.9601 5.63848 59.9738 5.65237 59.9783 5.65658 59.9833 5.66967 59.9843 5.67566 59.9868 5.68202 59.9926 5.69415 59.9968 5.69879 60 5.70425 60.0038 5.69869 60.0165 5.70921 60.0277 5.70908 60.0369 5.70428 60.0438 5.70186 60.0474 5.70443 60.0569 5.69696 60.0772 5.69327 60.0773 5.68512 60.0822 5.67666 60.0835 5.67085 60.0826 5.66515 60.0755 5.66765 60.0714 5.66529 60.069 5.65892 60.0715 5.65998 60.0734 5.65331 60.0777 5.63923 60.0742 5.63095 60.0688 5.63733 60.0663 5.63304 60.0645 5.63311 60.0613 5.62591 60.0578 5.61309 60.0605 5.60796 60.0637 5.59228 60.0589 5.58703 60.0573 5.58529 60.054 5.57384 60.0513 5.5819 60.0605 5.5987 60.0642 5.60363 60.0676 5.60226 60.0703 5.57476 60.0676 5.56162 60.0693 5.55358 60.0681 5.54002 60.0615 5.53858 60.0592 5.54375 60.0557 5.54986 60.0548 5.5629 60.0563 5.5664 60.0546 5.55176 60.0517 5.54536 60.0489 5.53439 60.0514 5.52648 60.0467 5.51734 60.0542 5.51157 60.059 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_643.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_643.poly deleted file mode 100644 index ee768310262..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_643.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -64 5.65167 59.8222 5.62451 59.8186 5.62214 59.8164 5.62161 59.8113 5.6395 59.7995 5.6647 59.7954 5.66403 59.7913 5.6574 59.7874 5.65992 59.7858 5.67493 59.7858 5.68141 59.7879 5.69254 59.7865 5.70346 59.792 5.70717 59.7972 5.71142 59.7962 5.71547 59.7909 5.72437 59.7864 5.72451 59.7828 5.72819 59.7797 5.74111 59.7841 5.74445 59.7831 5.74039 59.7717 5.73033 59.7665 5.73123 59.7638 5.74144 59.7596 5.7306 59.7424 5.73276 59.7364 5.73473 59.7309 5.73759 59.7301 5.74027 59.7247 5.77098 59.7312 5.77342 59.7386 5.79017 59.7616 5.79479 59.7611 5.80525 59.7553 5.82135 59.7569 5.83212 59.7548 5.83656 59.7554 5.83439 59.7691 5.82507 59.7763 5.80932 59.7839 5.80507 59.7875 5.79987 59.7918 5.78453 59.7939 5.76489 59.7945 5.75805 59.7974 5.73852 59.7973 5.73146 59.8044 5.73341 59.812 5.72691 59.8184 5.71915 59.8186 5.71238 59.8211 5.6946 59.8185 5.69309 59.8166 5.70234 59.8128 5.70519 59.8038 5.68948 59.7969 5.68278 59.7962 5.67432 59.8089 5.66774 59.8103 5.65237 59.8041 5.64526 59.8059 5.65031 59.8112 5.6531 59.8191 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_650.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_650.poly deleted file mode 100644 index 7e527837f43..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_650.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -256 5.38505 59.7083 5.38725 59.7114 5.3847 59.7156 5.3815 59.7157 5.37718 59.7118 5.36091 59.7141 5.35748 59.7103 5.35467 59.7109 5.34485 59.7256 5.34322 59.7315 5.33993 59.7435 5.33325 59.7506 5.33446 59.7541 5.34091 59.7562 5.33802 59.7597 5.33237 59.7609 5.32847 59.7676 5.32013 59.7711 5.31086 59.7696 5.31454 59.7823 5.30925 59.7917 5.2878 59.8103 5.27871 59.8154 5.27559 59.8151 5.27152 59.8045 5.26856 59.8033 5.26169 59.8087 5.2636 59.8107 5.27088 59.8185 5.26388 59.8246 5.25423 59.8251 5.25964 59.8307 5.24568 59.8323 5.24047 59.836 5.24146 59.8381 5.25133 59.839 5.2555 59.8463 5.25272 59.8492 5.24495 59.8493 5.24303 59.8524 5.22924 59.8513 5.22507 59.8509 5.22362 59.8463 5.21478 59.8447 5.20847 59.8545 5.18766 59.8741 5.18224 59.8763 5.17179 59.8761 5.1646 59.8781 5.15929 59.8771 5.1514 59.8805 5.15213 59.8663 5.17155 59.8469 5.19562 59.8397 5.20329 59.835 5.20126 59.8304 5.19909 59.8254 5.19112 59.8267 5.18541 59.8255 5.1846 59.8301 5.17848 59.8337 5.16439 59.8386 5.15643 59.8373 5.15847 59.8309 5.17589 59.819 5.17502 59.8172 5.17062 59.8174 5.17166 59.8136 5.16894 59.8133 5.14919 59.8319 5.14447 59.8328 5.14184 59.8222 5.15156 59.8136 5.14877 59.8114 5.12205 59.8083 5.12024 59.8081 5.12181 59.802 5.10048 59.7865 5.10438 59.7851 5.11726 59.7893 5.11907 59.7869 5.10344 59.7802 5.10078 59.7723 5.1037 59.7713 5.11218 59.7746 5.11199 59.7606 5.11572 59.7601 5.12026 59.7626 5.12219 59.762 5.12063 59.758 5.12318 59.754 5.13707 59.7576 5.13375 59.7609 5.13461 59.7637 5.14035 59.7647 5.14843 59.7793 5.14962 59.7814 5.15532 59.7851 5.15856 59.7797 5.1506 59.7684 5.15252 59.7652 5.15564 59.7656 5.16454 59.7717 5.16774 59.7717 5.17048 59.7665 5.16592 59.7589 5.16887 59.7526 5.17953 59.7591 5.18551 59.7587 5.18928 59.7692 5.19238 59.7714 5.19916 59.7691 5.1953 59.7548 5.20945 59.7621 5.22204 59.7628 5.23573 59.7606 5.23654 59.7605 5.23431 59.7551 5.22485 59.7547 5.21791 59.7503 5.21695 59.7454 5.22468 59.7402 5.2207 59.7371 5.20596 59.7408 5.19987 59.7444 5.19679 59.7438 5.1956 59.7403 5.1906 59.7378 5.18028 59.7371 5.17392 59.7269 5.16683 59.7234 5.16539 59.7187 5.16199 59.7174 5.15953 59.7084 5.16955 59.7056 5.17037 59.7036 5.15748 59.6995 5.15453 59.6856 5.14944 59.6803 5.14765 59.6784 5.15222 59.6655 5.14511 59.6572 5.1661 59.6386 5.16682 59.6295 5.1765 59.6311 5.17706 59.6279 5.1633 59.6213 5.16265 59.6173 5.1697 59.6158 5.1724 59.6134 5.17828 59.616 5.1799 59.6119 5.16447 59.597 5.16801 59.5948 5.18058 59.5997 5.18628 59.6001 5.18723 59.598 5.18497 59.5971 5.17723 59.5939 5.18828 59.5928 5.18342 59.5896 5.17677 59.5888 5.17652 59.5826 5.18014 59.5775 5.18654 59.5771 5.19494 59.5781 5.20987 59.5832 5.21632 59.5876 5.22165 59.5984 5.23052 59.6046 5.23284 59.6017 5.23148 59.5991 5.23511 59.599 5.24435 59.6056 5.24306 59.6104 5.24576 59.613 5.24051 59.6146 5.21996 59.608 5.21245 59.607 5.21258 59.6088 5.22259 59.6136 5.22295 59.6166 5.22351 59.6212 5.23524 59.6266 5.23974 59.6318 5.2367 59.6388 5.22276 59.6485 5.22347 59.6548 5.22953 59.6589 5.24409 59.6612 5.24692 59.6657 5.24472 59.6679 5.226 59.6661 5.22239 59.6609 5.21405 59.6594 5.20308 59.6522 5.19802 59.6527 5.20764 59.6648 5.21963 59.6688 5.22778 59.674 5.22875 59.6776 5.22914 59.6791 5.23409 59.6819 5.23565 59.6962 5.24407 59.7076 5.2389 59.7163 5.23905 59.7232 5.23509 59.7276 5.23653 59.7426 5.24072 59.7471 5.25068 59.7474 5.25617 59.7497 5.27106 59.7322 5.27482 59.7314 5.28295 59.7343 5.28833 59.7295 5.2973 59.7301 5.30712 59.7285 5.31005 59.7312 5.31103 59.7321 5.30555 59.7349 5.29589 59.7356 5.29287 59.7373 5.30632 59.7487 5.30938 59.7468 5.30802 59.7442 5.32468 59.7346 5.31896 59.7309 5.31792 59.7265 5.3283 59.7164 5.33047 59.7091 5.32084 59.7071 5.32931 59.7001 5.33524 59.6999 5.3355 59.6958 5.32649 59.6929 5.31913 59.6935 5.31804 59.6893 5.3256 59.6875 5.32542 59.6859 5.3212 59.6841 5.31382 59.6875 5.30895 59.6868 5.30692 59.6825 5.30663 59.6819 5.29279 59.6781 5.29654 59.6748 5.30022 59.6745 5.3069 59.6778 5.31376 59.6774 5.35 59.6854 5.35281 59.6901 5.3638 59.6947 5.36515 59.7001 5.37956 59.7007 5.38646 59.7054 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_656.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_656.poly deleted file mode 100644 index 6cf24cd5b7e..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_656.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -137 5.23354 59.4127 5.22984 59.4082 5.23165 59.4055 5.22917 59.4017 5.21939 59.3985 5.21645 59.3897 5.22183 59.3846 5.22048 59.3795 5.22532 59.3724 5.23829 59.3727 5.24132 59.3708 5.2356 59.3676 5.22934 59.3597 5.21517 59.3637 5.21035 59.363 5.20816 59.3601 5.21525 59.3478 5.20793 59.3486 5.1894 59.3545 5.18478 59.3526 5.19505 59.3478 5.19573 59.344 5.18865 59.3434 5.1875 59.3371 5.19741 59.3319 5.19647 59.3245 5.20196 59.3187 5.20802 59.3174 5.21328 59.3181 5.2191 59.3156 5.22127 59.3109 5.21177 59.3114 5.21132 59.3088 5.2234 59.3039 5.22229 59.2999 5.21761 59.3011 5.21482 59.2995 5.20866 59.2959 5.20646 59.2854 5.20003 59.2838 5.19401 59.2849 5.19114 59.2859 5.18575 59.2758 5.19362 59.2692 5.1861 59.2661 5.17907 59.2653 5.17656 59.2593 5.18038 59.2502 5.19254 59.2524 5.1971 59.2494 5.19156 59.2452 5.18465 59.2438 5.1809 59.2397 5.18533 59.2349 5.18306 59.2325 5.17625 59.2331 5.16947 59.2309 5.16724 59.2283 5.17514 59.219 5.16973 59.2116 5.16875 59.2045 5.17 59.2024 5.17129 59.2002 5.17729 59.1991 5.17237 59.1915 5.1747 59.1859 5.17275 59.1792 5.17803 59.1746 5.18745 59.1769 5.19092 59.1749 5.18881 59.1666 5.19593 59.1616 5.18878 59.1514 5.19131 59.1472 5.20061 59.1451 5.20849 59.1459 5.22179 59.1516 5.22625 59.149 5.23526 59.1485 5.24353 59.142 5.25937 59.1459 5.26737 59.1461 5.27094 59.1435 5.27437 59.1443 5.2741 59.1484 5.28835 59.1486 5.29293 59.1454 5.29411 59.1411 5.29706 59.1421 5.29966 59.1477 5.29895 59.1596 5.3153 59.1684 5.31562 59.171 5.31884 59.1973 5.32442 59.2065 5.32876 59.2333 5.333 59.2399 5.32904 59.2604 5.33225 59.2704 5.32789 59.2776 5.3123 59.2874 5.31564 59.2915 5.31508 59.2919 5.31202 59.2943 5.30207 59.2948 5.29905 59.2967 5.3072 59.3015 5.30459 59.3036 5.29836 59.3034 5.29348 59.3057 5.29414 59.3096 5.29896 59.3103 5.30886 59.31 5.31734 59.3076 5.32188 59.3099 5.32372 59.3201 5.32077 59.3216 5.31441 59.3195 5.30847 59.3201 5.29687 59.3302 5.28402 59.3344 5.2798 59.3406 5.28896 59.3447 5.29744 59.3554 5.29328 59.3587 5.28644 59.3593 5.28515 59.3615 5.28732 59.3671 5.2889 59.3683 5.2933 59.3716 5.28941 59.381 5.28201 59.3848 5.27952 59.3888 5.26234 59.4023 5.25477 59.4045 5.24931 59.41 5.24258 59.4124 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_698.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_698.poly deleted file mode 100644 index 13b415caa93..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_698.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -188 4.98675 60.2377 4.98205 60.2308 4.99168 60.2237 4.99816 60.2235 5 60.2222 5.00317 60.2189 5.00219 60.2143 5.01175 60.2149 5.01787 60.2216 5.02286 60.2221 5.0223 60.2152 5.03067 60.2098 5.04107 60.2059 5.04788 60.2065 5.05235 60.2097 5.05711 60.2188 5.05792 60.2269 5.05245 60.2391 5.05876 60.2423 5.05652 60.2569 5.0544 60.2584 5.04853 60.2577 5.04239 60.2535 5.03036 60.2537 5.01823 60.2615 5.01777 60.2618 5.00641 60.2733 5.00814 60.2763 5.01614 60.2755 5.0254 60.2705 5.0316 60.2719 5.03295 60.2795 5.03953 60.2764 5.04225 60.2717 5.04126 60.2696 5.03477 60.2697 5.02841 60.2667 5.0365 60.2604 5.04215 60.2623 5.0469 60.2616 5.04955 60.2647 5.05609 60.2659 5.06193 60.2715 5.06479 60.2683 5.06175 60.2611 5.06547 60.256 5.06508 60.2431 5.06152 60.2349 5.06401 60.231 5.08548 60.1974 5.10128 60.179 5.11112 60.1806 5.11527 60.1831 5.11228 60.1869 5.11668 60.188 5.13042 60.1833 5.1364 60.1834 5.15616 60.1886 5.16343 60.1892 5.16145 60.2026 5.16294 60.2045 5.17295 60.2027 5.17291 60.2054 5.16365 60.2082 5.16337 60.2088 5.16096 60.213 5.16137 60.2157 5.16678 60.219 5.16662 60.2224 5.15216 60.2309 5.1527 60.2355 5.12267 60.2661 5.11593 60.2677 5.11052 60.267 5.10145 60.2709 5.09936 60.2689 5.10288 60.2656 5.10161 60.2634 5.08795 60.2793 5.07761 60.2852 5.07948 60.2876 5.08956 60.2855 5.09364 60.2885 5.09648 60.2851 5.09776 60.2836 5.09677 60.279 5.10044 60.2766 5.11501 60.2727 5.1193 60.277 5.13149 60.2759 5.13541 60.2773 5.14153 60.2918 5.13653 60.2989 5.14108 60.317 5.13578 60.3257 5.11889 60.3422 5.0857 60.3591 5.0825 60.3617 5.0791 60.3645 5.06112 60.3793 5.0616 60.3867 5.0547 60.3914 5.05119 60.3904 5.04949 60.3845 5.04153 60.38 5.0381 60.381 5.04384 60.39 5.0434 60.3974 5.0505 60.3991 5.03682 60.4053 5.01728 60.4106 5.01003 60.4147 5.00318 60.4141 5.00325 60.4187 5.0112 60.4283 5.01834 60.4297 5.01611 60.4342 5.00728 60.4368 5.00616 60.4378 5.00223 60.4414 5 60.4415 4.9952 60.4418 4.98816 60.4546 4.98122 60.4519 4.98083 60.4466 4.97627 60.4462 4.97576 60.4391 4.96434 60.4307 4.96191 60.424 4.97395 60.4068 4.97353 60.3992 4.97828 60.3937 4.99103 60.3924 4.99338 60.3898 4.99056 60.3851 4.97684 60.389 4.96587 60.3858 4.97415 60.3781 4.98215 60.3707 4.98417 60.3673 4.98148 60.3602 4.98046 60.3575 4.98589 60.3458 4.99326 60.3411 4.99742 60.3312 5 60.3296 5.00838 60.3246 5.01361 60.3188 5.01171 60.3142 5.01989 60.3099 5.02458 60.3046 5.037 60.3024 5.04195 60.3057 5.04946 60.3 5.06027 60.3115 5.0669 60.3107 5.06803 60.3071 5.05506 60.2922 5.06442 60.2791 5.05564 60.2792 5.04827 60.294 5.01519 60.2955 5.00694 60.2878 5 60.2875 4.99269 60.2873 4.97947 60.2913 4.97345 60.3003 4.97305 60.3009 4.95626 60.3017 4.95035 60.3012 4.94936 60.2991 4.96229 60.2967 4.96363 60.2945 4.95706 60.2926 4.95438 60.2872 4.9472 60.2836 4.95375 60.2807 4.95635 60.2767 4.95175 60.2742 4.95781 60.269 4.9568 60.2645 4.96452 60.2603 4.95908 60.2573 4.97313 60.2513 4.98702 60.2535 4.99027 60.2509 4.98851 60.2456 4.98269 60.2446 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_7.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_7.poly deleted file mode 100644 index e21f25bf09d..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_7.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -3 6.8043 58.0627 6.81874 58.0646 6.82196 58.0665 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_70.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_70.poly deleted file mode 100644 index 704c6044a9c..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_70.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -142 19.9084 70.189 19.9097 70.1947 19.9047 70.1969 19.8759 70.2006 19.8557 70.2008 19.8396 70.2051 19.8313 70.2106 19.8285 70.2125 19.8233 70.2113 19.8198 70.2073 19.8227 70.201 19.8163 70.1931 19.8167 70.1801 19.8129 70.1787 19.8021 70.1835 19.7977 70.181 19.8017 70.1767 19.7911 70.1703 19.7903 70.166 19.7944 70.1608 19.7859 70.1588 19.7664 70.1592 19.75 70.1661 19.7428 70.1744 19.7426 70.2038 19.7426 70.205 19.7336 70.2163 19.7148 70.2258 19.7189 70.2302 19.7097 70.2331 19.6746 70.2378 19.6772 70.2291 19.6724 70.2252 19.6635 70.2259 19.6538 70.2422 19.6604 70.2481 19.6609 70.2583 19.651 70.2662 19.6523 70.2717 19.6382 70.2804 19.6402 70.2852 19.6363 70.2859 19.6235 70.2881 19.611 70.2861 19.5933 70.2867 19.5849 70.2841 19.5718 70.2766 19.5709 70.2688 19.5556 70.2621 19.5541 70.2589 19.5696 70.2546 19.5694 70.2512 19.5862 70.2471 19.5881 70.2437 19.5855 70.2425 19.5726 70.2432 19.5249 70.2555 19.5045 70.2378 19.5068 70.2314 19.5142 70.2263 19.5226 70.2205 19.5457 70.2147 19.5829 70.2098 19.5962 70.2064 19.6079 70.1995 19.614 70.1902 19.6547 70.1737 19.6631 70.162 19.6593 70.1553 19.6486 70.1549 19.6478 70.1514 19.6622 70.1444 19.6672 70.1376 19.6833 70.133 19.6901 70.1323 19.6949 70.1318 19.6982 70.1276 19.6963 70.1218 19.7071 70.1163 19.7102 70.1038 19.7004 70.102 19.6842 70.1027 19.6792 70.1001 19.6879 70.0952 19.7017 70.0924 19.7077 70.0877 19.7011 70.0723 19.7079 70.0669 19.7352 70.0587 19.7522 70.0566 19.7816 70.0564 19.7966 70.0546 19.8264 70.0543 19.8529 70.0541 19.8848 70.05 19.9113 70.0524 19.9408 70.0522 19.9646 70.0539 20 70.0676 19.9833 70.0701 19.981 70.0726 20 70.0806 20.0103 70.0849 20.0567 70.0887 20.1002 70.0974 20.1156 70.1005 20.1181 70.1019 20.1143 70.106 20.1038 70.1093 20.0885 70.1081 20.0763 70.1094 20.073 70.1143 20.0528 70.1205 20.0296 70.1188 20.0225 70.1214 20.0122 70.1181 20 70.1223 19.9869 70.1268 19.9667 70.1279 19.9691 70.1298 19.9945 70.1311 19.9852 70.1353 19.9957 70.1372 19.9871 70.1417 19.993 70.1482 19.9848 70.1544 19.9745 70.1564 19.9582 70.152 19.9632 70.1474 19.9697 70.1414 19.9642 70.137 19.9521 70.1369 19.9445 70.1386 19.9337 70.1446 19.9133 70.1509 19.9142 70.1596 19.905 70.1636 19.8893 70.1652 19.8893 70.1752 19.8952 70.1769 19.9147 70.1772 19.9201 70.1819 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_73.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_73.poly deleted file mode 100644 index 2753cd305f6..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_73.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -180 19.3635 69.8348 19.3849 69.8549 19.4172 69.8694 19.428 69.8863 19.4441 69.8941 19.472 69.9026 19.4852 69.9124 19.4923 69.9274 19.4792 69.9439 19.4808 69.9469 19.4855 69.9506 19.5207 69.9517 19.5459 69.9557 19.5636 69.9586 19.6114 69.96 19.6372 69.9707 19.6631 69.976 19.6809 69.9776 19.6708 69.9829 19.6785 69.9947 19.6729 70 19.6708 70.0019 19.6349 70.0109 19.6216 70.0194 19.5916 70.0194 19.571 70.0114 19.5694 70.0108 19.5634 70.0061 19.5628 70 19.5624 69.9951 19.5351 69.985 19.5328 69.9873 19.5429 69.9955 19.5423 70 19.5419 70.003 19.5291 70.0263 19.5401 70.0331 19.5469 70.0419 19.5229 70.05 19.5082 70.0504 19.4903 70.0533 19.4746 70.0512 19.4563 70.053 19.4452 70.0461 19.4382 70.0442 19.4176 70.0432 19.413 70.0383 19.404 70.0361 19.4029 70.0296 19.3913 70.0185 19.3884 70.0111 19.3906 70.0013 19.3923 70 19.4011 69.9935 19.3976 69.99 19.3795 69.9908 19.3757 69.9892 19.3617 69.9894 19.3449 69.9985 19.3432 70 19.3341 70.0081 19.3183 70.0151 19.299 70.0189 19.3057 70.0234 19.3043 70.0274 19.294 70.0337 19.2754 70.0374 19.273 70.0399 19.2843 70.044 19.2864 70.0477 19.2792 70.0551 19.288 70.0671 19.3065 70.0773 19.3013 70.0809 19.3073 70.0853 19.303 70.0869 19.2791 70.0812 19.2456 70.0771 19.2182 70.0645 19.2035 70.0642 19.2039 70.0681 19.204 70.069 19.2109 70.0763 19.2254 70.0818 19.2233 70.0909 19.1957 70.0913 19.1721 70.0879 19.1483 70.0778 19.1424 70.0784 19.1456 70.0821 19.1425 70.0846 19.1223 70.0849 19.1023 70.0804 19.0867 70.0737 19.0711 70.0631 19.0568 70.0601 19.0452 70.0772 19.0412 70.0774 19.0299 70.0726 19.0302 70.0552 19.0458 70.0464 19.0826 70.0343 19.0849 70.0319 19.0907 70.0255 19.0884 70.0237 19.0613 70.0218 19.0562 70.0123 19.0454 70.0132 19.0339 70.0336 19.0175 70.0355 19.0041 70.0435 18.9935 70.0431 18.9832 70.0404 18.9561 70.0195 18.9496 70.0182 18.9389 70.0184 18.9406 70.0237 18.9484 70.025 18.9507 70.0271 18.9414 70.0308 18.9254 70.0309 18.8972 70.0311 18.8448 70.0286 18.8314 70.0249 18.8426 70.0224 18.8499 70.0187 18.8418 70.0153 18.8182 70.0128 18.8084 70.0082 18.8071 70 18.8069 69.9981 18.8187 69.9808 18.8392 69.9743 18.8493 69.9663 18.8696 69.9681 18.9013 69.9665 18.8984 69.9639 18.8859 69.9627 18.8715 69.9574 18.8649 69.9534 18.8588 69.9425 18.8515 69.9389 18.813 69.953 18.7575 69.9614 18.7434 69.9618 18.7279 69.9553 18.7136 69.9408 18.7111 69.9382 18.7125 69.9344 18.7063 69.9315 18.705 69.9278 18.7115 69.9216 18.783 69.9016 18.8259 69.8956 18.871 69.8849 18.8811 69.8807 18.8848 69.8749 18.8928 69.8709 18.91 69.8708 18.9291 69.868 18.9224 69.8644 18.9238 69.8594 18.9242 69.8578 18.9314 69.8546 18.9705 69.8471 18.9983 69.8399 19.01 69.8335 19.0173 69.8254 19.0418 69.8135 19.063 69.7975 19.0758 69.7922 19.1102 69.7881 19.1359 69.7886 19.1538 69.7921 19.1788 69.7933 19.2001 69.7964 19.2505 69.7997 19.2624 69.8038 19.294 69.8092 19.3554 69.8272 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_85.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_85.poly deleted file mode 100644 index 5f2bf7048fd..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_85.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -278 18.6812 69.8733 18.6715 69.872 18.6549 69.8611 18.6533 69.8558 18.6484 69.8534 18.659 69.85 18.6651 69.8423 18.6875 69.8355 18.6806 69.8337 18.6681 69.8332 18.6646 69.8304 18.6685 69.8287 18.6863 69.8206 18.7145 69.8116 18.7317 69.8081 18.7303 69.8007 18.7339 69.7992 18.7787 69.8004 18.7798 69.7981 18.7729 69.7925 18.7798 69.7871 18.7771 69.7839 18.7651 69.7843 18.7533 69.7875 18.7363 69.7862 18.732 69.7845 18.733 69.7827 18.7566 69.7798 18.7616 69.7778 18.7344 69.7747 18.7198 69.7678 18.7188 69.7643 18.7178 69.7611 18.7241 69.7555 18.7097 69.7365 18.7096 69.7156 18.689 69.7054 18.6875 69.6996 18.6993 69.6928 18.7109 69.6903 18.7484 69.6906 18.752 69.6887 18.7459 69.6862 18.7354 69.6858 18.7293 69.6831 18.6951 69.6865 18.6756 69.6862 18.6682 69.6861 18.6546 69.6888 18.6511 69.6933 18.6569 69.712 18.6559 69.7204 18.6456 69.73 18.6487 69.7381 18.6427 69.7455 18.6156 69.7564 18.6275 69.7596 18.6408 69.7592 18.6473 69.7633 18.6346 69.7751 18.6448 69.7842 18.6426 69.7888 18.6482 69.7919 18.6552 69.7957 18.6555 69.8012 18.6492 69.8031 18.6281 69.8061 18.6058 69.8049 18.591 69.8064 18.5794 69.8045 18.5604 69.7966 18.5395 69.7954 18.5289 69.7885 18.5283 69.7778 18.5141 69.7724 18.5152 69.7669 18.5009 69.7618 18.5027 69.7564 18.4881 69.743 18.4773 69.7441 18.4701 69.7504 18.4703 69.7511 18.4734 69.7676 18.4591 69.7833 18.4441 69.7822 18.4295 69.776 18.4015 69.7767 18.4099 69.7847 18.3905 69.7959 18.3771 69.7965 18.3623 69.7945 18.3527 69.7893 18.3278 69.785 18.3003 69.7674 18.3017 69.7655 18.3111 69.753 18.311 69.7439 18.3219 69.7357 18.3161 69.7184 18.3205 69.7164 18.3368 69.7141 18.3771 69.7136 18.3919 69.7122 18.4195 69.7126 18.4605 69.7083 18.5294 69.7101 18.5314 69.7099 18.5461 69.7088 18.5669 69.7034 18.5873 69.7034 18.6058 69.6996 18.613 69.6996 18.6164 69.6955 18.6134 69.6907 18.4523 69.6996 18.3781 69.6983 18.3577 69.6949 18.3449 69.69 18.3338 69.6895 18.318 69.6926 18.3056 69.6923 18.2967 69.6971 18.2749 69.7008 18.2742 69.7009 18.2575 69.6984 18.2389 69.7023 18.2263 69.7029 18.197 69.7107 18.188 69.7098 18.177 69.6992 18.2149 69.6752 18.2174 69.6627 18.2223 69.6582 18.2342 69.6548 18.2438 69.64 18.2553 69.6352 18.2628 69.6274 18.2636 69.6267 18.2735 69.6231 18.2898 69.6205 18.3125 69.6217 18.3839 69.636 18.3942 69.6367 18.3991 69.6354 18.3314 69.6123 18.3109 69.6098 18.2976 69.6042 18.2826 69.5876 18.2786 69.5879 18.2771 69.592 18.284 69.6036 18.2632 69.6187 18.2503 69.6207 18.2335 69.6257 18.2268 69.6299 18.21 69.6316 18.2093 69.629 18.2145 69.6257 18.2045 69.6232 18.1896 69.6254 18.163 69.6334 18.1512 69.6333 18.1399 69.6276 18.1208 69.6248 18.0869 69.6143 18.0842 69.6209 18.0799 69.6224 18.059 69.6219 18.0552 69.606 18.0351 69.6045 18.0231 69.6054 18.017 69.6004 18.0235 69.5974 18.0345 69.5981 18.0363 69.5959 18.0196 69.5926 18.0187 69.5924 18.0145 69.5875 18.0042 69.5836 18.0085 69.5727 18.0059 69.5665 18.0403 69.5527 18.0723 69.5528 18.0896 69.5578 18.0995 69.5574 18.1602 69.5267 18.2122 69.5204 18.2138 69.5202 18.2469 69.5244 18.2696 69.5255 18.2897 69.5294 18.355 69.5298 18.3931 69.5323 18.4588 69.5444 18.4996 69.5462 18.5194 69.5485 18.5463 69.5484 18.5539 69.55 18.5936 69.558 18.6041 69.5646 18.6244 69.5715 18.6315 69.5721 18.6451 69.5729 18.6719 69.5588 18.6834 69.5568 18.6978 69.5566 18.7196 69.5592 18.7335 69.5583 18.7489 69.5602 18.7844 69.5738 18.8042 69.5841 18.8184 69.5999 18.8401 69.5997 18.8404 69.6054 18.8356 69.6101 18.8276 69.6109 18.8218 69.6177 18.8169 69.6235 18.809 69.6272 18.8116 69.6311 18.8059 69.6338 18.7917 69.6362 18.7763 69.634 18.7702 69.6316 18.7619 69.6335 18.7364 69.633 18.7357 69.6371 18.7564 69.6535 18.7633 69.666 18.7563 69.672 18.7621 69.6802 18.7801 69.679 18.8096 69.683 18.8365 69.6838 18.8478 69.6855 18.8653 69.6881 18.8785 69.6918 18.8894 69.6973 18.9187 69.7027 18.9395 69.7042 18.9588 69.7149 18.9566 69.7279 18.9876 69.7315 19.025 69.7446 19.0259 69.7506 19.0502 69.7673 19.0523 69.7749 19.0331 69.7946 19.0124 69.8075 18.9763 69.8248 18.9623 69.8293 18.9595 69.8302 18.9448 69.8308 18.9244 69.8263 18.9081 69.836 18.8992 69.8381 18.8723 69.8362 18.866 69.8422 18.8489 69.8487 18.8371 69.848 18.8203 69.8418 18.8058 69.8414 18.7951 69.8453 18.8012 69.8487 18.8196 69.8529 18.8251 69.8595 18.8091 69.8781 18.7958 69.882 18.7656 69.8838 18.7483 69.8805 18.7436 69.8804 18.737 69.8802 18.7376 69.8773 18.7572 69.8642 18.7388 69.8599 18.7264 69.8695 18.7028 69.8823 18.693 69.8811 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_90.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_90.poly deleted file mode 100644 index 1d3cb75f52b..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/norway_90.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -610 18.0695 69.4234 18.0796 69.4344 18.077 69.4373 18.0452 69.4429 18.0404 69.4474 18.0249 69.4465 18.0141 69.4424 18.0077 69.4326 18.0015 69.429 17.9944 69.4249 17.9942 69.4102 17.9883 69.4078 17.9708 69.4105 17.9479 69.426 17.9634 69.4298 17.9761 69.4434 17.9927 69.448 18.0051 69.454 18.009 69.4631 18.0175 69.466 18.0173 69.4731 18.0385 69.4778 18.0657 69.4911 18.0635 69.4954 18.0543 69.4988 18.0331 69.5033 18.001 69.5162 17.9764 69.5196 17.9706 69.5205 17.9608 69.5236 17.9411 69.5211 17.9336 69.5106 17.908 69.5021 17.899 69.4922 17.8843 69.485 17.8905 69.4687 17.8835 69.4588 17.8786 69.4571 17.8805 69.4546 17.8694 69.4518 17.8467 69.4512 17.8178 69.461 17.8191 69.464 17.8362 69.4603 17.8424 69.4619 17.8428 69.469 17.8506 69.4747 17.8464 69.4908 17.8528 69.4976 17.8698 69.5034 17.9016 69.5104 17.8996 69.5163 17.9105 69.5205 17.9147 69.5241 17.916 69.5252 17.9067 69.5348 17.915 69.5476 17.9146 69.5526 17.9011 69.5635 17.8899 69.5664 17.8686 69.5828 17.8444 69.5826 17.844 69.5785 17.8587 69.5683 17.8523 69.5647 17.8375 69.5696 17.832 69.5736 17.8115 69.5744 17.81 69.5664 17.8005 69.5609 17.7926 69.5565 17.7909 69.5379 17.7832 69.5343 17.7683 69.5421 17.7517 69.5462 17.7496 69.5524 17.736 69.5575 17.7212 69.5678 17.6986 69.5922 17.6861 69.598 17.6784 69.5974 17.6696 69.593 17.6584 69.5929 17.6309 69.5983 17.6213 69.6001 17.6153 69.5977 17.6435 69.5836 17.6569 69.5569 17.6655 69.551 17.6648 69.5395 17.6726 69.5287 17.6856 69.5231 17.7053 69.52 17.7092 69.5171 17.6987 69.5145 17.6804 69.5143 17.6594 69.5178 17.6486 69.5164 17.6526 69.5127 17.6784 69.4888 17.6763 69.4867 17.6659 69.4864 17.6482 69.4925 17.6185 69.5164 17.62 69.5268 17.6152 69.536 17.5927 69.5457 17.5879 69.558 17.5686 69.571 17.5661 69.5727 17.543 69.5787 17.5191 69.5911 17.4998 69.5978 17.4964 69.6039 17.485 69.6075 17.4735 69.6035 17.4711 69.5995 17.4794 69.5899 17.4788 69.5839 17.4617 69.5759 17.4592 69.5726 17.4836 69.5529 17.4839 69.5463 17.4926 69.5399 17.5011 69.5385 17.5191 69.5356 17.536 69.5308 17.5571 69.5218 17.604 69.4943 17.6215 69.4865 17.6521 69.4754 17.6681 69.4738 17.6758 69.4715 17.6709 69.4705 17.6507 69.4729 17.6093 69.466 17.5954 69.461 17.586 69.4649 17.571 69.4679 17.5505 69.4774 17.553 69.4892 17.5488 69.4929 17.5344 69.4987 17.5157 69.503 17.5014 69.5028 17.492 69.5009 17.4843 69.5062 17.4851 69.511 17.4809 69.5148 17.4737 69.5174 17.4452 69.5191 17.4246 69.526 17.4068 69.5266 17.3796 69.5361 17.3681 69.5353 17.3577 69.5346 17.3326 69.5407 17.3179 69.5419 17.307 69.5411 17.3019 69.538 17.324 69.5224 17.3587 69.5035 17.387 69.4921 17.3973 69.4844 17.391 69.4808 17.3763 69.4824 17.35 69.4913 17.3316 69.4942 17.329 69.4889 17.3224 69.4756 17.3407 69.4651 17.3382 69.4621 17.3266 69.4587 17.318 69.467 17.3012 69.4717 17.2864 69.4869 17.2503 69.4979 17.2324 69.5093 17.1961 69.5027 17.1949 69.4999 17.2078 69.4927 17.2081 69.4892 17.2087 69.4813 17.2221 69.4746 17.2208 69.467 17.2352 69.464 17.2415 69.4573 17.2513 69.4546 17.2619 69.4536 17.2844 69.4472 17.3402 69.4429 17.3641 69.4358 17.372 69.4353 17.4481 69.4444 17.4622 69.4376 17.4665 69.4356 17.4849 69.4322 17.4851 69.4286 17.4576 69.4316 17.4281 69.4324 17.4163 69.4302 17.4074 69.4238 17.377 69.4229 17.3344 69.4186 17.3126 69.4278 17.2893 69.4271 17.2874 69.4243 17.2935 69.4206 17.3175 69.4131 17.3188 69.4104 17.3159 69.4089 17.305 69.4084 17.2898 69.4116 17.2851 69.4126 17.2791 69.4103 17.2872 69.4069 17.3147 69.4034 17.3416 69.3971 17.3807 69.3966 17.4037 69.3904 17.4018 69.3739 17.3959 69.3716 17.4016 69.3695 17.3938 69.3668 17.3864 69.3679 17.3395 69.3842 17.3213 69.3949 17.2982 69.4017 17.2709 69.4066 17.25 69.4177 17.2356 69.4177 17.2287 69.4196 17.2133 69.4184 17.2031 69.4204 17.1981 69.4188 17.1946 69.4176 17.1819 69.4165 17.1625 69.421 17.1561 69.4183 17.1439 69.4174 17.1379 69.4154 17.1362 69.4117 17.1222 69.4053 17.1188 69.3983 17.1136 69.3984 17.1053 69.3951 17.1018 69.3882 17.0937 69.387 17.0824 69.3928 17.0712 69.3959 17.058 69.407 17.0403 69.4073 17.0324 69.4052 17.0168 69.4052 17.0016 69.3983 16.985 69.3971 16.9713 69.3999 16.9621 69.4043 16.952 69.4091 16.9308 69.408 16.9276 69.4051 16.9344 69.3991 16.9209 69.3982 16.9133 69.3952 16.9126 69.3904 16.9253 69.3865 16.9199 69.3849 16.908 69.3756 16.8932 69.3802 16.8803 69.3795 16.8603 69.3814 16.8574 69.3778 16.8705 69.37 16.8923 69.3661 16.9354 69.3678 16.9769 69.367 17.0181 69.3748 17.0358 69.3742 17.1072 69.3645 17.1786 69.3596 17.1826 69.3567 17.1794 69.3539 17.1619 69.3538 17.0599 69.3652 17.0562 69.3656 17.023 69.366 17.014 69.3604 17.0406 69.348 17.0607 69.3431 17.0724 69.3379 17.0849 69.3372 17.1005 69.3397 17.1214 69.347 17.1451 69.343 17.1416 69.3415 17.1311 69.3418 17.1236 69.3384 17.0919 69.3303 17.0972 69.3222 17.1085 69.3184 17.1237 69.3148 17.1264 69.3148 17.1451 69.3145 17.1474 69.3132 17.1293 69.3106 17.1159 69.312 17.0923 69.3184 17.0663 69.3286 17.0297 69.3348 16.9918 69.331 16.9749 69.331 16.9532 69.3248 16.9081 69.3235 16.8971 69.3209 16.892 69.3154 16.9091 69.3064 16.9116 69.3051 16.9342 69.3005 16.9516 69.3009 16.9935 69.3091 17.0069 69.31 17.0127 69.3079 17.0058 69.3044 16.983 69.2996 16.9701 69.2946 16.949 69.2909 16.9448 69.2871 16.9542 69.281 16.962 69.2808 17.0024 69.2871 17.0165 69.2878 17.0338 69.2835 17.0604 69.2832 17.0641 69.2815 17.0602 69.2806 17.0561 69.2797 17.0255 69.2805 17.0144 69.2786 17.0099 69.2759 17.0488 69.2652 17.0548 69.2647 17.0724 69.2692 17.1044 69.2835 17.1226 69.2882 17.1491 69.2885 17.1623 69.2901 17.1671 69.2891 17.1415 69.2826 17.113 69.27 17.1028 69.2624 17.0988 69.2594 17.0984 69.2558 17.1107 69.2481 17.1462 69.2534 17.1455 69.2513 17.1244 69.2424 17.114 69.2324 17.089 69.2319 17.0712 69.2334 17.0101 69.2475 16.9982 69.2482 16.974 69.247 16.9268 69.2415 16.92 69.2407 16.9017 69.2417 16.8786 69.2361 16.8729 69.2284 16.8787 69.2258 16.9143 69.2205 16.9296 69.2164 16.9335 69.2138 16.9245 69.211 16.8848 69.2125 16.8831 69.2064 16.8796 69.2052 16.8905 69.2028 16.9386 69.2041 16.9785 69.1944 16.9972 69.1941 17.0497 69.1932 17.0748 69.1858 17.092 69.1866 17.1966 69.2043 17.2065 69.2007 17.191 69.1954 17.1519 69.1868 17.1377 69.1845 17.1176 69.1848 17.1074 69.1798 17.1067 69.1795 17.0878 69.1752 17.0574 69.1746 17.0643 69.1689 17.0493 69.157 17.0614 69.1523 17.075 69.1518 17.0767 69.1455 17.059 69.1465 17.0507 69.1414 17.0382 69.1422 17.0242 69.1392 17.0139 69.1416 16.991 69.1533 16.9744 69.1479 16.9794 69.1435 16.9732 69.1424 16.9554 69.1441 16.9191 69.1427 16.9061 69.1407 16.8984 69.1374 16.8951 69.136 16.8925 69.1313 16.9072 69.1217 16.9108 69.1129 16.9066 69.109 16.8867 69.1139 16.8431 69.1212 16.8159 69.129 16.8066 69.1278 16.793 69.1207 16.7841 69.1084 16.7718 69.1014 16.7786 69.0952 16.7752 69.0781 16.7742 69.073 16.7795 69.0702 16.7989 69.0695 16.7828 69.06 16.7921 69.0564 16.8235 69.054 16.8599 69.0571 16.8931 69.0572 16.9028 69.0619 16.9162 69.0621 16.9362 69.0667 16.9583 69.0779 16.997 69.0797 17.0145 69.074 17.0205 69.0741 17.0356 69.0742 17.0732 69.0777 17.1034 69.0826 17.1367 69.0852 17.1536 69.0844 17.152 69.0804 17.1395 69.0791 17.1308 69.0757 17.1242 69.0686 17.1174 69.0702 17.1069 69.0687 17.0968 69.0704 17.0782 69.063 17.0708 69.0618 17.0584 69.0628 17.0534 69.0597 17.0322 69.0572 17.0237 69.0528 17.0299 69.0514 17.0355 69.0442 17.0166 69.0379 17.019 69.0361 17.0407 69.0363 17.0458 69.034 17.0282 69.0148 17.033 69.0113 17.0436 69.0096 17.0978 69.0102 17.1191 69.0145 17.1352 69.0143 17.1441 69.0171 17.1527 69.0179 17.166 69.019 17.1838 69.0246 17.1964 69.0252 17.2077 69.0237 17.2198 69.0264 17.2261 69.0374 17.223 69.0473 17.211 69.0573 17.2031 69.0605 17.1983 69.0592 17.1898 69.0468 17.1831 69.0456 17.1729 69.0531 17.1737 69.0577 17.1969 69.0782 17.1959 69.082 17.1836 69.085 17.182 69.089 17.2004 69.0898 17.2437 69.0991 17.2623 69.1068 17.2837 69.1191 17.3126 69.1248 17.3194 69.1285 17.3202 69.1384 17.3284 69.1416 17.3487 69.1429 17.3964 69.1615 17.401 69.1664 17.3962 69.1702 17.4078 69.1728 17.415 69.1779 17.4266 69.1807 17.4421 69.1965 17.463 69.2063 17.4793 69.2084 17.4889 69.2114 17.5036 69.2066 17.5284 69.2055 17.5319 69.1985 17.4964 69.1876 17.4879 69.1828 17.4945 69.1795 17.505 69.1784 17.5265 69.18 17.5178 69.1703 17.5172 69.1648 17.5125 69.1658 17.5109 69.1697 17.4937 69.1744 17.4857 69.1728 17.464 69.1637 17.4701 69.1628 17.4887 69.1656 17.4873 69.1633 17.475 69.1583 17.472 69.1543 17.4778 69.1518 17.4924 69.1524 17.5339 69.1623 17.5402 69.163 17.5602 69.1597 17.5756 69.1599 17.6 69.1656 17.6022 69.1597 17.6053 69.1509 17.6101 69.1496 17.6233 69.1509 17.6852 69.1644 17.7163 69.1693 17.7298 69.1693 17.7552 69.1652 17.7841 69.1653 17.816 69.1604 17.8427 69.1618 17.8799 69.1683 17.903 69.1741 17.919 69.1781 17.9342 69.1764 17.946 69.1781 17.997 69.1928 18.0064 69.1969 17.971 69.206 17.9375 69.1999 17.9311 69.2057 17.9193 69.2097 17.9189 69.2177 17.9124 69.221 17.8964 69.2203 17.8738 69.2236 17.8614 69.2329 17.8825 69.2329 17.8892 69.233 17.9307 69.2377 17.9522 69.2461 17.9607 69.2543 17.9588 69.2575 17.9434 69.263 17.9474 69.2684 17.9418 69.2763 17.9333 69.2799 17.9176 69.2809 17.9001 69.2781 17.8959 69.2794 17.8946 69.2826 17.9021 69.2867 17.9236 69.2861 17.9287 69.2894 17.9265 69.2933 17.9061 69.3069 17.8939 69.3093 17.8879 69.3103 17.8777 69.3185 17.8804 69.3211 17.9106 69.319 17.922 69.3202 17.912 69.3247 17.9192 69.3302 17.9196 69.3343 17.9346 69.3432 17.9596 69.3445 17.9663 69.3465 17.9797 69.3473 17.9889 69.3501 18.0338 69.3524 18.0661 69.3562 18.0818 69.3555 18.0908 69.3653 18.0834 69.3695 18.0729 69.3669 18.064 69.3692 18.062 69.382 18.0525 69.3868 18.0605 69.3923 18.0576 69.4029 18.0511 69.406 18.053 69.409 18.0638 69.4102 18.069 69.4133 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/parallels0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/parallels0.poly deleted file mode 100644 index 3e82db170c4..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/parallels0.poly +++ /dev/null @@ -1,33 +0,0 @@ -1 -29 -2 1 -5 3 -5 1 -6 0 -7 3 -7 0 -9 3 -10 0 -15 0 -12 2 -14 2 -12 5 -14 8 -13 8 -13 9 -12 9 -12 8 -10 10 -9 9 -8 6 -5 9 -2 7 -1 7 -1 6 -0 6 -0 5 -2 5 -0 4 -3 2 - - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/parallels0_b.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/parallels0_b.poly deleted file mode 100644 index e3522dd39c2..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/parallels0_b.poly +++ /dev/null @@ -1,32 +0,0 @@ -1 -28 -2 1 -5 3 -5 1 -6 0 -7 3 -7 0 -9 3 -10 0 -15 0 -12 2 -14 2 -12 5 -14 8 -13 8 -13 9 -12 9 -12 8 -10 10 -9 9 -8 6 -5 9 -2 7 -1 7 -1 6 -0 6 -0 5 -2 5 -0 4 - - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_0.poly deleted file mode 100644 index 86b8fa76b28..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_0.poly +++ /dev/null @@ -1,10 +0,0 @@ -1 -8 -2 0 -8 0 -7 3 -10 2 -10 8 -0 8 -0 2 -3 3 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_1.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_1.poly deleted file mode 100644 index ba2f7280de5..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_1.poly +++ /dev/null @@ -1,16 +0,0 @@ -3 -4 -0 0 -10 0 -10 10 -0 10 -4 -6 2 -8 2 -8 4 -6 4 -4 -6 6 -8 6 -8 8 -6 8 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_10.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_10.poly deleted file mode 100644 index 8532695145f..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_10.poly +++ /dev/null @@ -1,11 +0,0 @@ -1 -8 -2 0 -4 0 -4 2 -6 2 -6 5 -0 5 -0 2 -2 2 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_11.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_11.poly deleted file mode 100644 index 6eac6b73f98..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_11.poly +++ /dev/null @@ -1,12 +0,0 @@ -1 -9 -2 0 -4 0 -4 2 -6 2 -6 6 -3 5 -0 6 -0 2 -2 2 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_12.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_12.poly deleted file mode 100644 index 506828b6903..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_12.poly +++ /dev/null @@ -1,68 +0,0 @@ -2 -44 -5 0 -6 0 -6 1 -7 1 -7 2 -8 2 -8 3 -9 3 -9 4 -10 4 -10 5 -11 5 -11 6 -10 6 -10 7 -9 7 -9 8 -8 8 -8 9 -7 9 -7 10 -6 10 -6 11 -5 11 -5 10 -4 10 -4 9 -3 9 -3 8 -2 8 -2 7 -1 7 -1 6 -0 6 -0 5 -1 5 -1 4 -2 4 -2 3 -3 3 -3 2 -4 2 -4 1 -5 1 -20 -4 3 -5 3 -5 4 -6 4 -6 5 -7 5 -7 6 -6 6 -6 7 -5 7 -5 8 -4 8 -4 7 -3 7 -3 6 -2 6 -2 5 -3 5 -3 4 -4 4 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_2.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_2.poly deleted file mode 100644 index 5de6431de5b..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_2.poly +++ /dev/null @@ -1,16 +0,0 @@ -3 -4 -0 0 -10 0 -10 10 -0 10 -4 -2 2 -4 2 -4 4 -2 4 -4 -6 6 -8 6 -8 8 -6 8 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_3.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_3.poly deleted file mode 100644 index 30a67bd138c..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_3.poly +++ /dev/null @@ -1,22 +0,0 @@ -4 -4 -0 0 -10 0 -10 10 -0 10 -4 -2 2 -4 2 -4 4 -2 4 -4 -6 6 -8 6 -8 8 -6 8 -4 -2 6 -4 6 -4 8 -2 8 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_4.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_4.poly deleted file mode 100644 index 98bc3e0172b..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_4.poly +++ /dev/null @@ -1,21 +0,0 @@ -4 -4 -0 0 -10 0 -10 10 -0 10 -4 -2 2 -4 2 -4 4 -2 4 -4 -6 2 -8 2 -8 4 -6 4 -4 -6 6 -8 6 -8 8 -6 8 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_5.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_5.poly deleted file mode 100644 index adcedc8772b..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_5.poly +++ /dev/null @@ -1,27 +0,0 @@ -5 -4 -0 0 -10 0 -10 10 -0 10 -4 -2 2 -4 2 -4 4 -2 4 -4 -6 2 -8 2 -8 4 -6 4 -4 -6 6 -8 6 -8 8 -6 8 -4 -2 6 -4 6 -4 8 -2 8 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_5b.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_5b.poly deleted file mode 100644 index 13636e7f83c..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_5b.poly +++ /dev/null @@ -1,27 +0,0 @@ -5 -4 -0 0 -10 0 -10 10 -0 10 -4 -2.00001 2.00001 -3.9999 2.00001 -3.9999 3.9999 -2.0001 3.9999 -4 -6 2 -8 2 -8 4 -6 4 -4 -6 6 -8 6 -8 8 -6 8 -4 -2 6 -4 6 -4 8 -2 8 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_6.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_6.poly deleted file mode 100644 index 424297350a2..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_6.poly +++ /dev/null @@ -1,11 +0,0 @@ -1 -8 -0 0 -6 0 -9 3 -12 0 -18 0 -18 4 -9 7 -0 4 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_7.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_7.poly deleted file mode 100644 index 25f63a84558..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_7.poly +++ /dev/null @@ -1,46 +0,0 @@ -1 -44 -5 0 -6 0 -6 1 -7 1 -7 2 -8 2 -8 3 -9 3 -9 4 -10 4 -10 5 -11 5 -11 6 -10 6 -10 7 -9 7 -9 8 -8 8 -8 9 -7 9 -7 10 -6 10 -6 11 -5 11 -5 10 -4 10 -4 9 -3 9 -3 8 -2 8 -2 7 -1 7 -1 6 -0 6 -0 5 -1 5 -1 4 -2 4 -2 3 -3 3 -3 2 -4 2 -4 1 -5 1 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_8.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_8.poly deleted file mode 100644 index 509851084c3..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_8.poly +++ /dev/null @@ -1,68 +0,0 @@ -2 -44 -5 0 -6 0 -6 1 -7 1 -7 2 -8 2 -8 3 -9 3 -9 4 -10 4 -10 5 -11 5 -11 6 -10 6 -10 7 -9 7 -9 8 -8 8 -8 9 -7 9 -7 10 -6 10 -6 11 -5 11 -5 10 -4 10 -4 9 -3 9 -3 8 -2 8 -2 7 -1 7 -1 6 -0 6 -0 5 -1 5 -1 4 -2 4 -2 3 -3 3 -3 2 -4 2 -4 1 -5 1 -20 -5 3 -6 3 -6 4 -7 4 -7 5 -8 5 -8 6 -7 6 -7 7 -6 7 -6 8 -5 8 -5 7 -4 7 -4 6 -3 6 -3 5 -4 5 -4 4 -5 4 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_9.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_9.poly deleted file mode 100644 index 834a1845636..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/pseudo_split_9.poly +++ /dev/null @@ -1,36 +0,0 @@ -2 -4 -1054.6269647681995 3292.2942475702885 -2117.0289403441702 3292.2942475702885 -2117.0289403441702 4451.6964925316734 -1054.6269647681995 4451.6964925316734 -28 -1736.6833797943736 3718.7008286517166 -1634.9658641566639 3698.4679568122424 -1623.9177944111882 3754.0103541554336 -1645.7104705303391 3758.3451869538317 -1614.3434953311869 3916.0376201210634 -1614.292342880542 3916.0384893115347 -1594.1590335924247 3830.1792663589176 -1594.1050673658394 3830.1681361004967 -1541.2973937719973 3901.5229584030853 -1541.2505397355678 3901.5022180060191 -1572.6182211236596 3743.8062345872445 -1594.8792616094197 3748.2342308506022 -1605.9273313548952 3692.691833507411 -1505.1189922280794 3672.6398081200846 -1494.0709224826032 3728.1822054632757 -1516.7727734859989 3732.6978843902607 -1468.7224435985438 3974.2632054431401 -1446.0205925951479 3969.7475265161547 -1434.9725253179959 4025.2899114502452 -1513.5198239590522 4040.9139405742139 -1567.0984438766802 3965.9406326211738 -1567.1520118405297 3965.9516695645334 -1586.6120733657319 4055.4528929408016 -1666.5369128842906 4071.3509319818772 -1677.5849801614427 4015.8085470477868 -1654.8831324824364 4011.2928687820631 -1702.9334623698915 3769.7275477291842 -1725.635310048898 3774.2432259949078 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/rectangle.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/rectangle.poly deleted file mode 100644 index 7143c771d39..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/rectangle.poly +++ /dev/null @@ -1,6 +0,0 @@ -1 -4 --0.8 -0.4 -0.8 -0.4 -0.8 0.4 --0.8 0.4 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/region_4.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/region_4.poly deleted file mode 100644 index 6e61a7e570f..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/region_4.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -3 -0.473684 0.65 -0.488889 0.722222 -0.5625 0.67033 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample.poly deleted file mode 100644 index 7211ccdd3d5..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -12 -0.5 -0.328125 -0.210526 -0.125 0.184211 -0.26087 0.481481 -0.0208333 0.62963 0.304348 0.380952 0.619048 -0.0740741 0.78125 -0.481481 0.758621 -0.780488 0.615385 -0.925926 0.255319 -0.862069 -0.0384615 -0.647059 -0.266667 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample2.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample2.poly deleted file mode 100644 index 5fa4790635b..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample2.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -7 -0.111111 0.56 -0.73913 0.1 -0.380952 -0.4375 0.1875 -0.380952 0.857143 0.047619 0.210526 0.404762 0.047619 0.294118 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample3.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample3.poly deleted file mode 100644 index 658377bcb22..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample3.poly +++ /dev/null @@ -1,2 +0,0 @@ -9 -14 -0.818182 0.769231 -1.42105 0.24 -1.38235 -0.814815 -0.596154 -0.911111 -0.324324 -0.458333 0.40625 -0.807692 0.653846 -1.01389 1.24 -0.709677 1.17857 -0.145833 1.14286 0.470588 1.14 0.851852 0.4375 0.984127 -0.204082 0.787879 -0.516129 0.669725 10 -0.785714 0.636364 -0.5625 0.583333 -0.777778 0.402778 -1.11429 0.16129 -1.18182 -0.255319 -0.860465 -0.371429 -0.354839 -0.402778 -0.596154 -0.833333 -1.31034 -0.703704 -1.31818 0.212121 6 0.451613 0.903226 1.07692 0.8125 1.18182 -0.638889 1.10811 -0.697674 0.990291 0.730769 0.254237 0.861111 4 1.05882 -0.684211 0.69697 -0.931034 0.7 -0.818182 1.03448 -0.545455 6 0.653846 -0.923077 0.516129 -0.8125 -0.272727 -0.421053 -0.233333 -0.344828 0.461538 -0.669725 0.647059 -0.789474 4 -0.444444 0.633333 0.244898 0.85 0.0909091 0.662338 -0.322581 0.583333 2 -0.613746 0.407754 -0.613748 0.40775 17 -0.55 0.339623 -0.473684 0.333333 -0.32 0.272727 -0.322581 0.102564 -0.363636 -0.0294118 -0.423077 0.0454545 -0.513514 0.0689655 -0.448276 0.181818 -0.52 0.217391 -0.625 0.189189 -0.717391 0.142857 -0.764706 0.0625 -0.655172 0.0344828 -0.711111 -0.0666667 -0.708333 -0.16129 -0.90625 -0.0645161 -0.828571 0.205882 48 0.117647 0.321429 0.148148 0.454545 0.0606061 0.52381 0.190476 0.470588 0.290323 0.470588 0.371429 0.478261 0.428571 0.611111 0.428571 0.448276 0.548387 0.380952 0.6 0.3125 0.764706 0.503597 0.62963 0.275862 0.689655 0.185185 0.685714 0.0833333 0.661017 -0.00434783 0.947368 -0.00434783 0.65625 -0.0416667 0.621622 -0.111111 0.555556 -0.185185 0.48 -0.235294 0.56 -0.404255 0.45 -0.252427 0.361702 -0.275862 0.242424 -0.275862 0.142857 -0.217391 0.0454545 -0.321429 0.121212 -0.210526 0.04 -0.12 0.0357143 -0.037037 0.0357143 0.0714286 0.0666667 0.166667 0.125 0.26087 0.0967742 0.178571 0.0869565 0.0740741 0.0909091 -0.0113636 0.117647 -0.0909091 0.185185 -0.15 0.238095 -0.181818 0.324324 -0.190476 0.407407 -0.1875 0.481481 -0.16 0.564103 -0.0833333 0.611111 0.0026738 0.617647 0.142857 0.504 0.3 0.391304 0.407407 0.285714 0.421053 0.1875 0.416667 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample_102.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample_102.poly deleted file mode 100644 index 1616a8208be..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/sample_102.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -781 16.2499 68.9065 16.243 68.9019 16.2459 68.8954 16.2465 68.894 16.2434 68.8895 16.275 68.8859 16.2873 68.8829 16.3441 68.8418 16.3431 68.8342 16.3358 68.8328 16.3199 68.8329 16.3084 68.8357 16.2913 68.8421 16.2804 68.8535 16.2722 68.8581 16.2652 68.8621 16.2563 68.8645 16.2086 68.8687 16.1889 68.8687 16.1602 68.8538 16.1218 68.8457 16.1105 68.8345 16.1011 68.8295 16.0881 68.8263 16.0886 68.8183 16.106 68.8063 16.117 68.7948 16.1179 68.7944 16.1265 68.7905 16.1426 68.7875 16.1557 68.7818 16.1942 68.7713 16.2086 68.7695 16.2386 68.7621 16.248 68.7581 16.2408 68.7523 16.2428 68.7497 16.2658 68.7445 16.2608 68.7421 16.2451 68.7417 16.2282 68.7388 16.1966 68.7408 16.1786 68.7374 16.1661 68.7371 16.1466 68.7384 16.13 68.7395 16.081 68.7488 16.0657 68.7492 16.0618 68.7476 16.0532 68.7423 16.0399 68.7016 16.026 68.6953 16.025 68.6879 16.0312 68.684 16.066 68.6773 16.0772 68.6734 16.0792 68.6688 16.0777 68.6651 16.0829 68.6605 16.08 68.6574 16.0931 68.6512 16.0818 68.6405 16.0735 68.6385 16.0622 68.6406 16.0525 68.6393 16.049 68.6403 16.0568 68.6482 16.0471 68.6683 16.0395 68.6749 16.0336 68.6758 16.0153 68.6737 16.0048 68.6793 15.9919 68.6781 15.9573 68.665 15.9454 68.6614 15.8915 68.6445 15.9042 68.6402 15.8976 68.637 15.8782 68.6385 15.8643 68.6366 15.8378 68.6284 15.8245 68.6265 15.8076 68.6201 15.8178 68.5968 15.8167 68.586 15.826 68.5801 15.8253 68.5739 15.8234 68.5714 15.8162 68.5625 15.8052 68.5616 15.798 68.5583 15.7884 68.5591 15.7759 68.5547 15.7586 68.5455 15.7474 68.5349 15.7344 68.5365 15.7222 68.5353 15.7176 68.5381 15.7199 68.5407 15.7406 68.5491 15.7476 68.5547 15.7489 68.563 15.7608 68.561 15.8015 68.5697 15.7765 68.6147 15.7592 68.6197 15.7712 68.6239 15.7734 68.6329 15.7748 68.6336 15.7817 68.637 15.8526 68.6545 15.8808 68.6529 15.8927 68.6575 15.8884 68.6612 15.8911 68.6648 15.9149 68.6719 15.9203 68.6811 15.9415 68.6883 15.9557 68.6981 15.9832 68.7097 15.9847 68.7151 15.9887 68.7174 15.9917 68.7192 15.9929 68.7324 16.0011 68.7387 15.9981 68.7617 16.0095 68.779 15.9996 68.7866 15.9926 68.7971 15.9712 68.7968 15.9561 68.8006 15.9474 68.7998 15.9413 68.7908 15.9298 68.7846 15.9261 68.778 15.9207 68.7769 15.8919 68.7737 15.8684 68.7633 15.8423 68.7575 15.8368 68.7545 15.8376 68.7479 15.8016 68.7414 15.7705 68.7395 15.7635 68.7417 15.766 68.7439 15.7789 68.7451 15.7939 68.7501 15.8078 68.752 15.8167 68.7562 15.8236 68.7669 15.8353 68.7701 15.8395 68.7748 15.8485 68.7771 15.8672 68.7819 15.8753 68.7866 15.8931 68.8031 15.9344 68.8666 15.9515 68.8773 15.9638 68.8957 15.9622 68.8989 15.9487 68.9054 15.913 68.9225 15.9098 68.929 15.9203 68.9554 15.9123 68.965 15.9048 68.9686 15.8945 68.9707 15.8637 68.9713 15.7876 68.9566 15.7837 68.9569 15.7759 68.9614 15.7683 68.9614 15.7565 68.9579 15.7458 68.9616 15.7497 68.9696 15.7402 68.9736 15.7223 68.9733 15.7181 68.9665 15.6889 68.9656 15.6722 68.9619 15.6332 68.9578 15.6285 68.9544 15.6313 68.9518 15.6446 68.9521 15.6308 68.9409 15.6073 68.9285 15.6073 68.9184 15.6036 68.9141 15.6051 68.9121 15.6068 68.9098 15.6008 68.9027 15.6061 68.896 15.6173 68.8907 15.6037 68.8876 15.5883 68.8919 15.5782 68.8917 15.5701 68.8888 15.548 68.8624 15.5495 68.8597 15.595 68.8425 15.6284 68.8335 15.6412 68.8333 15.6602 68.8295 15.6577 68.8271 15.6753 68.8195 15.653 68.8177 15.6203 68.8228 15.6072 68.8221 15.5854 68.8267 15.5746 68.8267 15.5697 68.8281 15.5548 68.8268 15.5405 68.8221 15.5419 68.8076 15.5387 68.8057 15.5348 68.8057 15.5127 68.8195 15.4911 68.8175 15.4637 68.8196 15.4581 68.8152 15.4616 68.8133 15.4681 68.8099 15.4644 68.7936 15.4788 68.7882 15.4793 68.783 15.477 68.7801 15.4635 68.7747 15.4588 68.758 15.4628 68.7554 15.4869 68.7513 15.5007 68.7439 15.5103 68.7415 15.511 68.7372 15.5187 68.735 15.5218 68.7312 15.5275 68.7312 15.5371 68.7369 15.556 68.7393 15.5837 68.7397 15.587 68.7407 15.6115 68.7477 15.6256 68.7492 15.6462 68.7462 15.6576 68.7464 15.6477 68.7393 15.6491 68.733 15.6592 68.7251 15.7033 68.703 15.7012 68.6997 15.6913 68.7009 15.6529 68.7168 15.6347 68.7336 15.6298 68.7381 15.6211 68.7394 15.5636 68.7311 15.5515 68.7273 15.5168 68.725 15.4954 68.7246 15.4711 68.7274 15.4572 68.7312 15.4507 68.7298 15.4337 68.7158 15.4341 68.7126 15.4402 68.7034 15.468 68.6837 15.4778 68.6767 15.4767 68.6741 15.464 68.6706 15.463 68.6676 15.4892 68.6567 15.4994 68.6486 15.5134 68.6462 15.5638 68.6423 15.5763 68.6387 15.5924 68.6276 15.6228 68.6209 15.6137 68.6179 15.6018 68.6177 15.588 68.6215 15.5839 68.6183 15.5841 68.6117 15.5792 68.6123 15.5749 68.6129 15.5688 68.6163 15.5705 68.6329 15.5604 68.6351 15.5443 68.6342 15.5316 68.6304 15.5112 68.6293 15.4872 68.6292 15.4604 68.6323 15.4289 68.6284 15.4275 68.6267 15.475 68.6083 15.4643 68.6062 15.4546 68.609 15.4439 68.6072 15.442 68.6113 15.4446 68.6127 15.4302 68.6165 15.4138 68.6245 15.401 68.6192 15.389 68.6056 15.381 68.6029 15.355 68.6055 15.3519 68.6037 15.3434 68.5986 15.3202 68.5964 15.303 68.5913 15.3021 68.5883 15.3079 68.5858 15.3257 68.5833 15.3361 68.5745 15.3324 68.5723 15.2897 68.5799 15.2325 68.5816 15.2187 68.5778 15.2022 68.578 15.2009 68.5763 15.2083 68.569 15.2087 68.5621 15.193 68.5536 15.1911 68.5526 15.1883 68.544 15.1757 68.5402 15.1725 68.5366 15.1808 68.5326 15.2026 68.5313 15.2417 68.5344 15.2626 68.5318 15.2733 68.5281 15.2768 68.5212 15.2846 68.5164 15.2842 68.512 15.2913 68.5073 15.3078 68.505 15.34 68.508 15.3595 68.504 15.3512 68.4968 15.336 68.5012 15.3346 68.501 15.3191 68.4991 15.3026 68.5016 15.2882 68.5014 15.2799 68.504 15.2553 68.5237 15.2414 68.5219 15.2362 68.5187 15.2267 68.5169 15.2453 68.5081 15.2437 68.5052 15.2197 68.5079 15.2124 68.5034 15.2259 68.4966 15.2342 68.4961 15.2414 68.4932 15.2525 68.4842 15.2867 68.4753 15.2604 68.4675 15.2382 68.4723 15.2197 68.4715 15.2078 68.4678 15.1998 68.4614 15.2027 68.4489 15.1992 68.4462 15.1863 68.4415 15.1763 68.4418 15.1584 68.4315 15.1535 68.4256 15.1408 68.4261 15.1144 68.4059 15.1269 68.4018 15.1226 68.4005 15.1032 68.3943 15.089 68.3863 15.0735 68.373 15.0681 68.3573 15.0476 68.3516 15.0411 68.3448 15.0292 68.3413 15.0102 68.331 15 68.3284 14.9971 68.3276 14.9789 68.3169 14.9906 68.297 14.989 68.2945 14.9784 68.2775 14.9855 68.273 15 68.2688 15.0013 68.2684 15.0096 68.2697 15.0312 68.2795 15.0402 68.2803 15.0543 68.2867 15.0644 68.2881 15.0726 68.2915 15.0852 68.2927 15.0943 68.297 15.0823 68.2997 15.0592 68.2998 15.0507 68.3031 15.0523 68.3057 15.069 68.306 15.0793 68.3086 15.0995 68.304 15.1094 68.3079 15.1177 68.3089 15.1231 68.3096 15.1365 68.3183 15.1306 68.3268 15.1358 68.3277 15.1703 68.3288 15.1739 68.3275 15.1669 68.3222 15.1734 68.3213 15.1766 68.3173 15.1995 68.3349 15.213 68.3352 15.2248 68.341 15.2363 68.3422 15.2423 68.3524 15.2526 68.3591 15.2492 68.3637 15.2254 68.3701 15.2185 68.37 15.2122 68.3683 15.2094 68.3675 15.1966 68.3702 15.1871 68.367 15.1807 68.3713 15.1865 68.3746 15.2064 68.3747 15.2199 68.3733 15.2321 68.3743 15.2437 68.3711 15.2522 68.3719 15.2924 68.3903 15.3047 68.3926 15.3195 68.4009 15.3281 68.3994 15.3348 68.402 15.3467 68.4018 15.3577 68.4085 15.367 68.4105 15.3684 68.4283 15.3686 68.4308 15.3772 68.4314 15.3801 68.4262 15.3934 68.4197 15.404 68.4199 15.4258 68.4298 15.4391 68.4331 15.4774 68.4522 15.4961 68.4565 15.5051 68.4617 15.5037 68.4683 15.5085 68.4708 15.5212 68.4723 15.532 68.4757 15.5419 68.4839 15.5633 68.4936 15.5654 68.4981 15.5682 68.5041 15.5748 68.5069 15.5452 68.5153 15.5378 68.5192 15.5523 68.5188 15.5684 68.5154 15.5799 68.5108 15.5834 68.5057 15.58 68.4984 15.6055 68.4928 15.6124 68.4889 15.6036 68.487 15.58 68.4864 15.5684 68.4834 15.5145 68.4569 15.5088 68.454 15.4937 68.4403 15.4903 68.4314 15.4666 68.4194 15.4524 68.413 15.4346 68.4081 15.4099 68.4052 15.3815 68.3904 15.3717 68.3879 15.3664 68.3849 15.3648 68.3784 15.3559 68.373 15.3677 68.3712 15.3532 68.3621 15.3451 68.3633 15.3368 68.3646 15.3263 68.3643 15.32 68.3625 15.3192 68.3553 15.3249 68.3512 15.3441 68.3476 15.3591 68.3474 15.3753 68.3513 15.3845 68.3519 15.3896 68.3572 15.3965 68.3552 15.4061 68.3584 15.4132 68.3575 15.4174 68.3542 15.4244 68.3536 15.4344 68.3495 15.4394 68.3554 15.4441 68.3563 15.448 68.3539 15.4432 68.3452 15.4516 68.3463 15.4653 68.3425 15.4717 68.3437 15.4761 68.3517 15.4893 68.3573 15.4992 68.3573 15.5064 68.3541 15.4987 68.3471 15.5085 68.3436 15.5123 68.3374 15.5271 68.3359 15.5446 68.3394 15.5508 68.3358 15.5688 68.3358 15.5732 68.3337 15.5854 68.3342 15.59 68.3317 15.6002 68.3307 15.5991 68.3284 15.5741 68.3262 15.5724 68.3261 15.5713 68.3217 15.5596 68.3173 15.5668 68.3162 15.5807 68.3175 15.5796 68.3128 15.5841 68.3126 15.5976 68.315 15.6191 68.312 15.6581 68.3143 15.6538 68.3162 15.6571 68.3197 15.647 68.3221 15.6382 68.3265 15.6467 68.3313 15.642 68.3343 15.6532 68.3343 15.6633 68.3379 15.6711 68.3387 15.6824 68.3364 15.6901 68.3377 15.6894 68.342 15.6975 68.3442 15.699 68.3493 15.7151 68.3536 15.7141 68.3588 15.713 68.3648 15.7319 68.3722 15.7268 68.3748 15.7134 68.3738 15.7028 68.3694 15.699 68.3697 15.6943 68.3751 15.6806 68.3791 15.683 68.3813 15.7081 68.3809 15.717 68.3843 15.7355 68.385 15.7539 68.392 15.7546 68.3959 15.7385 68.4017 15.7401 68.4149 15.7566 68.4224 15.7688 68.4355 15.7693 68.436 15.7747 68.4367 15.7787 68.4339 15.7765 68.4164 15.7819 68.4108 15.789 68.41 15.7922 68.4057 15.7985 68.4035 15.8062 68.409 15.8224 68.4069 15.8323 68.4073 15.8385 68.4115 15.8349 68.4153 15.8344 68.4293 15.8245 68.4312 15.8204 68.4344 15.8087 68.4358 15.788 68.4446 15.7836 68.4488 15.7897 68.4532 15.772 68.4603 15.7769 68.4626 15.7797 68.4623 15.784 68.4619 15.7938 68.4584 15.8082 68.4418 15.8161 68.4384 15.8261 68.4381 15.8333 68.4352 15.846 68.4364 15.8523 68.4385 15.8732 68.454 15.8707 68.4604 15.8784 68.466 15.8693 68.4778 15.8728 68.4889 15.8677 68.4977 15.8696 68.5166 15.8805 68.5113 15.878 68.5032 15.8809 68.4932 15.8803 68.4911 15.8759 68.4764 15.8861 68.4674 15.8929 68.4677 15.8952 68.4664 15.8887 68.4567 15.8912 68.4524 15.8999 68.4484 15.8803 68.4449 15.8778 68.4429 15.8756 68.4376 15.8816 68.4282 15.8711 68.413 15.877 68.4098 15.8601 68.3956 15.8585 68.3861 15.8622 68.3842 15.8748 68.3858 15.876 68.3855 15.8836 68.3834 15.8955 68.3853 15.9094 68.3847 15.914 68.386 15.9168 68.3914 15.9254 68.3941 15.9224 68.3958 15.9256 68.3975 15.9343 68.3953 15.9477 68.3986 15.9586 68.3956 15.999 68.4107 15.9997 68.4232 16.0089 68.4366 16.0121 68.4492 16.0392 68.4633 16.0484 68.4655 16.0726 68.4713 16.0833 68.4754 16.0852 68.4837 16.0915 68.4879 16.0809 68.4943 16.0964 68.4993 16.1053 68.5162 16.1108 68.5166 16.1232 68.5127 16.1301 68.5146 16.1224 68.5198 16.1117 68.5219 16.1083 68.525 16.1175 68.5389 16.1173 68.544 16.1094 68.5494 16.0884 68.5548 16.0925 68.5582 16.0936 68.5581 16.1047 68.5573 16.1212 68.5522 16.127 68.5473 16.1252 68.536 16.1306 68.5325 16.1493 68.531 16.1628 68.5317 16.1944 68.5483 16.2247 68.5609 16.2359 68.5636 16.2588 68.5626 16.2778 68.5574 16.2913 68.5563 16.308 68.5592 16.3175 68.5657 16.3242 68.5666 16.3394 68.5684 16.4004 68.5699 16.4246 68.5665 16.451 68.5596 16.4618 68.5591 16.5162 68.5689 16.5171 68.5746 16.5266 68.5791 16.5122 68.5813 16.5088 68.5847 16.5104 68.5971 16.5002 68.6094 16.5004 68.6133 16.5302 68.6143 16.5431 68.6178 16.5686 68.6329 16.5756 68.6442 16.5955 68.6499 16.5935 68.6549 16.5964 68.6582 16.587 68.6607 16.5865 68.6648 16.6004 68.6669 16.6079 68.6742 16.5926 68.6772 16.5916 68.6833 16.5469 68.6877 16.5526 68.6923 16.5637 68.6931 16.5642 68.6947 16.5651 68.6973 16.5783 68.6973 16.5872 68.6995 16.5844 68.7051 16.592 68.7145 16.6003 68.7187 16.5937 68.7247 16.5957 68.7337 16.5919 68.7361 16.5793 68.7313 16.5715 68.7225 16.5502 68.722 16.5453 68.7237 16.5602 68.7338 16.5785 68.7386 16.5715 68.7485 16.5651 68.7508 16.573 68.7591 16.568 68.7662 16.5637 68.7723 16.566 68.7781 16.5799 68.7758 16.5916 68.7864 16.591 68.7907 16.5998 68.8004 16.5851 68.801 16.5742 68.8039 16.5621 68.8039 16.5527 68.8013 16.5494 68.7902 16.5422 68.7887 16.5376 68.7916 16.5403 68.8002 16.5554 68.8193 16.5602 68.8227 16.5769 68.8267 16.5925 68.8277 16.5928 68.8281 16.5988 68.8346 16.5968 68.8375 16.5602 68.8413 16.5495 68.8363 16.5418 68.8248 16.5214 68.8183 16.516 68.8218 16.4926 68.8239 16.4863 68.8283 16.4945 68.8467 16.4841 68.8572 16.4745 68.8616 16.4576 68.861 16.4363 68.855 16.4233 68.8569 16.4039 68.8598 16.3595 68.8749 16.3417 68.8842 16.3045 68.8961 16.2895 68.9041 16.2834 68.9165 16.2754 68.9224 16.27 68.9231 16.2623 68.9212 16.2558 68.9237 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_0.poly deleted file mode 100644 index cd1543f819c..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_0.poly +++ /dev/null @@ -1,2 +0,0 @@ -6 -26 1.15625 -0.52 1.31818 -0.258065 1.11765 0.52 0.555556 0.782609 0.15 0.538462 0.105263 0.291667 -0.0967742 0.117647 -0.384615 0.107143 -0.5625 0.344828 -0.782609 0.473684 -1.16129 0.387097 -1.36842 0.225 -1.49515 -0.0625 -1.49515 -0.504854 -1.18519 -0.809524 -0.785714 -0.888889 -0.565217 -0.535714 -0.657895 -0.266667 -0.772727 -0.0714286 -0.409091 -0.277778 -0.05 -0.464286 0.275862 -0.263158 0.409091 0.0526316 0.782609 0.2 0.96 -0.258065 0.6875 -0.482759 3 0.833333 0.375 0.507937 0.238095 0.615385 0.565217 3 0.575758 0.592593 0.464286 0.242424 0.277778 0.409091 3 0.0454545 -0.263158 -0.266667 -0.217391 -0.208333 0.00806452 4 -0.590909 0.12 -0.733333 0.0434783 -0.988636 0.153846 -0.913043 0.294118 9 -1.17857 0.0144928 -0.916667 -0.0526316 -0.769231 -0.3 -0.769231 -0.517241 -0.972973 -0.692308 -1.17241 -0.676471 -1.34211 -0.448276 -1.36842 -0.245283 -1.26923 -0.0967742 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_1.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_1.poly deleted file mode 100644 index 0f8cd3468cd..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_1.poly +++ /dev/null @@ -1,2 +0,0 @@ -2 -7 -0.0967742 0.852941 -0.791667 0.869565 -0.954545 0.741935 -0.885714 0.575758 -0.590909 0.517241 -0.454545 0.35 -0.245283 0.333333 5 -0.230769 0.761905 -0.339286 0.541667 -0.511111 0.592593 -0.73913 0.642857 -0.745455 0.772727 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_2.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_2.poly deleted file mode 100644 index ead7cea3e41..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_2.poly +++ /dev/null @@ -1,2 +0,0 @@ -1 -10 0.444444 -0.882353 0.583333 -0.676471 0.538462 -0.495146 0.69697 -0.315789 0.909091 -0.217391 0.684211 0.0740741 0.535714 -0.0175439 0.416667 -0.272727 0.133333 -0.529412 0.133333 -0.769231 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_3.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_3.poly deleted file mode 100644 index 85cf6b69a1e..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/simple_3.poly +++ /dev/null @@ -1,2 +0,0 @@ -2 -5 -0.894737 -0.448276 -0.916667 -0.210526 -1.18519 -0.230769 -1.23077 -0.4 -1.04545 -0.5625 3 -1.05882 -0.448276 -1.09091 -0.3125 -0.988636 -0.368421 \ No newline at end of file diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/single_split.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/single_split.poly deleted file mode 100644 index 20a1a2405f1..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/single_split.poly +++ /dev/null @@ -1,7 +0,0 @@ -1 -5 --0.8 -0.8 -0.0 -0.6 -0.8 -0.8 -0.8 0.8 --0.8 0.8 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/split_at_zero_0.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/split_at_zero_0.poly deleted file mode 100644 index e555f3e54d6..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/split_at_zero_0.poly +++ /dev/null @@ -1,14 +0,0 @@ -1 -11 -0 0 -3 0 -4 1 -5 0 -9 0 -9 1 -5 1 -5 2 -3 2 -3 1 -0 1 - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/square.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/square.poly deleted file mode 100644 index 554320624b9..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/square.poly +++ /dev/null @@ -1,6 +0,0 @@ -1 -4 --0.8 -0.8 -0.8 -0.8 -0.8 0.8 --0.8 0.8 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/star.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/star.poly deleted file mode 100644 index d3074f6d78c..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/star.poly +++ /dev/null @@ -1,13 +0,0 @@ -1 -8 --100 -100 -0 -1200 -100 -100 -1200 0 -100 100 -0 1200 --100 100 --1200 0 - - - diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/data/triangle.poly b/Straight_skeleton_2/demo/Straight_skeleton_2/data/triangle.poly deleted file mode 100644 index 674ce10f93d..00000000000 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/data/triangle.poly +++ /dev/null @@ -1,5 +0,0 @@ -1 -3 --0.8 -0.8 -0.8 -0.8 -0.0 0.8 diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/ss_types.h b/Straight_skeleton_2/demo/Straight_skeleton_2/ss_types.h index bd39ab574ba..53c4d0a0b6b 100644 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/ss_types.h +++ b/Straight_skeleton_2/demo/Straight_skeleton_2/ss_types.h @@ -37,6 +37,7 @@ typedef boost::shared_ptr SSkelPtr ; extern void draw_point ( Point const& v, CGAL::Color c ) ; extern void draw_segment( Point const& s, Point const& t, CGAL::Color c ) ; +extern void wait_on_user() ; struct Visitor { @@ -140,6 +141,7 @@ struct Visitor if ( node->is_contour() ) { ++ mVertexCount1 ; + wait_on_user(); //printf("\rPropagation: %d/%d (%d%%)",mVertexCount1,mTotalVertices,(mVertexCount1*100/mTotalVertices)); } } diff --git a/Straight_skeleton_2/demo/Straight_skeleton_2/straight_skeleton_2.cpp b/Straight_skeleton_2/demo/Straight_skeleton_2/straight_skeleton_2.cpp index abf69cee14c..acafb4518b4 100644 --- a/Straight_skeleton_2/demo/Straight_skeleton_2/straight_skeleton_2.cpp +++ b/Straight_skeleton_2/demo/Straight_skeleton_2/straight_skeleton_2.cpp @@ -543,6 +543,10 @@ void draw_point( Point const& v, CGAL::Color c ) mainwin->draw_point(v,c); } +void wait_on_user() +{ +} + } int diff --git a/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_2.h b/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_2.h index d9d07bde04d..ead67a716b5 100644 --- a/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_2.h +++ b/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_2.h @@ -24,6 +24,8 @@ #include #include +#include + #include CGAL_BEGIN_NAMESPACE @@ -56,10 +58,11 @@ private: typedef std::vector Halfedge_vector ; - typedef typename Traits::Segment_2 Segment_2 ; - typedef typename Traits::Trisegment_2 Trisegment_2 ; + typedef typename Traits::Segment_2 Segment_2 ; + typedef typename Traits::Trisegment_2 Trisegment_2 ; + typedef typename Traits::Seeded_trisegment_2 Seeded_trisegment_2 ; - typedef CGAL_SS_i::Triedge Triedge ; + typedef CGAL_SS_i::Triedge Triedge ; bool handled_assigned( Halfedge_const_handle aH ) const { @@ -87,7 +90,7 @@ private: return K().construct_segment_2_object()(s,t); } - Segment_2 GetSkeletonNodeThirdSegment( Vertex_const_handle aSeed, Halfedge_const_handle aEA, Halfedge_const_handle aEB ) const + Triedge GetTriedge( Vertex_const_handle aSeed ) const { typedef typename Ss::Vertex Vertex ; typedef typename Vertex::Defining_contour_halfedges_const_circulator circ ; @@ -95,41 +98,63 @@ private: circ cb = aSeed->defining_contour_halfedges_begin() ; circ c = cb ; - Halfedge_const_handle lEC ; + Halfedge_const_handle lE[3] ; + + int d = 0 ; do { - Halfedge_const_handle h = *c; - - if ( h != aEA && h != aEB ) - { - lEC = h ; - break ; - } - ++ c ; + lE[d++] = *c++; } - while( c != cb ) ; + while( d < 3 && c != cb ) ; - CGAL_postcondition( handle_assigned(lEC) ) ; - - return CreateSegment(lEC); + Triedge rTriedge(lE[0],lE[1],lE[2]); + + CGAL_postcondition(rTriedge.is_valid()); + + return rTriedge ; } Trisegment_2 CreateTrisegment ( Halfedge_const_handle aE0 , Halfedge_const_handle aE1 , Halfedge_const_handle aE2 - , Vertex_const_handle aLSeed - , Vertex_const_handle aRSeed ) const { - boost::optional lS01, lS12 ; - - if ( handle_assigned(aLSeed) && aLSeed->is_skeleton() ) - lS01 = CGAL_SS_i::cgal_make_optional(GetSkeletonNodeThirdSegment(aLSeed,aE0,aE1)) ; - if ( handle_assigned(aRSeed) && aRSeed->is_skeleton() ) - lS12 = CGAL_SS_i::cgal_make_optional(GetSkeletonNodeThirdSegment(aRSeed,aE1,aE2)) ; - - return *Construct_ss_trisegment_2(mTraits)(CreateSegment(aE0),CreateSegment(aE1),CreateSegment(aE2),lS01,lS12); + return *Construct_ss_trisegment_2(mTraits)(CreateSegment(aE0),CreateSegment(aE1),CreateSegment(aE2)); + } + + Trisegment_2 CreateTrisegment ( Triedge const& aTriedge ) const + { + return *Construct_ss_trisegment_2(mTraits)(CreateSegment(aTriedge.e0()),CreateSegment(aTriedge.e1()),CreateSegment(aTriedge.e2())); + } + + Trisegment_2 CreateTrisegment ( Vertex_const_handle aSeed ) const + { + return aSeed->is_skeleton() ? CreateTrisegment(GetTriedge(aSeed)) : Trisegment_2::null() ; + } + + Seeded_trisegment_2 CreateSeededTrisegment ( Halfedge_const_handle aE0 + , Halfedge_const_handle aE1 + , Halfedge_const_handle aE2 + , Vertex_const_handle aLSeed + , Vertex_const_handle aRSeed + ) const + { + return Construct_ss_seeded_trisegment_2(mTraits)(CreateTrisegment(aE0,aE1,aE1) + ,CreateTrisegment(aLSeed) + ,CreateTrisegment(aRSeed) + ); + } + + Seeded_trisegment_2 CreateSeededTrisegment ( Vertex_const_handle aNode + , Vertex_const_handle aLSeed + , Vertex_const_handle aRSeed + ) const + { + return Construct_ss_seeded_trisegment_2(mTraits)(CreateTrisegment(aNode) + ,CreateTrisegment(aLSeed) + ,CreateTrisegment(aRSeed) + ); } Comparison_result Compare_offset_against_event_time( FT aT, Halfedge_const_handle aBisector, Halfedge_const_handle aNextBisector ) const @@ -148,7 +173,7 @@ private: Vertex_const_handle lLSeed = aBisector->opposite()->vertex(); Vertex_const_handle lRSeed = aBisector->vertex(); - return Compare_offset_against_event_time_2(mTraits)(aT,CreateTrisegment(lBorderA,lBorderB,lBorderC,lLSeed,lRSeed)); + return Compare_offset_against_event_time_2(mTraits)(aT,CreateSeededTrisegment(lBorderA,lBorderB,lBorderC,lLSeed,lRSeed)); } boost::optional Construct_offset_point( FT aT, Halfedge_const_handle aBisector ) const @@ -159,14 +184,23 @@ private: Halfedge_const_handle lBorderA = aBisector->defining_contour_edge(); Halfedge_const_handle lBorderB = aBisector->opposite()->defining_contour_edge(); - Vertex_const_handle lSeed = aBisector->opposite()->vertex(); - - boost::optional lSAB ; - if ( lSeed->is_skeleton() ) - lSAB = CGAL_SS_i::cgal_make_optional(GetSkeletonNodeThirdSegment(lSeed,lBorderA,lBorderB)) ; - - return Construct_offset_point_2(mTraits)(aT,CreateSegment(lBorderA),CreateSegment(lBorderB),lSAB); + Seeded_trisegment_2 lSrcEvent ; + + Vertex_const_handle lNode = aBisector->opposite()->vertex(); + + if ( lNode->is_skeleton() ) + { + Vertex_const_handle lLSeed = aBisector->prev()->opposite()->vertex(); + Vertex_const_handle lRSeed = aBisector->opposite()->next()->vertex(); + lSrcEvent = CreateSeededTrisegment(lNode,lLSeed,lRSeed); + } + + return Construct_offset_point_2(mTraits)(aT + ,CreateSegment(lBorderA) + ,CreateSegment(lBorderB) + ,lSrcEvent + ); } void ResetVisitedBisectorsMap(); diff --git a/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_traits_2.h b/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_traits_2.h index 961e18f99f2..b9a7fb88e46 100644 --- a/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_traits_2.h +++ b/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_traits_2.h @@ -31,14 +31,14 @@ struct Compare_offset_against_event_time_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::FT FT ; - typedef typename Base::Segment_2 Segment_2 ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::FT FT ; + typedef typename Base::Segment_2 Segment_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef Uncertain result_type ; typedef Arity_tag<2> Arity ; - Uncertain operator() ( FT aT, Trisegment_2 const& aE ) const + Uncertain operator() ( FT aT, Seeded_trisegment_2 const& aE ) const { return compare_offset_against_isec_timeC2(aT,aE) ; } @@ -50,25 +50,24 @@ struct Construct_offset_point_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::FT FT ; - typedef typename Base::Point_2 Point_2 ; - typedef typename Base::Segment_2 Segment_2 ; + typedef typename Base::FT FT ; + typedef typename Base::Point_2 Point_2 ; + typedef typename Base::Segment_2 Segment_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; - typedef boost::optional Optional_segment_2 ; - - typedef boost::optional< Point_2 > result_type ; + typedef boost::optional result_type ; typedef Arity_tag<3> Arity ; - result_type operator() ( FT const& aT - , Segment_2 const& aE0 - , Segment_2 const& aE1 - , Optional_segment_2 const& aE01 + result_type operator() ( FT const& aT + , Segment_2 const& aE0 + , Segment_2 const& aE1 + , Seeded_trisegment_2 const& aNode ) const { bool ok = false ; - result_type p = construct_offset_pointC2(aT,aE0,aE1,aE01); + result_type p = construct_offset_pointC2(aT,aE0,aE1,aNode); if ( p ) ok = is_point_calculation_accurate(aT,*p,aE0,aE1); @@ -108,6 +107,7 @@ struct Polygon_offset_builder_traits_2_functors typedef CGAL_SS_i::Compare_offset_against_event_time_2 Compare_offset_against_event_time_2 ; typedef CGAL_SS_i::Construct_offset_point_2 Construct_offset_point_2 ; typedef CGAL_SS_i::Construct_ss_trisegment_2 Construct_ss_trisegment_2 ; + typedef CGAL_SS_i::Construct_ss_seeded_trisegment_2 Construct_ss_seeded_trisegment_2 ; } ; template @@ -119,7 +119,8 @@ struct Polygon_offset_builder_traits_2_base typedef typename K::Point_2 Point_2 ; typedef typename K::Segment_2 Segment_2 ; - typedef CGAL_SS_i::Trisegment_2 Trisegment_2 ; + typedef CGAL_SS_i::Trisegment_2 Trisegment_2 ; + typedef CGAL_SS_i::Seeded_trisegment_2 Seeded_trisegment_2 ; template F get( F const* = 0 ) const { return F(); } } ; @@ -136,8 +137,9 @@ public: typedef Unfiltered_predicate_adaptor Compare_offset_against_event_time_2 ; - typedef typename Unfiltering::Construct_offset_point_2 Construct_offset_point_2 ; - typedef typename Unfiltering::Construct_ss_trisegment_2 Construct_ss_trisegment_2 ; + typedef typename Unfiltering::Construct_offset_point_2 Construct_offset_point_2 ; + typedef typename Unfiltering::Construct_ss_trisegment_2 Construct_ss_trisegment_2 ; + typedef typename Unfiltering::Construct_ss_seeded_trisegment_2 Construct_ss_seeded_trisegment_2 ; } ; @@ -192,6 +194,8 @@ public: > Construct_ss_trisegment_2 ; + typedef typename Unfiltering::Construct_ss_seeded_trisegment_2 Construct_ss_seeded_trisegment_2 ; + } ; template diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h index 518994b57d4..b5e1c508617 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h @@ -26,6 +26,76 @@ // CGAL_BEGIN_NAMESPACE +namespace CGAL_SS_i +{ + +// +// This record encapsulates the defining contour halfedges for a node (both contour and skeleton) +// +template +struct Triedge +{ + typedef Handle_ Handle ; + + typedef Triedge Self ; + + Triedge() {} + + // Contour nodes (input polygon vertices) have just 2 defining contour edges + Triedge ( Handle aE0, Handle aE1 ) + { + mE[0] = aE0 ; + mE[1] = aE1 ; + } + + // Skeleton nodes (offset polygon vertices) have 3 defining contour edges + Triedge ( Handle aE0, Handle aE1 , Handle aE2 ) + { + mE[0] = aE0 ; + mE[1] = aE1 ; + mE[2] = aE2 ; + } + + Handle e( unsigned idx ) const { CGAL_assertion(idx<3); return mE[idx]; } + + Handle e0() const { return e(0); } + Handle e1() const { return e(1); } + Handle e2() const { return e(2); } + + bool is_valid() const { return e0() != e1() && e1() != e2() ; } + + // returns 1 if aE is one of the halfedges stored in this triedge, 0 otherwise. + int contains ( Handle aE ) const + { + return aE == e0() || aE == e1() || aE == e2() ? 1 : 0 ; + } + + // Returns the number of common halfedges in the two triedges x and y + static int CountInCommon( Self const& x, Self const& y ) + { + return x.contains(y.e0()) + x.contains(y.e1()) + x.contains(y.e2()) ; + } + + // Returns true if the triedges store the same 3 halfedges (in any order) + friend bool operator == ( Self const& x, Self const& y ) { return CountInCommon(x,y) == 3 ; } + + friend bool operator != ( Self const& x, Self const& y ) { return !(x==y) ; } + + friend Self operator & ( Self const& x, Self const& y ) + { + return Self(x.e0(), x.e1(), ( x.e0() == y.e0() || x.e1() == y.e0() ) ? y.e1() : y.e0() ) ; + } + + friend std::ostream& operator<< ( std::ostream& ss, Self const& t ) + { + return ss << "{E" << t.e0()->id() << ",E" << t.e1()->id() << ",E" << t.e2()->id() << "}" ; + } + + Handle mE[3]; +} ; + +} // namespace CGAL_SS_i + enum Trisegment_collinearity { TRISEGMENT_COLLINEARITY_NONE diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h index 3c7ecbc56c9..84a926cef9b 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h @@ -88,21 +88,21 @@ Straight_skeleton_builder_2::FindEdgeEvent( Vertex_handle aLNode, Verte if ( lTriedge.is_valid() ) { - Trisegment_2 lTrisegment = CreateTrisegment(lTriedge,aLNode,aRNode); + Seeded_trisegment_2 lSTrisegment = CreateSeededTrisegment(lTriedge,aLNode,aRNode); - if ( ExistEvent(lTrisegment) ) + if ( ExistEvent(lSTrisegment) ) { bool lAccepted = true ; - if ( IsNewEventInThePast(lTrisegment,aLNode) ) + if ( IsNewEventInThePast(lSTrisegment,aLNode) ) lAccepted = false ; - if ( IsNewEventInThePast(lTrisegment,aRNode) ) + if ( IsNewEventInThePast(lSTrisegment,aRNode) ) lAccepted = false ; if ( lAccepted ) { - rResult = EventPtr( new EdgeEvent( lTriedge, lTrisegment, aLNode, aRNode ) ) ; + rResult = EventPtr( new EdgeEvent( lTriedge, lSTrisegment, aLNode, aRNode ) ) ; mVisitor.on_edge_event_created(aLNode, aRNode) ; @@ -114,9 +114,9 @@ Straight_skeleton_builder_2::FindEdgeEvent( Vertex_handle aLNode, Verte } template -bool Straight_skeleton_builder_2::IsInverseSplitEventCoincident( Vertex_handle const& aReflexOppN - , Triedge const& aEventTriedge - , Trisegment_2 const& aEventTrisegment +bool Straight_skeleton_builder_2::IsInverseSplitEventCoincident( Vertex_handle const& aReflexOppN + , Triedge const& aEventTriedge + , Seeded_trisegment_2 const& aEventSTrisegment ) { Triedge lOppTriedge = GetTriedge(aReflexOppN); @@ -126,11 +126,17 @@ bool Straight_skeleton_builder_2::IsInverseSplitEventCoincident( Vertex Vertex_handle null ; - Trisegment_2 lOppLTrisegment = CreateTrisegment(lOppLTriedge,aReflexOppN,null); - Trisegment_2 lOppRTrisegment = CreateTrisegment(lOppRTriedge,aReflexOppN,null); + Seeded_trisegment_2 lOppLSTrisegment = CreateSeededTrisegment(lOppLTriedge,aReflexOppN,null); + Seeded_trisegment_2 lOppRSTrisegment = CreateSeededTrisegment(lOppRTriedge,aReflexOppN,null); - return ( ( ExistEvent(lOppLTrisegment) && AreEventsSimultaneous(aEventTrisegment,lOppLTrisegment) ) - || ( ExistEvent(lOppRTrisegment) && AreEventsSimultaneous(aEventTrisegment,lOppRTrisegment) ) + return ( ( lOppLSTrisegment.event().collinearity() != TRISEGMENT_COLLINEARITY_02 + && ExistEvent(lOppLSTrisegment) + && AreEventsSimultaneous(aEventSTrisegment,lOppLSTrisegment) + ) + || ( lOppRSTrisegment.event().collinearity() != TRISEGMENT_COLLINEARITY_02 + && ExistEvent(lOppRSTrisegment) + && AreEventsSimultaneous(aEventSTrisegment,lOppRSTrisegment) + ) ) ; } @@ -143,19 +149,19 @@ Straight_skeleton_builder_2::IsPseudoSplitEvent( EventPtr const& aEvent SplitEvent& lEvent = dynamic_cast(*aEvent) ; - Triedge lEventTriedge = lEvent.triedge(); - Trisegment_2 lEventTrisegment = lEvent.trisegment(); - Vertex_handle lSeedN = lEvent.seed0(); + Triedge lEventTriedge = lEvent.triedge(); + Seeded_trisegment_2 lEventSTrisegment = lEvent.strisegment(); + Vertex_handle lSeedN = lEvent.seed0(); Vertex_handle lOppPrevN = GetPrevInLAV(aOppN) ; - if ( IsReflex(lOppPrevN) && IsInverseSplitEventCoincident(lOppPrevN,lEventTriedge,lEventTrisegment) ) + if ( IsReflex(lOppPrevN) && IsInverseSplitEventCoincident(lOppPrevN,lEventTriedge,lEventSTrisegment) ) { lIsPseudoSplitEvent = true ; lCoupleIsPrev = true ; CGAL_STSKEL_BUILDER_TRACE(1,"Pseudo-split-event found against N" << lOppPrevN->id() ) ; } - else if ( IsReflex(aOppN) && IsInverseSplitEventCoincident(aOppN,lEventTriedge,lEventTrisegment) ) + else if ( IsReflex(aOppN) && IsInverseSplitEventCoincident(aOppN,lEventTriedge,lEventSTrisegment) ) { lIsPseudoSplitEvent = true ; lCoupleIsPrev = false ; @@ -168,13 +174,13 @@ Straight_skeleton_builder_2::IsPseudoSplitEvent( EventPtr const& aEvent { if ( lCoupleIsPrev ) { - rPseudoSplitEvent = EventPtr( new PseudoSplitEvent(lEventTriedge,lEventTrisegment,lOppPrevN,lSeedN) ) ; + rPseudoSplitEvent = EventPtr( new PseudoSplitEvent(lEventTriedge,lEventSTrisegment,lOppPrevN,lSeedN) ) ; mVisitor.on_pseudo_split_event_created(lOppPrevN,lSeedN) ; } else { - rPseudoSplitEvent = EventPtr( new PseudoSplitEvent(lEventTriedge, lEventTrisegment, lSeedN, aOppN) ) ; + rPseudoSplitEvent = EventPtr( new PseudoSplitEvent(lEventTriedge, lEventSTrisegment, lSeedN, aOppN) ) ; mVisitor.on_pseudo_split_event_created(lSeedN,aOppN) ; } @@ -201,13 +207,13 @@ void Straight_skeleton_builder_2::CollectSplitEvent( Vertex_handle aNod { Vertex_handle null ; - Trisegment_2 lTrisegment = CreateTrisegment(aTriedge,aNode,null); + Seeded_trisegment_2 lSTrisegment = CreateSeededTrisegment(aTriedge,aNode,null); - if ( ExistEvent(lTrisegment) ) + if ( lSTrisegment.event().collinearity() != TRISEGMENT_COLLINEARITY_02 && ExistEvent(lSTrisegment) ) { - if ( !IsNewEventInThePast(lTrisegment,aNode) ) + if ( !IsNewEventInThePast(lSTrisegment,aNode) ) { - EventPtr lEvent = EventPtr( new SplitEvent (aTriedge,lTrisegment,aNode) ) ; + EventPtr lEvent = EventPtr( new SplitEvent (aTriedge,lSTrisegment,aNode) ) ; mVisitor.on_split_event_created(aNode) ; @@ -555,7 +561,7 @@ Straight_skeleton_builder_2::ConstructEdgeEventNode( EdgeEvent& aEvent mSLAV.push_back(lNewNode); InitVertexData(lNewNode); - SetSkeletonNodeTrisegment(lNewNode,aEvent.trisegment()); + SetSeededTrisegment(lNewNode,aEvent.strisegment()); Halfedge_handle lLOBisector = lLSeed->primary_bisector(); Halfedge_handle lROBisector = lRSeed->primary_bisector(); @@ -687,8 +693,8 @@ Straight_skeleton_builder_2::ConstructSplitEventNodes( SplitEvent& aEve InitVertexData(lNodeA); InitVertexData(lNodeB); - SetSkeletonNodeTrisegment(lNodeA,aEvent.trisegment()); - SetSkeletonNodeTrisegment(lNodeB,aEvent.trisegment()); + SetSeededTrisegment(lNodeA,aEvent.strisegment()); + SetSeededTrisegment(lNodeB,aEvent.strisegment()); Vertex_handle lSeed = aEvent.seed0() ; @@ -756,8 +762,8 @@ Straight_skeleton_builder_2::ConstructPseudoSplitEventNodes( PseudoSpli InitVertexData(lNewNodeA); InitVertexData(lNewNodeB); - SetSkeletonNodeTrisegment(lNewNodeA,aEvent.trisegment()); - SetSkeletonNodeTrisegment(lNewNodeB,aEvent.trisegment()); + SetSeededTrisegment(lNewNodeA,aEvent.strisegment()); + SetSeededTrisegment(lNewNodeB,aEvent.strisegment()); Halfedge_handle lLOBisector = lLSeed->primary_bisector(); Halfedge_handle lROBisector = lRSeed->primary_bisector(); @@ -1114,8 +1120,10 @@ void Straight_skeleton_builder_2::HandlePseudoSplitEvent( EventPtr aEve SetupPseudoSplitEventNode(lNewNode_L,lNewNode_L_DefiningBorderA,lNewNode_L_DefiningBorderB) ; SetupPseudoSplitEventNode(lNewNode_R,lNewNode_R_DefiningBorderA,lNewNode_R_DefiningBorderB) ; + UpdatePQ(lNewNode_L); UpdatePQ(lNewNode_R); + mVisitor.on_pseudo_split_event_processed(lLSeed,lRSeed,lNewNode_L,lNewNode_R) ; } diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h index 4593912b5a5..3c7084f43dc 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h @@ -20,77 +20,13 @@ #include +#include + CGAL_BEGIN_NAMESPACE namespace CGAL_SS_i { -// -// This record encapsulates the defining contour halfedges for a node (both contour and skeleton) -// -template -struct Triedge -{ - typedef SSkel_ SSkel ; - typedef typename SSkel::Halfedge_handle Halfedge_handle ; - - typedef Triedge Self ; - - Triedge() {} - - // Contour nodes (input polygon vertices) have just 2 defining contour edges - Triedge ( Halfedge_handle aE0, Halfedge_handle aE1 ) - { - mE[0] = aE0 ; - mE[1] = aE1 ; - } - - // Skeleton nodes (offset polygon vertices) have 3 defining contour edges - Triedge ( Halfedge_handle aE0, Halfedge_handle aE1 , Halfedge_handle aE2 ) - { - mE[0] = aE0 ; - mE[1] = aE1 ; - mE[2] = aE2 ; - } - - Halfedge_handle e( unsigned idx ) const { CGAL_assertion(idx<3); return mE[idx]; } - - Halfedge_handle e0() const { return e(0); } - Halfedge_handle e1() const { return e(1); } - Halfedge_handle e2() const { return e(2); } - - bool is_valid() const { return e0() != e1() && e1() != e2() ; } - - // returns 1 if aE is one of the halfedges stored in this triedge, 0 otherwise. - int contains ( Halfedge_handle aE ) const - { - return aE == e0() || aE == e1() || aE == e2() ? 1 : 0 ; - } - - // Returns the number of common halfedges in the two triedges x and y - static int CountInCommon( Self const& x, Self const& y ) - { - return x.contains(y.e0()) + x.contains(y.e1()) + x.contains(y.e2()) ; - } - - // Returns true if the triedges store the same 3 halfedges (in any order) - friend bool operator == ( Self const& x, Self const& y ) { return CountInCommon(x,y) == 3 ; } - - friend bool operator != ( Self const& x, Self const& y ) { return !(x==y) ; } - - friend Self operator & ( Self const& x, Self const& y ) - { - return Self(x.e0(), x.e1(), ( x.e0() == y.e0() || x.e1() == y.e0() ) ? y.e1() : y.e0() ) ; - } - - friend std::ostream& operator<< ( std::ostream& ss, Self const& t ) - { - return ss << "{E" << t.e0()->id() << ",E" << t.e1()->id() << ",E" << t.e2()->id() << "}" ; - } - - Halfedge_handle mE[3]; -} ; - template class Event_2 : public Ref_counted_base { @@ -103,24 +39,23 @@ public: typedef boost::intrusive_ptr SelfPtr ; - typedef typename Traits::Point_2 Point_2 ; - typedef typename Traits::FT FT ; - typedef typename Traits::Trisegment_2 Trisegment_2 ; - - typedef Triedge Triedge ; + typedef typename Traits::Point_2 Point_2 ; + typedef typename Traits::FT FT ; + typedef typename Traits::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef typename SSkel::Halfedge_handle Halfedge_handle ; typedef typename SSkel::Vertex_handle Vertex_handle ; + typedef Triedge Triedge ; enum Type { cEdgeEvent, cSplitEvent, cPseudoSplitEvent } ; public: - Event_2 ( Triedge const& aTriedge, Trisegment_2 const& aTrisegment ) + Event_2 ( Triedge const& aTriedge, Seeded_trisegment_2 const& aSTrisegment ) : - mTriedge (aTriedge) - ,mTrisegment(aTrisegment) + mTriedge (aTriedge) + ,mSTrisegment(aSTrisegment) {} virtual ~ Event_2() {} @@ -130,10 +65,10 @@ public: virtual Vertex_handle seed0() const = 0 ; virtual Vertex_handle seed1() const = 0 ; - Triedge const& triedge () const { return mTriedge ; } - Trisegment_2 const& trisegment() const { return mTrisegment; } - Point_2 const& point () const { return mP ; } - FT time () const { return mTime ; } + Triedge const& triedge () const { return mTriedge ; } + Seeded_trisegment_2 const& strisegment() const { return mSTrisegment; } + Point_2 const& point () const { return mP ; } + FT time () const { return mTime ; } void SetTimeAndPoint( FT aTime, Point_2 const& aP ) { mTime = aTime ; mP = aP ; } @@ -142,7 +77,7 @@ public: ss << "[" ; e.dump(ss); ss << " p=(" << e.point().x() << "," << e.point().y() << ") t=" << e.time() << "] " - << trisegment_collinearity_to_string(e.trisegment().collinearity()) ; + << trisegment_collinearity_to_string(e.strisegment().event().collinearity()) ; return ss ; } @@ -155,10 +90,10 @@ protected : private : - Triedge mTriedge ; - Trisegment_2 mTrisegment ; - Point_2 mP ; - FT mTime ; + Triedge mTriedge ; + Seeded_trisegment_2 mSTrisegment ; + Point_2 mP ; + FT mTime ; } ; template @@ -172,19 +107,19 @@ class Edge_event_2 : public Event_2 typedef typename SSkel::Halfedge_handle Halfedge_handle ; typedef typename SSkel::Vertex_handle Vertex_handle ; - typedef typename Base::Type Type ; - typedef typename Base::Triedge Triedge ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Type Type ; + typedef typename Base::Triedge Triedge ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; public: - Edge_event_2 ( Triedge const& aTriedge - , Trisegment_2 const& aTrisegment - , Vertex_handle aLSeed - , Vertex_handle aRSeed + Edge_event_2 ( Triedge const& aTriedge + , Seeded_trisegment_2 const& aSTrisegment + , Vertex_handle aLSeed + , Vertex_handle aRSeed ) : - Base(aTriedge,aTrisegment) + Base(aTriedge,aSTrisegment) , mLSeed(aLSeed) , mRSeed(aRSeed) {} @@ -219,18 +154,18 @@ class Split_event_2 : public Event_2 typedef typename SSkel::Halfedge_handle Halfedge_handle ; typedef typename SSkel::Vertex_handle Vertex_handle ; - typedef typename Base::Type Type ; - typedef typename Base::Triedge Triedge ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Type Type ; + typedef typename Base::Triedge Triedge ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; public: - Split_event_2 ( Triedge const& aTriedge - , Trisegment_2 const& aTrisegment - , Vertex_handle aSeed + Split_event_2 ( Triedge const& aTriedge + , Seeded_trisegment_2 const& aSTrisegment + , Vertex_handle aSeed ) : - Base(aTriedge,aTrisegment) + Base(aTriedge,aSTrisegment) , mSeed(aSeed) {} @@ -268,19 +203,19 @@ class Pseudo_split_event_2 : public Event_2 typedef typename SSkel::Halfedge_handle Halfedge_handle ; typedef typename SSkel::Vertex_handle Vertex_handle ; - typedef typename Base::Type Type ; - typedef typename Base::Triedge Triedge ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Type Type ; + typedef typename Base::Triedge Triedge ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; public: - Pseudo_split_event_2 ( Triedge const& aTriedge - , Trisegment_2 const& aTrisegment - , Vertex_handle aSeed - , Vertex_handle aOppositeNode + Pseudo_split_event_2 ( Triedge const& aTriedge + , Seeded_trisegment_2 const& aSTrisegment + , Vertex_handle aSeed + , Vertex_handle aOppositeNode ) : - Base(aTriedge,aTrisegment) + Base(aTriedge,aSTrisegment) , mSeed(aSeed) , mOppNode(aOppositeNode) {} diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h index 244d2242601..1f18a63187d 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h @@ -19,6 +19,7 @@ #define CGAL_STRAIGHT_SKELETON_BUILDER_TRAITS_2_AUX_H 1 #include +#include #include #include #include @@ -37,6 +38,7 @@ # include # include bool sEnableTraitsTrace = false ; +# define CGAL_STSKEL_TRAITS_ENABLE_TRACE sEnableTraitsTrace = true ; # define CGAL_STSKEL_TRAITS_ENABLE_TRACE_IF(cond) if ((cond)) sEnableTraitsTrace = true ; # define CGAL_STSKEL_TRAITS_DISABLE_TRACE sEnableTraitsTrace = false; # define CGAL_STSKEL_TRAITS_TRACE(m) \ @@ -48,8 +50,9 @@ bool sEnableTraitsTrace = false ; Straight_skeleton_traits_external_trace(s); \ } #else +# define CGAL_STSKEL_TRAITS_ENABLE_TRACE # define CGAL_STSKEL_TRAITS_ENABLE_TRACE_IF(cond) -# define CGAL_STSKEL_TRAITS_DISALBE_TRACE +# define CGAL_STSKEL_TRAITS_DISABLE_TRACE # define CGAL_STSKEL_TRAITS_TRACE(m) #endif @@ -206,7 +209,8 @@ public: // // This number type is provided because unlike Quotient<> is allows you to create it -// with a zero denominator. +// with a zero denominator. Of course you can't evaluate it in that case, but is convenient because it allows client code +// to handle the "error" itself, which in this context is useful. // template class Rational @@ -230,119 +234,98 @@ class Rational // A straight skeleton event is the simultaneous coallision of 3 offseted oriented straight line segments // e0*,e1*,e2* [e* denotes an _offseted_ edge]. // -// If the event is a an edge-event, the e0*->e1*->e2* must be consecutive right before the event so that +// This record stores the segments corresponding to the INPUT edges (e0,e1,e2) whose offsets intersect +// at the event along with their collinearity. +// +// If the event is a an edge-event, then e0*->e1*->e2* must be consecutive right before the event so that // after the event e0* and e2* become consecutive. Thus, there are _offset_ vertices (e0*,e1*) and (e1*,e2*) // in the offset polygon which not neccesarily exist in the original polygon. // // If the event is a split-event, e0*->e1* must be consecutive right before the event so that after the event -// e0->right(e2) and left(e2)->e1 become consecutive. Thus, there is an offset vertex (e0*,e1*) in the +// e0*->right(e2*) and left(e2*)->e1* become consecutive. Thus, there is an offset vertex (e0*,e1*) in the // offset polygon which not neccesarily exist in the original polygon. // -// This record stores the segments corresponding to the INPUT edges (e0,e1,e2) whose offsets intersect -// at the event. -// -// The actual calculations for most computations depend on the collinearity of the input edges. -// Such collineariy is stored in this record to avoid determining it all the time in each computation. - -// The offset vertices (e0*,e1*) and (e1*,e2*) are called the left and right seeds. +// The offset vertices (e0*,e1*) and (e1*,e2*) are called the left and right seeds for the event. // A seed is a contour node if the vertex is already present in the input polygon, otherwise is a skeleton node. -// If a seed is a skeleton node,can be an input, is produced by an event so it is itself defined as a trisegment. -// The seed of a seed is neccesarily a contour node so the structure IS NOT recursive. +// If a seed is a skeleton node is produced by an event so it is itself defined as a trisegment. // -// If the seed is a skeleton node, an additional edge and collinearity is (optionally) stored in the nested record "Seed" +// A default constructed trisegment is formally defined a null trisegment. // -// template class Trisegment_2 { public: typedef typename K::Segment_2 Segment_2 ; - - struct Seed - { - Seed ( Segment_2 const& aE, Trisegment_collinearity aCollinearity ) - : - mE(aE), mCollinearity(aCollinearity) - {} - - Segment_2 mE ; - Trisegment_collinearity mCollinearity ; - } ; - typedef boost::optional Optional_seed ; public: - Trisegment_2() {} + Trisegment_2() : mRep(0) {} Trisegment_2( Segment_2 const& aE0 , Segment_2 const& aE1 , Segment_2 const& aE2 , Trisegment_collinearity aCollinearity - , Optional_seed const& aLSeed - , Optional_seed const& aRSeed ) : - mRep( new Rep(aE0,aE1,aE2,aCollinearity,aLSeed,aRSeed) ) + mRep( new Rep(aE0,aE1,aE2,aCollinearity) ) {} - Trisegment_collinearity collinearity() const { return mRep->mCollinearity ; } + static Trisegment_2 null() { return Trisegment_2() ; } + + Trisegment_collinearity collinearity() const { return rep().mCollinearity ; } - Segment_2 const& e( unsigned idx ) const { CGAL_assertion(idx<3) ; return mRep->mE[idx] ; } + Segment_2 const& e( unsigned idx ) const { CGAL_precondition(idx<3) ; return rep().mE[idx] ; } Segment_2 const& e0() const { return e(0) ; } Segment_2 const& e1() const { return e(1) ; } Segment_2 const& e2() const { return e(2) ; } - Segment_2 const& collinear_edge_a () const { return e(mRep->mCSIdx[0]) ; } - Segment_2 const& collinear_edge_b () const { return e(mRep->mCSIdx[1]) ; } - Segment_2 const& non_collinear_edge() const { return e(mRep->mCSIdx[2]) ; } - - Optional_seed const& seed ( unsigned idx ) const { CGAL_assertion(idx<2) ; return mRep->mSeed[idx] ; } - - bool is_seed_a_skeleton_node( unsigned idx ) const { return !!seed(idx) ; } - - Trisegment_2 construct_seed_trisegment( unsigned idx ) const + // If 2 out of the 3 edges are collinear they can be reclassified as 1 collinear edge (any of the 2) and 1 non-collinear. + // These methods returns the edges according to that classification. + // PRECONDITION: Exactly 2 out of 3 edges are collinear + Segment_2 const& collinear_edge () const { return e(rep().mCSIdx) ; } + Segment_2 const& non_collinear_edge() const { return e(rep().mNCSIdx) ; } + + enum SEED_ID { LEFT, RIGHT, UNKNOWN } ; + + // Indicates which of the seeds is collinear for a normal collinearity case. + // PRECONDITION: The collinearity is normal. + SEED_ID degenerate_seed_id() const { - CGAL_assertion( is_seed_a_skeleton_node(idx) ) ; - - Optional_seed null ; - return Trisegment_2(e(idx),seed(idx)->mE,e(idx+1),seed(idx)->mCollinearity,null,null); - } - - friend std::ostream& operator << ( std::ostream& os, Optional_seed const& aOSeed ) - { - if ( aOSeed ) - { - return os << " |[(" - << aOSeed->mE.source().x() << "," << aOSeed->mE.source().y() - << ")->(" - << aOSeed->mE.target().x() << "," << aOSeed->mE.target().y() - << ")] " - << trisegment_collinearity_to_string(aOSeed->mCollinearity) - << "|"; - } - else return os << " |*|"; + Trisegment_collinearity c = collinearity(); + + return c == TRISEGMENT_COLLINEARITY_01 ? LEFT : c == TRISEGMENT_COLLINEARITY_12 ? RIGHT : UNKNOWN ; } + + // A default constructed trisegment is formally null. + // Null trisegments are used to represent seeds which are contour vertices instead of skeleton nodes + // (hence are not defined by a trisegment at all) + bool is_null() const { return !mRep ; } friend std::ostream& operator << ( std::ostream& os, Trisegment_2 const& aTrisegment ) { - return os << "{[(" - << aTrisegment.e0().source().x() << "," << aTrisegment.e0().source().y() - << ")->(" - << aTrisegment.e0().target().x() << "," << aTrisegment.e0().target().y() - << ")] [(" - << aTrisegment.e1().source().x() << "," << aTrisegment.e1().source().y() - << ")->(" - << aTrisegment.e1().target().x() << "," << aTrisegment.e1().target().y() - << ")] [(" - << aTrisegment.e2().source().x() << "," << aTrisegment.e2().source().y() - << ")->(" - << aTrisegment.e2().target().x() << "," << aTrisegment.e2().target().y() - << ")]} " - << trisegment_collinearity_to_string(aTrisegment.collinearity()) - << aTrisegment.seed(0) - << aTrisegment.seed(1); + if ( aTrisegment.is_null() ) + { + return os << "{null}" << endl ; + } + else + { + return os << "{[(" + << aTrisegment.e0().source().x() << "," << aTrisegment.e0().source().y() + << ")->(" + << aTrisegment.e0().target().x() << "," << aTrisegment.e0().target().y() + << ")] [(" + << aTrisegment.e1().source().x() << "," << aTrisegment.e1().source().y() + << ")->(" + << aTrisegment.e1().target().x() << "," << aTrisegment.e1().target().y() + << ")] [(" + << aTrisegment.e2().source().x() << "," << aTrisegment.e2().source().y() + << ")->(" + << aTrisegment.e2().target().x() << "," << aTrisegment.e2().target().y() + << ")]} " + << trisegment_collinearity_to_string(aTrisegment.collinearity()) ; + } } private: @@ -353,42 +336,96 @@ class Trisegment_2 , Segment_2 const& aE1 , Segment_2 const& aE2 , Trisegment_collinearity aCollinearity - , Optional_seed const& aLSeed - , Optional_seed const& aRSeed ) { mCollinearity = aCollinearity ; - mE[0] = aE0 ; - mE[1] = aE1 ; - mE[2] = aE2 ; - mSeed[0] = aLSeed ; - mSeed[1] = aRSeed ; + + mE[0] = aE0 ; + mE[1] = aE1 ; + mE[2] = aE2 ; switch ( mCollinearity ) { case TRISEGMENT_COLLINEARITY_01: - mCSIdx[0]=0; mCSIdx[1]=1; mCSIdx[2]=2; break ; + mCSIdx=0; mNCSIdx=2; break ; case TRISEGMENT_COLLINEARITY_12: - mCSIdx[0]=1; mCSIdx[1]=2; mCSIdx[2]=0; break ; + mCSIdx=1; mNCSIdx=0; break ; case TRISEGMENT_COLLINEARITY_02: - mCSIdx[0]=0; mCSIdx[1]=2; mCSIdx[2]=1; break ; + mCSIdx=0; mNCSIdx=1; break ; - default: - mCSIdx[0]=0; mCSIdx[1]=1; mCSIdx[2]=2; break ; + case TRISEGMENT_COLLINEARITY_ALL: + mCSIdx=-1; mNCSIdx=-1; break ; + + case TRISEGMENT_COLLINEARITY_NONE: + mCSIdx=-1; mNCSIdx=-1; break ; } } Segment_2 mE[3]; Trisegment_collinearity mCollinearity ; - unsigned mCSIdx[3] ; - Optional_seed mSeed[2] ; + unsigned mCSIdx, mNCSIdx ; } ; + Rep const& rep() const { CGAL_assertion(mRep) ; return *mRep ; } + Rep& rep() { CGAL_assertion(mRep) ; return *mRep ; } + boost::intrusive_ptr mRep ; } ; +// +// This record stores the trisegment that defines a given event along with the 2 trisegments that defines +// the left and right seed vertices. +// If a seed vertex is a contour vertex instead of a skeleton node, it is given as a null trisegment. +// +// A default constructed seeded trisegment is formally null. +// +template +class Seeded_trisegment_2 +{ + public : + + typedef Trisegment_2 Trisegment_2 ; + + Seeded_trisegment_2() {} + + Seeded_trisegment_2 ( Trisegment_2 const& event ) + : + mEvent(event) + ,mLSeed() + ,mRSeed() + {} + + Seeded_trisegment_2 ( Trisegment_2 const& event + , Trisegment_2 const& lseed + , Trisegment_2 const& rseed + ) + : + mEvent(event) + ,mLSeed(lseed) + ,mRSeed(rseed) + {} + + Trisegment_2 const& event() const { return mEvent ; } + Trisegment_2 const& lseed() const { return mLSeed ; } + Trisegment_2 const& rseed() const { return mRSeed ; } + + friend std::ostream& operator << ( std::ostream& os, Seeded_trisegment_2 const& st ) + { + return os << st.event() + << "\n LSeed=" << st.lseed() + << "\n RSeed=" << st.rseed() ; + + } + + private : + + Trisegment_2 mEvent ; + Trisegment_2 mLSeed ; + Trisegment_2 mRSeed ; +} ; + template struct Functor_base_2 { @@ -396,7 +433,8 @@ struct Functor_base_2 typedef typename K::Point_2 Point_2 ; typedef typename K::Segment_2 Segment_2 ; - typedef Trisegment_2 Trisegment_2 ; + typedef Trisegment_2 Trisegment_2 ; + typedef Seeded_trisegment_2 Seeded_trisegment_2 ; }; template @@ -417,8 +455,8 @@ struct SS_converter : Converter typedef Trisegment_2 Source_trisegment_2 ; typedef Trisegment_2 Target_trisegment_2 ; - typedef typename Source_trisegment_2::Seed Source_trisegment_2_seed ; - typedef typename Target_trisegment_2::Seed Target_trisegment_2_seed ; + typedef Seeded_trisegment_2 Source_seeded_trisegment_2 ; + typedef Seeded_trisegment_2 Target_seeded_trisegment_2 ; typedef boost::tuple Source_time_and_point_2 ; typedef boost::tuple Target_time_and_point_2 ; @@ -435,9 +473,6 @@ struct SS_converter : Converter typedef boost::optional Source_opt_trisegment_2 ; typedef boost::optional Target_opt_trisegment_2 ; - typedef boost::optional Source_trisegment_opt_seed_2 ; - typedef boost::optional Target_trisegment_opt_seed_2 ; - Target_FT cvtn(Source_FT const& n) const { return this->Converter::operator()(n); } Target_point_2 cvtp(Source_point_2 const& p) const { return this->Converter::operator()(p); } @@ -452,27 +487,20 @@ struct SS_converter : Converter return Target_time_and_point_2(cvtn(t),cvtp(p)); } - Target_trisegment_2_seed cvtseed( Source_trisegment_2_seed const& seed ) const + Target_trisegment_2 cvt_tri( Source_trisegment_2 const& t) const { - return ; - } - - Target_trisegment_opt_seed_2 cvtseed( Source_trisegment_opt_seed_2 const& oseed ) const - { - if ( oseed ) - return Target_trisegment_opt_seed_2( Target_trisegment_2_seed( cvts(oseed->mE), oseed->mCollinearity ) ) ; - else return Target_trisegment_opt_seed_2(); + return t.is_null() ? Target_trisegment_2::null() + : Target_trisegment_2(cvts(t.e0()) + ,cvts(t.e1()) + ,cvts(t.e2()) + ,t.collinearity() + ) ; + } - Target_trisegment_2 cvttri( Source_trisegment_2 const& t) const + Target_seeded_trisegment_2 cvt_seeded_tri( Source_seeded_trisegment_2 const& st ) const { - return Target_trisegment_2(cvts(t.e0()) - ,cvts(t.e1()) - ,cvts(t.e2()) - ,t.collinearity() - ,cvtseed(t.seed(0)) - ,cvtseed(t.seed(1)) - ) ; + return Target_seeded_trisegment_2(cvt_tri(st.event()),cvt_tri(st.lseed()),cvt_tri(st.rseed())) ; } @@ -483,17 +511,21 @@ struct SS_converter : Converter Target_point_2 operator()( Source_point_2 const& p) const { return cvtp(p) ; } Target_segment_2 operator()( Source_segment_2 const& s) const { return cvts(s); } - Target_trisegment_2 operator()( Source_trisegment_2 const& t) const { - return cvttri(t); + return cvt_tri(t); + } + + Target_seeded_trisegment_2 operator()( Source_seeded_trisegment_2 const& st) const + { + return cvt_seeded_tri(st); } Target_opt_trisegment_2 operator()( Source_opt_trisegment_2 const& t) const { if ( t ) - return Target_opt_trisegment_2(cvttri(*t)) ; + return Target_opt_trisegment_2(cvt_tri(*t)) ; else return Target_opt_trisegment_2(); } @@ -523,8 +555,6 @@ struct SS_converter : Converter else return Target_opt_time_and_point_2(); } - //boost::none_t operator() ( boost::none_t none ) const { return none ; } - }; } // namespace CGAL_SS_i diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h index 7e651911304..5ebf1ea608e 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h @@ -118,10 +118,11 @@ private : typedef typename Traits::Kernel K ; - typedef typename Traits::FT FT ; - typedef typename Traits::Point_2 Point_2 ; - typedef typename Traits::Segment_2 Segment_2 ; - typedef typename Traits::Trisegment_2 Trisegment_2 ; + typedef typename Traits::FT FT ; + typedef typename Traits::Point_2 Point_2 ; + typedef typename Traits::Segment_2 Segment_2 ; + typedef typename Traits::Trisegment_2 Trisegment_2 ; + typedef typename Traits::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef typename SSkel::Vertex Vertex ; typedef typename SSkel::Halfedge Halfedge ; @@ -147,7 +148,8 @@ private : typedef typename SSkel::size_type size_type ; - typedef CGAL_SS_i::Triedge Triedge ; + typedef CGAL_SS_i::Triedge Triedge ; + typedef CGAL_SS_i::Event_2 Event ; typedef CGAL_SS_i::Edge_event_2 EdgeEvent ; typedef CGAL_SS_i::Split_event_2 SplitEvent ; @@ -265,17 +267,17 @@ private : , mSplitEvents(aComparer) {} - Vertex_handle mVertex ; - bool mIsReflex ; - bool mIsDegenerate ; - bool mIsProcessed ; - bool mIsExcluded ; - int mPrevInLAV ; - int mNextInLAV ; - bool mNextSplitEventInMainPQ; - PQ mSplitEvents ; - Triedge mTriedge ; - Trisegment_2 mTrisegment ; // Skeleton nodes cache the trisegment that defines the originating event + Vertex_handle mVertex ; + bool mIsReflex ; + bool mIsDegenerate ; + bool mIsProcessed ; + bool mIsExcluded ; + int mPrevInLAV ; + int mNextInLAV ; + bool mNextSplitEventInMainPQ; + PQ mSplitEvents ; + Triedge mTriedge ; + Seeded_trisegment_2 mSTrisegment ; // Skeleton nodes cache the seeded trisegment that defines the originating event } ; typedef boost::intrusive_ptr Vertex_data_ptr ; @@ -320,14 +322,14 @@ private : } // Contour nodes do not have a trisegment because they don't come from an event - inline Trisegment_2 const& GetSkeletonNodeTrisegment ( Vertex_handle aV ) const + inline Seeded_trisegment_2 const& GetSeededTrisegment ( Vertex_handle aV ) const { - return GetVertexData(aV).mTrisegment ; + return GetVertexData(aV).mSTrisegment ; } - inline void SetSkeletonNodeTrisegment ( Vertex_handle aV, Trisegment_2 const& aTrisegment ) + inline void SetSeededTrisegment ( Vertex_handle aV, Seeded_trisegment_2 const& aSTrisegment ) { - GetVertexData(aV).mTrisegment = aTrisegment ; + GetVertexData(aV).mSTrisegment = aSTrisegment ; } inline Segment_2 CreateSegment ( Halfedge_const_handle aH ) const @@ -337,75 +339,32 @@ private : return K().construct_segment_2_object()(s,t); } - // If aSeed is a skeleton node returns the segment corresponding to the defining contour edge - // which is not in aTriedge - // - Halfedge_handle GetSeedThirdEdge( Vertex_const_handle aSeed, Triedge aTriedge ) const + Trisegment_2 CreateTrisegment ( Triedge const& aTriedge ) const { - Halfedge_handle rR ; - - if ( handle_assigned(aSeed) && aSeed->is_skeleton() ) - { - Triedge const& lSeedTriedge = GetTriedge(aSeed) ; - - CGAL_assertion( Triedge::CountInCommon(aTriedge,lSeedTriedge) == 2 ) ; - - unsigned idx = 0 ; - if ( aTriedge.contains(lSeedTriedge.e(idx) ) ) - { - ++idx ; - if ( aTriedge.contains(lSeedTriedge.e(idx) ) ) - { - ++idx ; - CGAL_assertion( !aTriedge.contains(lSeedTriedge.e(idx)) ) ; - } - } - - rR = lSeedTriedge.e(idx); - } - - return rR ; - - } - - Trisegment_2 CreateTrisegment ( Triedge const& aTriedge - , Vertex_const_handle aLSeed - , Vertex_const_handle aRSeed - ) const - { - CGAL_STSKEL_BUILDER_TRACE(4,"Creating trisegment for " << aTriedge ) ; - - Halfedge_handle lLSeedTEdge = GetSeedThirdEdge(aLSeed,aTriedge); - Halfedge_handle lRSeedTEdge = GetSeedThirdEdge(aRSeed,aTriedge); - - boost::optional lLSeedOS, lRSeedOS ; - - if ( handle_assigned(lLSeedTEdge) ) - { - CGAL_STSKEL_BUILDER_TRACE(4,"Event LSeed is skeleton node N" << aLSeed->id() << ". 3rd edge: E" << lLSeedTEdge->id() ) ; - lLSeedOS = boost::optional(CreateSegment(lLSeedTEdge)) ; - } - - if ( handle_assigned(lRSeedTEdge) ) - { - CGAL_STSKEL_BUILDER_TRACE(4,"Event RSeed is skeleton node N" << aRSeed->id() << ". 3rd edge: E" << lRSeedTEdge->id() ) ; - lRSeedOS = boost::optional(CreateSegment(lRSeedTEdge)) ; - } - boost::optional r = Construct_ss_trisegment_2(mTraits)(CreateSegment(aTriedge.e0()) ,CreateSegment(aTriedge.e1()) ,CreateSegment(aTriedge.e2()) - ,lLSeedOS - ,lRSeedOS ); + + CGAL_STSKEL_BUILDER_TRACE(4,"Trisegment for " << aTriedge << "=" << ( !!r ? Trisegment_2() : *r ) ) ; + if ( !r ) throw_error("Unable to determine edges collinearity"); - else - CGAL_STSKEL_BUILDER_TRACE(4,"Trisegment: " << *r ) ; return *r ; } + Seeded_trisegment_2 CreateSeededTrisegment ( Triedge const& aTriedge + , Vertex_handle aLSeed + , Vertex_handle aRSeed + ) const + { + return Construct_ss_seeded_trisegment_2(mTraits)(CreateTrisegment(aTriedge) + ,handle_assigned(aLSeed) ? GetSeededTrisegment(aLSeed).event() : Trisegment_2::null() + ,handle_assigned(aRSeed) ? GetSeededTrisegment(aRSeed).event() : Trisegment_2::null() + ); + } + Vertex_handle GetPrevInLAV ( Vertex_handle aV ) { return GetVertex ( GetVertexData(aV).mPrevInLAV ) ; @@ -501,7 +460,7 @@ private : - bool ExistEvent ( Trisegment_2 const& aS ) + bool ExistEvent ( Seeded_trisegment_2 const& aS ) { return Do_ss_event_exist_2(mTraits)(aS); } @@ -509,8 +468,8 @@ private : bool IsOppositeEdgeFacingTheSplitSeed( Vertex_handle aSeed, Halfedge_handle aOpposite ) const { if ( aSeed->is_skeleton() ) - return Is_edge_facing_ss_node_2(mTraits)( GetSkeletonNodeTrisegment(aSeed), CreateSegment(aOpposite) ) ; - else return Is_edge_facing_ss_node_2(mTraits)( aSeed->point() , CreateSegment(aOpposite) ) ; + return Is_edge_facing_ss_node_2(mTraits)( GetSeededTrisegment(aSeed), CreateSegment(aOpposite) ) ; + else return Is_edge_facing_ss_node_2(mTraits)( aSeed->point() , CreateSegment(aOpposite) ) ; } bool IsSplitEventInsideOffsetZone( EventPtr const& aSplit @@ -519,19 +478,19 @@ private : , Vertex_handle aOppRSeed ) const { - return Is_ss_event_inside_offset_zone_2(mTraits)( aSplit->trisegment() - , CreateTrisegment(aOppTriedge, aOppLSeed, aOppRSeed ) + return Is_ss_event_inside_offset_zone_2(mTraits)( aSplit->strisegment() + , CreateSeededTrisegment(aOppTriedge, aOppLSeed, aOppRSeed ) ) ; } - Comparison_result CompareEvents ( Trisegment_2 const& aA, Trisegment_2 const& aB ) const + Comparison_result CompareEvents ( Seeded_trisegment_2 const& aA, Seeded_trisegment_2 const& aB ) const { return Compare_ss_event_times_2(mTraits)(aA,aB) ; } Comparison_result CompareEvents ( EventPtr const& aA, EventPtr const& aB ) const { - return aA->triedge() != aB->triedge() ? CompareEvents( aA->trisegment(), aB->trisegment() ) : EQUAL ; + return aA->triedge() != aB->triedge() ? CompareEvents( aA->strisegment(), aB->strisegment() ) : EQUAL ; } Comparison_result CompareEventsDistanceToSeed ( Vertex_handle aSeed @@ -542,29 +501,29 @@ private : if ( aA->triedge() != aB->triedge() ) { if ( aSeed->is_skeleton() ) - return Compare_ss_event_distance_to_seed_2(mTraits)( GetSkeletonNodeTrisegment(aSeed), aA->trisegment(), aB->trisegment() ) ; - else return Compare_ss_event_distance_to_seed_2(mTraits)( aSeed->point() , aA->trisegment(), aB->trisegment() ) ; + return Compare_ss_event_distance_to_seed_2(mTraits)( GetSeededTrisegment(aSeed), aA->strisegment(), aB->strisegment() ) ; + else return Compare_ss_event_distance_to_seed_2(mTraits)( aSeed->point() , aA->strisegment(), aB->strisegment() ) ; } else return EQUAL ; } - bool AreEventsSimultaneous( Trisegment_2 const& x, Trisegment_2 const& y ) const + bool AreEventsSimultaneous( Seeded_trisegment_2 const& x, Seeded_trisegment_2 const& y ) const { return Are_ss_events_simultaneous_2(mTraits)(x,y) ; } bool AreSkeletonNodesCoincident( Vertex_handle aX, Vertex_handle aY ) const { - return AreEventsSimultaneous( GetSkeletonNodeTrisegment(aX), GetSkeletonNodeTrisegment(aY) ) ; + return AreEventsSimultaneous( GetSeededTrisegment(aX), GetSeededTrisegment(aY) ) ; } - bool IsNewEventInThePast( Trisegment_2 const& aTrisegment, Vertex_handle aSeedNode ) const + bool IsNewEventInThePast( Seeded_trisegment_2 const& aTrisegment, Vertex_handle aSeedNode ) const { - return aSeedNode->is_skeleton() ? CompareEvents( aTrisegment, GetSkeletonNodeTrisegment(aSeedNode) ) == SMALLER + return aSeedNode->is_skeleton() ? CompareEvents( aTrisegment, GetSeededTrisegment(aSeedNode) ) == SMALLER : false ; } - boost::tuple ConstructEventTimeAndPoint( Trisegment_2 const& aS ) const + boost::tuple ConstructEventTimeAndPoint( Seeded_trisegment_2 const& aS ) const { boost::optional< boost::tuple > r = Construct_ss_event_time_and_point_2(mTraits)(aS); if ( !r ) @@ -576,7 +535,7 @@ private : { FT lTime ; Point_2 lP ; - boost::tie(lTime,lP) = ConstructEventTimeAndPoint(aE.trisegment()); + boost::tie(lTime,lP) = ConstructEventTimeAndPoint(aE.strisegment()); aE.SetTimeAndPoint(lTime,lP); } @@ -592,9 +551,9 @@ private : bool AreBisectorsCoincident ( Halfedge_const_handle aA, Halfedge_const_handle aB ) const ; - bool IsInverseSplitEventCoincident( Vertex_handle const& aReflexOppN - , Triedge const& aEventTriedge - , Trisegment_2 const& aEventTrisegment + bool IsInverseSplitEventCoincident( Vertex_handle const& aReflexOppN + , Triedge const& aEventTriedge + , Seeded_trisegment_2 const& aEventTrisegment ) ; EventPtr IsPseudoSplitEvent( EventPtr const& aEvent, Vertex_handle aOppN ) ; diff --git a/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_traits_2.h b/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_traits_2.h index 78e678ee822..1c618b71345 100644 --- a/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_traits_2.h +++ b/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_traits_2.h @@ -33,24 +33,42 @@ struct Construct_ss_trisegment_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::FT FT ; typedef typename Base::Segment_2 Segment_2 ; typedef typename Base::Trisegment_2 Trisegment_2 ; - typedef boost::optional Optional_segment_2 ; + typedef optional result_type ; - typedef boost::optional result_type ; - - typedef Arity_tag<5> Arity ; + typedef Arity_tag<3> Arity ; - result_type operator() ( Segment_2 const& aS0 - , Segment_2 const& aS1 - , Segment_2 const& aS2 - , Optional_segment_2 const& aS01 - , Optional_segment_2 const& aS12 - ) const + result_type operator() () const { return cgal_make_optional( Trisegment_2::null() ) ; } + + result_type operator() ( Segment_2 const& aS0, Segment_2 const& aS1, Segment_2 const& aS2 ) const { - return construct_trisegment(aS0,aS1,aS2,aS01,aS12); + Trisegment_2 t = construct_trisegment(aS0,aS1,aS2); + return cgal_make_optional(!t.is_null(),t); + } +}; + +template +struct Construct_ss_seeded_trisegment_2 : Functor_base_2 +{ + typedef Functor_base_2 Base ; + + typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; + + typedef Seeded_trisegment_2 result_type ; + + typedef Arity_tag<3> Arity ; + + result_type operator() () const + { + return Seeded_trisegment_2(); + } + + result_type operator() ( Trisegment_2 const& aEvent, Trisegment_2 const& aLSeed, Trisegment_2 const& aRSeed ) const + { + return Seeded_trisegment_2(aEvent,aLSeed,aRSeed); } }; @@ -59,12 +77,12 @@ struct Do_ss_event_exist_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef Uncertain result_type ; typedef Arity_tag<1> Arity ; - Uncertain operator() ( Trisegment_2 const& aSTrisegment ) const + Uncertain operator() ( Seeded_trisegment_2 const& aSTrisegment ) const { Uncertain rResult = exist_offset_lines_isec2(aSTrisegment) ; @@ -79,9 +97,9 @@ struct Is_edge_facing_ss_node_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::Point_2 Point_2 ; - typedef typename Base::Segment_2 Segment_2 ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Point_2 Point_2 ; + typedef typename Base::Segment_2 Segment_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef Uncertain result_type ; typedef Arity_tag<2> Arity ; @@ -91,7 +109,7 @@ struct Is_edge_facing_ss_node_2 : Functor_base_2 return is_edge_facing_pointC2(cgal_make_optional(aContourNode),aEdge) ; } - Uncertain operator() ( Trisegment_2 const& aSkeletonNode, Segment_2 const& aEdge ) const + Uncertain operator() ( Seeded_trisegment_2 const& aSkeletonNode, Segment_2 const& aEdge ) const { return is_edge_facing_offset_lines_isecC2(aSkeletonNode,aEdge) ; } @@ -102,23 +120,23 @@ struct Compare_ss_event_distance_to_seed_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::Point_2 Point_2 ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Point_2 Point_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef Uncertain result_type ; typedef Arity_tag<3> Arity ; - Uncertain operator() ( Point_2 const& aP - , Trisegment_2 const& aL - , Trisegment_2 const& aR + Uncertain operator() ( Point_2 const& aP + , Seeded_trisegment_2 const& aL + , Seeded_trisegment_2 const& aR ) const { return compare_offset_lines_isec_dist_to_pointC2(cgal_make_optional(aP),aL,aR) ; } - Uncertain operator() ( Trisegment_2 const& aS - , Trisegment_2 const& aL - , Trisegment_2 const& aR + Uncertain operator() ( Seeded_trisegment_2 const& aS + , Seeded_trisegment_2 const& aL + , Seeded_trisegment_2 const& aR ) const { return compare_offset_lines_isec_dist_to_pointC2(aS,aL,aR) ; @@ -131,12 +149,12 @@ struct Compare_ss_event_times_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef Uncertain result_type ; typedef Arity_tag<2> Arity ; - Uncertain operator() ( Trisegment_2 const& aL, Trisegment_2 const& aR ) const + Uncertain operator() ( Seeded_trisegment_2 const& aL, Seeded_trisegment_2 const& aR ) const { Uncertain rResult = compare_offset_lines_isec_timesC2(aL,aR) ; @@ -151,12 +169,12 @@ struct Is_ss_event_inside_offset_zone_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef Uncertain result_type ; typedef Arity_tag<2> Arity ; - Uncertain operator() ( Trisegment_2 const& aE, Trisegment_2 const& aZ ) const + Uncertain operator() ( Seeded_trisegment_2 const& aE, Seeded_trisegment_2 const& aZ ) const { Uncertain rResult = is_offset_lines_isec_inside_offset_zoneC2(aE,aZ) ; @@ -171,12 +189,12 @@ struct Are_ss_events_simultaneous_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef Uncertain result_type ; typedef Arity_tag<2> Arity ; - Uncertain operator() ( Trisegment_2 const& aA, Trisegment_2 const& aB ) const + Uncertain operator() ( Seeded_trisegment_2 const& aA, Seeded_trisegment_2 const& aB ) const { Uncertain rResult = are_events_simultaneousC2(aA,aB); @@ -231,10 +249,10 @@ struct Construct_ss_event_time_and_point_2 : Functor_base_2 { typedef Functor_base_2 Base ; - typedef typename Base::FT FT ; - typedef typename Base::Point_2 Point_2 ; - typedef typename Base::Segment_2 Segment_2 ; - typedef typename Base::Trisegment_2 Trisegment_2 ; + typedef typename Base::FT FT ; + typedef typename Base::Point_2 Point_2 ; + typedef typename Base::Segment_2 Segment_2 ; + typedef typename Base::Seeded_trisegment_2 Seeded_trisegment_2 ; typedef boost::tuple rtype ; @@ -242,40 +260,38 @@ struct Construct_ss_event_time_and_point_2 : Functor_base_2 typedef Arity_tag<1> Arity ; - result_type operator() ( Trisegment_2 const& trisegment ) const + result_type operator() ( Seeded_trisegment_2 const& st ) const { bool lOK = false ; FT t(0) ; Point_2 i = ORIGIN ; - CGAL_assertion(trisegment.collinearity() != TRISEGMENT_COLLINEARITY_ALL) ; - - optional< Rational > ot = compute_offset_lines_isec_timeC2(trisegment); + optional< Rational > ot = compute_offset_lines_isec_timeC2(st); if ( !!ot && certainly( CGAL_NTS certified_is_not_zero(ot->d()) ) ) { t = ot->n() / ot->d(); - optional oi = construct_offset_lines_isecC2(trisegment); + optional oi = construct_offset_lines_isecC2(st); if ( oi ) { i = *oi ; - lOK = is_point_calculation_accurate(t,i,trisegment); + lOK = is_point_calculation_accurate(t,i,st); } } - CGAL_STSKEL_ASSERT_CONSTRUCTION_RESULT(lOK,K,"Construct_ss_event_time_and_point_2",trisegment); + CGAL_STSKEL_ASSERT_CONSTRUCTION_RESULT(lOK,K,"Construct_ss_event_time_and_point_2",st); return cgal_make_optional(lOK,boost::make_tuple(t,i)) ; } - bool is_point_calculation_accurate( double t, Point_2 const& p, Trisegment_2 const& trisegment ) const + bool is_point_calculation_accurate( double t, Point_2 const& p, Seeded_trisegment_2 const& st ) const { - Segment_2 const& e0 = trisegment.e0() ; - Segment_2 const& e1 = trisegment.e1() ; - Segment_2 const& e2 = trisegment.e2() ; + Segment_2 const& e0 = st.event().e0() ; + Segment_2 const& e1 = st.event().e1() ; + Segment_2 const& e2 = st.event().e2() ; Point_2 const& e0s = e0.source(); Point_2 const& e0t = e0.target(); @@ -302,7 +318,7 @@ struct Construct_ss_event_time_and_point_2 : Functor_base_2 } template - bool is_point_calculation_accurate( NT const& t, Point_2 const& p, Trisegment_2 const& trisegment ) const + bool is_point_calculation_accurate( NT const& t, Point_2 const& p, Seeded_trisegment_2 const& st ) const { return true ; } @@ -324,6 +340,7 @@ struct Straight_skeleton_builder_traits_2_functors typedef CGAL_SS_i::Are_ss_edges_collinear_2 Are_ss_edges_collinear_2 ; typedef CGAL_SS_i::Construct_ss_event_time_and_point_2 Construct_ss_event_time_and_point_2 ; typedef CGAL_SS_i::Construct_ss_trisegment_2 Construct_ss_trisegment_2 ; + typedef CGAL_SS_i::Construct_ss_seeded_trisegment_2 Construct_ss_seeded_trisegment_2 ; } ; template @@ -335,7 +352,8 @@ struct Straight_skeleton_builder_traits_2_base typedef typename K::Point_2 Point_2 ; typedef typename K::Segment_2 Segment_2 ; - typedef CGAL_SS_i::Trisegment_2 Trisegment_2 ; + typedef CGAL_SS_i::Trisegment_2 Trisegment_2 ; + typedef CGAL_SS_i::Seeded_trisegment_2 Seeded_trisegment_2 ; template F get( F const* = 0 ) const { return F(); } @@ -377,6 +395,7 @@ public: typedef typename Unfiltering::Construct_ss_event_time_and_point_2 Construct_ss_event_time_and_point_2 ; typedef typename Unfiltering::Construct_ss_trisegment_2 Construct_ss_trisegment_2 ; + typedef typename Unfiltering::Construct_ss_seeded_trisegment_2 Construct_ss_seeded_trisegment_2 ; } ; template @@ -479,6 +498,7 @@ public: > Construct_ss_trisegment_2 ; + typedef typename Unfiltering::Construct_ss_seeded_trisegment_2 Construct_ss_seeded_trisegment_2 ; } ; template @@ -497,6 +517,7 @@ CGAL_STRAIGHT_SKELETON_CREATE_FUNCTOR_ADAPTER(Are_ss_edges_parallel_2); CGAL_STRAIGHT_SKELETON_CREATE_FUNCTOR_ADAPTER(Are_ss_edges_collinear_2); CGAL_STRAIGHT_SKELETON_CREATE_FUNCTOR_ADAPTER(Construct_ss_event_time_and_point_2); CGAL_STRAIGHT_SKELETON_CREATE_FUNCTOR_ADAPTER(Construct_ss_trisegment_2); +CGAL_STRAIGHT_SKELETON_CREATE_FUNCTOR_ADAPTER(Construct_ss_seeded_trisegment_2); CGAL_END_NAMESPACE diff --git a/Straight_skeleton_2/include/CGAL/compute_outer_frame_margin.h b/Straight_skeleton_2/include/CGAL/compute_outer_frame_margin.h index 15faeec3f09..5c0572df5c7 100644 --- a/Straight_skeleton_2/include/CGAL/compute_outer_frame_margin.h +++ b/Straight_skeleton_2/include/CGAL/compute_outer_frame_margin.h @@ -36,10 +36,11 @@ boost::optional< typename Traits::FT > compute_outer_frame_margin ( ForwardPoint , Traits const& aTraits ) { - typedef typename Traits::Kernel Kernel ; - typedef typename Traits::FT FT ; - typedef typename Traits::Point_2 Point_2 ; - typedef typename Traits::Segment_2 Segment_2 ; + typedef typename Traits::Kernel Kernel ; + typedef typename Traits::FT FT ; + typedef typename Traits::Point_2 Point_2 ; + typedef typename Traits::Segment_2 Segment_2 ; + typedef typename Traits::Seeded_trisegment_2 Seeded_trisegment_2 ; Kernel kernel ; @@ -56,6 +57,8 @@ boost::optional< typename Traits::FT > compute_outer_frame_margin ( ForwardPoint bool lOverflow = false ; + Seeded_trisegment_2 nullst = Construct_ss_seeded_trisegment_2(aTraits)(); + for ( ForwardPointIterator lCurr = aBegin ; lCurr < aEnd ; ++ lCurr ) { ForwardPointIterator lPrev = ( lCurr == aBegin ? lLast : CGAL::predecessor(lCurr) ) ; @@ -66,7 +69,7 @@ boost::optional< typename Traits::FT > compute_outer_frame_margin ( ForwardPoint Segment_2 lLEdge = construct_segment(*lPrev,*lCurr); Segment_2 lREdge = construct_segment(*lCurr,*lNext); - OptionalPoint_2 lP = Construct_offset_point_2(aTraits)(aOffset,lLEdge,lREdge, boost::optional()); + OptionalPoint_2 lP = Construct_offset_point_2(aTraits)(aOffset,lLEdge,lREdge,nullst); if ( !lP ) { diff --git a/Straight_skeleton_2/include/CGAL/constructions/Polygon_offset_cons_ftC2.h b/Straight_skeleton_2/include/CGAL/constructions/Polygon_offset_cons_ftC2.h index e4c1d732e7e..2618d94a95a 100644 --- a/Straight_skeleton_2/include/CGAL/constructions/Polygon_offset_cons_ftC2.h +++ b/Straight_skeleton_2/include/CGAL/constructions/Polygon_offset_cons_ftC2.h @@ -35,23 +35,19 @@ namespace CGAL_SS_i // POSTCONDITION: In case of overflow an empty optional is returned. // template -optional< Point_2 > construct_offset_pointC2 ( typename K::FT const& t - , Segment_2 const& e0 - , Segment_2 const& e1 - , optional< Segment_2 > const& e01 +optional< Point_2 > construct_offset_pointC2 ( typename K::FT const& t + , Segment_2 const& e0 + , Segment_2 const& e1 + , Seeded_trisegment_2 const& st ) { typedef typename K::FT FT ; - typedef Point_2 Point_2 ; - typedef Line_2 Line_2 ; - typedef Segment_2 Segment_2 ; - typedef Trisegment_2 Trisegment_2 ; + typedef Point_2 Point_2 ; + typedef Line_2 Line_2 ; - typedef optional Optional_point_2 ; - typedef optional Optional_line_2 ; - typedef optional Optional_segment_2 ; - typedef optional Optional_trisegment_2 ; + typedef optional Optional_point_2 ; + typedef optional Optional_line_2 ; FT x(0.0),y(0.0) ; @@ -78,18 +74,7 @@ optional< Point_2 > construct_offset_pointC2 ( typename K::FT const& } else { - Optional_point_2 q ; - - if ( e01 ) - { - Optional_segment_2 null ; - Optional_trisegment_2 tri = construct_trisegment(e0,*e01,e1,null,null) ; - if ( tri ) - q = construct_offset_lines_isecC2(*tri); - } - else - q = cgal_make_optional(e0.target()); - + Optional_point_2 q = st.event().is_null() ? cgal_make_optional(e1.source()) : construct_offset_lines_isecC2(st); if ( q ) { x = q->x() + l0->a() * t ; diff --git a/Straight_skeleton_2/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h b/Straight_skeleton_2/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h index 588e6847347..fa7c26ae484 100644 --- a/Straight_skeleton_2/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h +++ b/Straight_skeleton_2/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h @@ -18,6 +18,7 @@ #ifndef CGAL_STRAIGHT_SKELETON_CONS_FTC2_H #define CGAL_STRAIGHT_SKELETON_CONS_FTC2_H 1 +#include CGAL_BEGIN_NAMESPACE @@ -32,13 +33,9 @@ inline NT inexact_sqrt( NT const& n ) inline MP_Float inexact_sqrt( MP_Float const& n ) { - double d = CGAL::to_double(n); - - if ( !CGAL_NTS is_finite(d) ) - d = CGAL_NTS sign(n) == NEGATIVE ? - (std::numeric_limits::max)() - : (std::numeric_limits::max)() ; - - return MP_Float( CGAL_NTS sqrt(d) ) ; + CORE::BigFloat nn( CGAL::to_double(n) ) ; + CORE::BigFloat s = CORE::sqrt(nn); + return MP_Float(s.doubleValue()); } inline Quotient inexact_sqrt( Quotient const& q ) @@ -156,49 +153,49 @@ FT squared_distance_from_point_to_lineC2( FT const& px, FT const& py, FT const& } // -// Constructs a Trisegment_2 which stores 3 edges (segments) such that -// if two of them are collinear, they are put first, as e0, e1. -// Stores also the collinearity type (which edges are collinear) +// Constructs a Trisegment_2 which stores 3 oriented straight line segments e0,e1,e2 along with their collinearity. // -// If the collinearity test is indeterminate for any pair of edges -// return null. +// NOTE: If the collinearity cannot be determined reliably, a null trisegment is returned. // template -optional< Trisegment_2 > construct_trisegment ( Segment_2 const& e0 - , Segment_2 const& e1 - , Segment_2 const& e2 - , boost::optional< Segment_2 > const& e01 - , boost::optional< Segment_2 > const& e12 - ) +Trisegment_2 construct_trisegment ( Segment_2 const& e0 + , Segment_2 const& e1 + , Segment_2 const& e2 + ) { typedef Trisegment_2 Trisegment_2 ; - Uncertain lCollinearity = certified_trisegment_collinearity(e0,e1,e2); - Uncertain lLSeed_collinearity = !e01 ? make_uncertain(TRISEGMENT_COLLINEARITY_NONE) - : certified_trisegment_collinearity(e0,*e01,e1); - - Uncertain lRSeed_collinearity = !e12 ? make_uncertain(TRISEGMENT_COLLINEARITY_NONE) - : certified_trisegment_collinearity(e1,*e12,e2); - - if ( !is_indeterminate(lCollinearity) && !is_indeterminate(lLSeed_collinearity) && !is_indeterminate(lRSeed_collinearity) ) - { - typedef typename Trisegment_2::Seed Seed ; - typedef typename Trisegment_2::Optional_seed Optional_seed ; - - Optional_seed lLSeed, lRSeed ; - - if ( e01 ) - lLSeed = cgal_make_optional( Seed(*e01,lLSeed_collinearity) ); - if ( e12 ) - lRSeed = cgal_make_optional( Seed(*e12,lRSeed_collinearity) ); - - return cgal_make_optional( Trisegment_2(e0, e1, e2, lCollinearity, lLSeed, lRSeed ) ) ; - } - else return boost::none ; + if ( !is_indeterminate(lCollinearity) ) + return Trisegment_2(e0, e1, e2, lCollinearity) ; + else return Trisegment_2::null() ; } -// Given 3 oriented straight line segments: e0, e1, e2 (passed in a SortedTrisegment record) +// Constructs a seeded trisegment which stores the main trisegment and the trisegments for its seed nodes. +// +// NOTE: Any of the seed trisegments can be null, which means that the current event does not emerge from a previous event but +// directly from the contour (it is an initial event rather than propagation event) +// +template +Seeded_trisegment_2 construct_seeded_trisegment ( Trisegment_2 const& event + , Trisegment_2 const& lseed + , Trisegment_2 const& rseed + ) +{ + return Seeded_trisegment_2(event,lseed,rseed); +} + + +// Constructs a seeded trisegment that corresponds to an initial event (that is with no seeds) +// +template +Seeded_trisegment_2 construct_seeded_trisegment ( Trisegment_2 const& event ) +{ + return Seeded_trisegment_2(event); +} + + +// Given 3 oriented straight line segments: e0, e1, e2 // returns the OFFSET DISTANCE (n/d) at which the offsetted lines // intersect at a single point, IFF such intersection exist. // If the lines intersect to the left, the returned distance is positive. @@ -213,8 +210,10 @@ optional< Trisegment_2 > construct_trisegment ( Segment_2 const& // // POSTCONDITION: In case of overflow an empty optional is returned. // +// NOTE: The segments (e0,e1,e2) are stored in the argument as the trisegment st.event() +// template -optional< Rational< typename K::FT> > compute_normal_offset_lines_isec_timeC2 ( Trisegment_2 const& trisegment ) +optional< Rational< typename K::FT> > compute_normal_offset_lines_isec_timeC2 ( Seeded_trisegment_2 const& st ) { typedef typename K::FT FT ; @@ -222,6 +221,7 @@ optional< Rational< typename K::FT> > compute_normal_offset_lines_isec_timeC2 ( typedef optional Optional_line_2 ; + CGAL_STSKEL_TRAITS_TRACE("Computing normal offset lines isec time") ; FT num(0.0), den(0.0) ; @@ -242,9 +242,9 @@ optional< Rational< typename K::FT> > compute_normal_offset_lines_isec_timeC2 ( bool ok = false ; - Optional_line_2 l0 = compute_normalized_line_ceoffC2(trisegment.e0()) ; - Optional_line_2 l1 = compute_normalized_line_ceoffC2(trisegment.e1()) ; - Optional_line_2 l2 = compute_normalized_line_ceoffC2(trisegment.e2()) ; + Optional_line_2 l0 = compute_normalized_line_ceoffC2(st.event().e0()) ; + Optional_line_2 l1 = compute_normalized_line_ceoffC2(st.event().e1()) ; + Optional_line_2 l2 = compute_normalized_line_ceoffC2(st.event().e2()) ; if ( l0 && l1 && l2 ) { @@ -294,53 +294,93 @@ optional< Point_2 > compute_oriented_midpoint ( Segment_2 const& e0, Segme mp = CGAL::midpoint(e0.target(),e1.source()); else mp = CGAL::midpoint(e1.target(),e0.source()); + CGAL_STSKEL_TRAITS_TRACE("Computing oriented midpoint between:" + << "\n e0.sx=" << e0.source().x() << " e0.sy=" << e0.source().y() + << "\n e0.tx=" << e0.target().x() << " e0.ty=" << e0.target().y() + << "\n e1.sx=" << e1.source().x() << " e1.sy=" << e0.source().y() + << "\n e1.tx=" << e1.target().x() << " e1.ty=" << e0.target().y() + << "\n mp.x=" << mp.x() << " mp.y=" << mp.y() + ); + ok = CGAL_NTS is_finite(mp.x()) && CGAL_NTS is_finite(mp.y()); } return cgal_make_optional(ok,mp); } -// Given 3 oriented straight line segments: e0, e1, e2 (passed in a SortedTrisegment record) -// returns the vertex shared by e1 and e2, called the right seed. -// If such vertex is a skeleton node, so it comes from a previous event, the trisegment corresponding to that -// event is stored within the current trisegment (as rseed()), so in that case the event point is calculated and returned. -// If such a vertex is a contour node then neccesarily it is e1.target (because neccesarily e1 and e2 are consecutive -// in that case), so e1.target is returned. + +// +// Given 3 oriented straight line segments: e0, e1, e2 and the corresponding offseted segments: e0*, e1* and e2*, +// returns the point of the left or right seed (offset vertex) (e0*,e1*) or (e1*,e2*) +// +// If the current event (defined by e0,e1,e2) is a propagated event, that is, it follows from a previous event, +// the seeds are skeleten nodes and are given by non-null trisegments. +// If the current event is an initial event the seeds are contour vertices and are given by null trisegmets. +// +// If a seed is a skeleton node, its point has to be computed from the trisegment that defines it. +// That trisegment is exactly the trisegment that defined then previous event which produced the skeleton node +// (so the trisegment is basically a lazy representation of the seed point). +// +// If a seed is a contour vertex, its point is then simply the target endoint of e0 or e1 (for the left/right seed). +// +// This method returns the specified seed point (left or right) +// +// NOTE: Split events involve 3 edges but only one seed, the left (that is, only e0*,e1* is connected before the event). +// The seeded trisegment for a split event has always a null right seed even if the event is not an initial event +// (in which case its left seed won't be null). +// If you ask for the right seed point for a seeded trisegment corresponding to a split event you will just get e1.target() +// which is nonsensical for a non initial split event. +// +// NOTE: There is an abnormal collinearity case which ocurrs when e0 and e2 are collinear. +// In this case, these lines do not correspond to an offset vertex (because e0* and e2* are never consecutive before the event), +// so the degenerate seed is neither the left or the right seed. In this case, the SEED ID for the degenerate pseudo seed is UNKOWN. +// If you request the point of such degenerate pseudo seed the oriented midpoint bettwen e0 and e2 is returned. // template -optional< Point_2 > compute_seed_pointC2 ( Trisegment_2 const& trisegment, unsigned cidx ) -{ - return trisegment.is_seed_a_skeleton_node(cidx) ? construct_offset_lines_isecC2(trisegment.construct_seed_trisegment(cidx)) - : trisegment.e(cidx).target() ; -} - -template -optional< Point_2 > compute_collinear_seed_pointC2 ( Trisegment_2 const& trisegment ) +optional< Point_2 > compute_seed_pointC2 ( Seeded_trisegment_2 const& st, typename Trisegment_2::SEED_ID sid ) { optional< Point_2 > p ; - - switch ( trisegment.collinearity() ) + + typedef Trisegment_2 Trisegment_2 ; + + switch ( sid ) { - case TRISEGMENT_COLLINEARITY_01 : p = compute_seed_pointC2(trisegment,0); break ; - case TRISEGMENT_COLLINEARITY_12 : p = compute_seed_pointC2(trisegment,1); break ; - case TRISEGMENT_COLLINEARITY_02 : p = compute_oriented_midpoint(trisegment.e0(),trisegment.e2()); break ; + case Trisegment_2::LEFT : + + p = st.lseed().is_null() ? cgal_make_optional(st.event().e0().target()) + : construct_offset_lines_isecC2(construct_seeded_trisegment(st.lseed())) ; + break ; + + case Trisegment_2::RIGHT : - case TRISEGMENT_COLLINEARITY_NONE : - case TRISEGMENT_COLLINEARITY_ALL : break ; + p = st.rseed().is_null() ? cgal_make_optional(st.event().e1().target()) + : construct_offset_lines_isecC2(construct_seeded_trisegment(st.rseed())) ; + break ; + + case Trisegment_2::UNKNOWN : + + p = compute_oriented_midpoint(st.event().e0(),st.event().e2()); + + break ; } - + return p ; } -// Given 3 oriented straight line segments: e0, e1, e2 (passed in a SortedTrisegment record) -// such that e0 and e1 are collinear, not neccesarily consecutive but with the same orientaton, and e2 is NOT -// collinear with e0 and e1; returns the OFFSET DISTANCE (n/d) at which a line perpendicular to e0 (and e1) -// passing through the oriented midpoint between e0 and e1 (see the function above) intersects the offset line of e2 // -// If the lines intersect to the left of e0, the returned distance is positive. -// If the lines intersect to the right of e0, the returned distance is negative. -// If the lines do not intersect, for example, the three edges are collinear edges, or e0,e1 are not, -// returns 0/0 (the actual distance is undefined in this case, but 0 is a usefull return) +// Given the seeded trisegment for an event which is known to have a normal collinearity returns the seed point +// of the degenerate seed. +// A normal collinearity occurs when e0,e1 or e1,e2 are collinear. +template +optional< Point_2 > compute_degenerate_seed_pointC2 ( Seeded_trisegment_2 const& st ) +{ + return compute_seed_pointC2( st, st.event().degenerate_seed_id() ) ; +} + +// Given 3 oriented straight line segments: e0, e1, e2 +// such that two and only two of these edges are collinear, not neccesarily consecutive but with the same orientaton; +// returns the OFFSET DISTANCE (n/d) at which a line perpendicular to the collinear edge passing through +// the degenerate seed point intersects the offset line of the non collinear edge // // NOTE: The result is a explicit rational number returned as a tuple (num,den); the caller must check that den!=0 manually // (a predicate for instance should return indeterminate in this case) @@ -348,7 +388,7 @@ optional< Point_2 > compute_collinear_seed_pointC2 ( Trisegment_2 const& t // POSTCONDITION: In case of overflow an empty optional is returned. // template -optional< Rational< typename K::FT> > compute_degenerate_offset_lines_isec_timeC2 ( Trisegment_2 const& trisegment ) +optional< Rational< typename K::FT> > compute_degenerate_offset_lines_isec_timeC2 ( Seeded_trisegment_2 const& st ) { typedef typename K::FT FT ; @@ -358,21 +398,25 @@ optional< Rational< typename K::FT> > compute_degenerate_offset_lines_isec_timeC typedef optional Optional_point_2 ; typedef optional Optional_line_2 ; + CGAL_STSKEL_TRAITS_TRACE("Computing degenerate offset lines isec time") ; + // DETAILS: // + // For simplicity, assume e0,e1 are the collinear edges. + // // (1) - // The bisecting line of e0 and e1 (which are required to be collinear) is a line perpendicular to e0 (and e1) - // which passes through the oriented midpoint, 'q', between e0->e1 (or e1->e0, depending on their orientatinon) + // The bisecting line of e0 and e1 is a line perpendicular to e0 (and e1) + // which passes through 'q': the degenerate offset vertex (e0*,e1*) // This "degenerate" bisecting line is given by: // - // B0(t) = q + t*[l0.a,l0.b] + // B0(t) = p + t*[l0.a,l0.b] // - // where l0.a and l0.b are the _normalized_ line coefficients for e0 (or e1 which is the same) + // where p is the projection of q along l0 and l0.a,l0.b are the _normalized_ line coefficients for e0 (or e1 which is the same) // Since [a,b] is a _unit_ vector pointing perpendicularly to the left of e0 (and e1); // any point B0(k) is at a distance k from the line supporting e0 and e1. // // (2) - // The bisecting line of e0 and e2 (which are required to be non-parallel) is given by the following SEL + // The bisecting line of e0 and e2 is given by the following SEL // // l0.a*x(t) + l0.b*y(t) + l0.c + t = 0 // l2.a*x(t) + l2.b*y(t) + l2.c + t = 0 @@ -393,25 +437,30 @@ optional< Rational< typename K::FT> > compute_degenerate_offset_lines_isec_timeC // bool ok = false ; - Optional_line_2 l0 = compute_normalized_line_ceoffC2(trisegment.collinear_edge_a ()) ; - Optional_line_2 l2 = compute_normalized_line_ceoffC2(trisegment.non_collinear_edge()) ; + Optional_line_2 l0 = compute_normalized_line_ceoffC2(st.event().collinear_edge ()) ; + Optional_line_2 l2 = compute_normalized_line_ceoffC2(st.event().non_collinear_edge()) ; - Optional_point_2 q = compute_collinear_seed_pointC2(trisegment) ; + Optional_point_2 q = compute_degenerate_seed_pointC2(st); FT num(0.0), den(0.0) ; if ( l0 && l2 && q ) { + FT px, py ; + line_project_pointC2(l0->a(),l0->b(),l0->c(),q->x(),q->y(),px,py); + + CGAL_STSKEL_TRAITS_TRACE("Seed point: (" << q->x() << "," << q->y() << "). Projected seed point: (" << px << "," << py << ")" ) ; + if ( ! CGAL_NTS is_zero(l0->b()) ) // Non-vertical { - num = (l2->a() * l0->b() - l0->a() * l2->b() ) * q->x() + l0->b() * l2->c() - l2->b() * l0->c() ; + num = (l2->a() * l0->b() - l0->a() * l2->b() ) * px + l0->b() * l2->c() - l2->b() * l0->c() ; den = (l0->a() * l0->a() - 1) * l2->b() + ( 1 - l2->a() * l0->a() ) * l0->b() ; CGAL_STSKEL_TRAITS_TRACE("Non-vertical Degenerate Event:\nn=" << num << "\nd=" << den ) } else { - num = (l2->a() * l0->b() - l0->a() * l2->b() ) * q->y() - l0->a() * l2->c() + l2->a() * l0->c() ; + num = (l2->a() * l0->b() - l0->a() * l2->b() ) * py - l0->a() * l2->c() + l2->a() * l0->c() ; den = l0->a() * l0->b() * l2->b() - l0->b() * l0->b() * l2->a() + l2->a() - l0->a() ; CGAL_STSKEL_TRAITS_TRACE("Vertical Degenerate Event:\nn=" << num << "\nd=" << den ) @@ -428,16 +477,16 @@ optional< Rational< typename K::FT> > compute_degenerate_offset_lines_isec_timeC // Calls the appropiate function depending on the collinearity of the edges. // template -optional< Rational< typename K::FT > > compute_offset_lines_isec_timeC2 ( Trisegment_2 const& trisegment ) +optional< Rational< typename K::FT > > compute_offset_lines_isec_timeC2 ( Seeded_trisegment_2 const& st ) { - CGAL_precondition ( trisegment.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; + CGAL_precondition ( st.event().collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - return trisegment.collinearity() == TRISEGMENT_COLLINEARITY_NONE ? compute_normal_offset_lines_isec_timeC2 (trisegment) - : compute_degenerate_offset_lines_isec_timeC2(trisegment); + return st.event().collinearity() == TRISEGMENT_COLLINEARITY_NONE ? compute_normal_offset_lines_isec_timeC2 (st) + : compute_degenerate_offset_lines_isec_timeC2(st); } -// Given 3 oriented line segments e0, e1 and e2 (passed in a SortedTrisegment record) +// Given 3 oriented line segments e0, e1 and e2 // such that their offsets at a certian distance intersect in a single point, // returns the coordinates (x,y) of such a point. // @@ -449,7 +498,7 @@ optional< Rational< typename K::FT > > compute_offset_lines_isec_timeC2 ( Triseg // POSTCONDITION: In case of overflow an empty optional is returned. // template -optional< Point_2 > construct_normal_offset_lines_isecC2 ( Trisegment_2 const& trisegment ) +optional< Point_2 > construct_normal_offset_lines_isecC2 ( Seeded_trisegment_2 const& st ) { typedef typename K::FT FT ; @@ -458,11 +507,13 @@ optional< Point_2 > construct_normal_offset_lines_isecC2 ( Trisegment_2 co typedef optional Optional_line_2 ; + CGAL_STSKEL_TRAITS_TRACE("Computing normal offset lines isec point") ; + FT x(0.0),y(0.0) ; - Optional_line_2 l0 = compute_normalized_line_ceoffC2(trisegment.e0()) ; - Optional_line_2 l1 = compute_normalized_line_ceoffC2(trisegment.e1()) ; - Optional_line_2 l2 = compute_normalized_line_ceoffC2(trisegment.e2()) ; + Optional_line_2 l0 = compute_normalized_line_ceoffC2(st.event().e0()) ; + Optional_line_2 l1 = compute_normalized_line_ceoffC2(st.event().e1()) ; + Optional_line_2 l2 = compute_normalized_line_ceoffC2(st.event().e2()) ; bool ok = false ; @@ -488,16 +539,15 @@ optional< Point_2 > construct_normal_offset_lines_isecC2 ( Trisegment_2 co } } - CGAL_STSKEL_TRAITS_TRACE("\n x=" << x << "\n y=" << y ) + CGAL_STSKEL_TRAITS_TRACE("\nNormal event point: x=" << x << "\n y=" << y ) return cgal_make_optional(ok,K().construct_point_2_object()(x,y)) ; } -// Given 3 oriented line segments e0, e1 and e2 (passed in a SortedTrisegment record) +// Given 3 oriented line segments e0, e1 and e2 // such that their offsets at a certian distance intersect in a single point, // returns the coordinates (x,y) of such a point. -// e0 and e1 are collinear, not neccesarily consecutive but with the same orientaton, -// and e2 is NOT collinear with e0 and e1. +// two and only two of the edges are collinear, not neccesarily consecutive but with the same orientaton // // PRECONDITIONS: // The line coefficients must be normalized: aČ+bČ==1 and (a,b) being the leftward normal vector @@ -506,7 +556,7 @@ optional< Point_2 > construct_normal_offset_lines_isecC2 ( Trisegment_2 co // POSTCONDITION: In case of overflow an empty optional is returned. // template -optional< Point_2 > construct_degenerate_offset_lines_isecC2 ( Trisegment_2 const& trisegment ) +optional< Point_2 > construct_degenerate_offset_lines_isecC2 ( Seeded_trisegment_2 const& st ) { typedef typename K::FT FT ; @@ -516,12 +566,14 @@ optional< Point_2 > construct_degenerate_offset_lines_isecC2 ( Trisegment_2 Optional_point_2 ; typedef optional Optional_line_2 ; + CGAL_STSKEL_TRAITS_TRACE("Computing degenerate offset lines isec point") ; + FT x(0.0),y(0.0) ; + + Optional_line_2 l0 = compute_normalized_line_ceoffC2(st.event().collinear_edge ()) ; + Optional_line_2 l2 = compute_normalized_line_ceoffC2(st.event().non_collinear_edge()) ; - Optional_line_2 l0 = compute_normalized_line_ceoffC2(trisegment.collinear_edge_a ()) ; - Optional_line_2 l2 = compute_normalized_line_ceoffC2(trisegment.non_collinear_edge()) ; - - Optional_point_2 q = compute_collinear_seed_pointC2(trisegment); + Optional_point_2 q = compute_degenerate_seed_pointC2(st); bool ok = false ; @@ -532,6 +584,8 @@ optional< Point_2 > construct_degenerate_offset_lines_isecC2 ( Trisegment_2a(),l0->b(),l0->c(),q->x(),q->y(),px,py); + CGAL_STSKEL_TRAITS_TRACE("Seed point: (" << q->x() << "," << q->y() << "). Projected seed point: (" << px << "," << py << ")" ) ; + if ( ! CGAL_NTS is_zero(l0->b()) ) // Non-vertical { num = (l2->a() * l0->b() - l0->a() * l2->b() ) * px + l0->b() * l2->c() - l2->b() * l0->c() ; @@ -553,7 +607,7 @@ optional< Point_2 > construct_degenerate_offset_lines_isecC2 ( Trisegment_2b()) ? "(vertical)" : "") << " event point: x=" << x << "\n y=" << y ) return cgal_make_optional(ok,K().construct_point_2_object()(x,y)) ; } @@ -562,12 +616,12 @@ optional< Point_2 > construct_degenerate_offset_lines_isecC2 ( Trisegment_2 -optional< Point_2 > construct_offset_lines_isecC2 ( Trisegment_2 const& trisegment ) +optional< Point_2 > construct_offset_lines_isecC2 ( Seeded_trisegment_2 const& st ) { - CGAL_precondition ( trisegment.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; + CGAL_precondition ( st.event().collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - return trisegment.collinearity() == TRISEGMENT_COLLINEARITY_NONE ? construct_normal_offset_lines_isecC2 (trisegment) - : construct_degenerate_offset_lines_isecC2(trisegment) ; + return st.event().collinearity() == TRISEGMENT_COLLINEARITY_NONE ? construct_normal_offset_lines_isecC2 (st) + : construct_degenerate_offset_lines_isecC2(st) ; } // Give a point (px,py) and 3 oriented straight line segments e0,e1 and e2. @@ -582,7 +636,7 @@ optional< Point_2 > construct_offset_lines_isecC2 ( Trisegment_2 const& tr // template optional< typename K::FT> compute_offset_lines_isec_dist_to_pointC2 ( optional< Point_2 > const& p - , Trisegment_2 const& trisegment + , Seeded_trisegment_2 const& st ) { typedef typename K::FT FT ; @@ -597,7 +651,7 @@ optional< typename K::FT> compute_offset_lines_isec_dist_to_pointC2 ( optional< if ( p ) { - Optional_point_2 i = construct_offset_lines_isecC2(trisegment); + Optional_point_2 i = construct_offset_lines_isecC2(st); if ( i ) { diff --git a/Straight_skeleton_2/include/CGAL/predicates/Polygon_offset_pred_ftC2.h b/Straight_skeleton_2/include/CGAL/predicates/Polygon_offset_pred_ftC2.h index fecb81b7e6c..7d4a6efbe6d 100644 --- a/Straight_skeleton_2/include/CGAL/predicates/Polygon_offset_pred_ftC2.h +++ b/Straight_skeleton_2/include/CGAL/predicates/Polygon_offset_pred_ftC2.h @@ -30,11 +30,11 @@ namespace CGAL_SS_i // returns the relative order of 't' w.r.t 'et'. // PRECONDITION: There exist a positive distance et for which the offset triple intersect at a single point. template -Uncertain compare_offset_against_isec_timeC2 ( typename K::FT const& t, Trisegment_2 const& trisegment ) +Uncertain compare_offset_against_isec_timeC2 ( typename K::FT const& t, Seeded_trisegment_2 const& st ) { typedef typename K::FT FT ; - typedef Trisegment_2 Trisegment_2 ; + typedef Seeded_trisegment_2 Seeded_trisegment_2 ; typedef Rational Rational ; typedef Quotient Quotient ; @@ -43,7 +43,7 @@ Uncertain compare_offset_against_isec_timeC2 ( typename K::FT Uncertain rResult = Uncertain::indeterminate(); - Optional_rational et_ = compute_offset_lines_isec_timeC2(trisegment); + Optional_rational et_ = compute_offset_lines_isec_timeC2(st); if ( et_ ) { diff --git a/Straight_skeleton_2/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h b/Straight_skeleton_2/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h index f6a8ff22312..7823d6e7616 100644 --- a/Straight_skeleton_2/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h +++ b/Straight_skeleton_2/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h @@ -79,8 +79,7 @@ Uncertain are_edges_orderly_collinearC2( Segment_2 const& e0, Segment_2 ); } -// Returns true IFF segments e0,e1 do not share the same supporting line but are parallel, or share the -// supporting line but are not orderly collinear (that is, one doesn't follow the other) +// Returns true IFF the supporting lines for segments e0,e1 are parallel (or the same) template inline Uncertain are_edges_parallelC2( Segment_2 const& e0, Segment_2 const& e1 ) @@ -152,11 +151,17 @@ Uncertain certified_trisegment_collinearity ( Segment_2 // returns true if there exist some positive offset distance 't' for which the // leftward-offsets of their supporting lines intersect at a single point. // -// NOTE: This function allows e0 and e1 to be collinear if they are equally oriented, -// or parallel if they have opposite orientation. This allows the algorithm to handle degenerate vertices -// (formed by 3 collinear consecutive points) and mutually collapsing edge events. +// NOTE: This function can handle the case of collinear and/or parallel segments. +// +// If two segments are collinear but equally oriented (that is, they share a degenerate vertex) the event exists and +// is well defined, In that case, the degenerate vertex can be even a contour vertex or a skeleton node. If it is a skeleton +// node, it is properly defined by the event trisegment that corresponds to the node. +// A Seeded_trisegment stores not only the "current event" trisegment but also the trisegments for the left/right seed vertices. +// Those seeds are used to determine the actual position of the degenerate vertex in case of collinear edges (since that point is +// not given by the collinear edges alone) +// template -Uncertain exist_offset_lines_isec2 ( Trisegment_2 const& event ) +Uncertain exist_offset_lines_isec2 ( Seeded_trisegment_2 const& st ) { typedef typename K::FT FT ; @@ -165,11 +170,11 @@ Uncertain exist_offset_lines_isec2 ( Trisegment_2 const& event ) Uncertain rResult = Uncertain::indeterminate(); - if ( event.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) + if ( st.event().collinearity() != TRISEGMENT_COLLINEARITY_ALL ) { - CGAL_STSKEL_TRAITS_TRACE( ( event.collinearity() == TRISEGMENT_COLLINEARITY_NONE ? " normal edges" : " collinear edges" ) ) ; + CGAL_STSKEL_TRAITS_TRACE( ( st.event().collinearity() == TRISEGMENT_COLLINEARITY_NONE ? " normal edges" : " collinear edges" ) ) ; - Optional_rational t = compute_offset_lines_isec_timeC2(event) ; + Optional_rational t = compute_offset_lines_isec_timeC2(st) ; if ( t ) { Uncertain d_is_zero = CGAL_NTS certified_is_zero(t->d()) ; @@ -207,7 +212,9 @@ Uncertain exist_offset_lines_isec2 ( Trisegment_2 const& event ) // That is, indicates which offset triple intersects first (closer to the source lines) // PRECONDITION: There exist distances mt and nt for which each offset triple intersect at a single point. template -Uncertain compare_offset_lines_isec_timesC2 ( Trisegment_2 const& m, Trisegment_2 const& n ) +Uncertain compare_offset_lines_isec_timesC2 ( Seeded_trisegment_2 const& m + , Seeded_trisegment_2 const& n + ) { typedef typename K::FT FT ; @@ -219,9 +226,6 @@ Uncertain compare_offset_lines_isec_timesC2 ( Trisegment_2 Uncertain rResult = Uncertain::indeterminate(); - CGAL_assertion ( m.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - CGAL_assertion ( n.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - Optional_rational mt_ = compute_offset_lines_isec_timeC2(m); Optional_rational nt_ = compute_offset_lines_isec_timeC2(n); @@ -248,8 +252,8 @@ Uncertain compare_offset_lines_isec_timesC2 ( Trisegment_2 template Uncertain compare_offset_lines_isec_dist_to_pointC2 ( optional< Point_2 > const& p - , Trisegment_2 const& m - , Trisegment_2 const& n + , Seeded_trisegment_2 const& m + , Seeded_trisegment_2 const& n ) { typedef typename K::FT FT ; @@ -264,9 +268,6 @@ compare_offset_lines_isec_dist_to_pointC2 ( optional< Point_2 > const& p if ( p ) { - CGAL_assertion ( m.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - CGAL_assertion ( n.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - optional dm = compute_offset_lines_isec_dist_to_pointC2(p,m); optional dn = compute_offset_lines_isec_dist_to_pointC2(p,n); @@ -284,18 +285,12 @@ compare_offset_lines_isec_dist_to_pointC2 ( optional< Point_2 > const& p // PRECONDITION: There exist single points at which the offsets at 'st', 'mt' and 'nt' intersect. template Uncertain -compare_offset_lines_isec_dist_to_pointC2 ( Trisegment_2 const& s - , Trisegment_2 const& m - , Trisegment_2 const& n +compare_offset_lines_isec_dist_to_pointC2 ( Seeded_trisegment_2 const& s + , Seeded_trisegment_2 const& m + , Seeded_trisegment_2 const& n ) { - Uncertain rResult = Uncertain::indeterminate(); - - CGAL_assertion ( s.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - - rResult = compare_offset_lines_isec_dist_to_pointC2(construct_offset_lines_isecC2(s),m,n); - - return rResult ; + return compare_offset_lines_isec_dist_to_pointC2(construct_offset_lines_isecC2(s),m,n); } // Returns true if the point aP is on the positive side of the line supporting the edge @@ -319,9 +314,9 @@ Uncertain is_edge_facing_pointC2 ( optional< Point_2 > const& aP, Segme // at some distance intersects in a point (x,y), returns true if (x,y) is on the positive side of the line supporting aEdge // template -inline Uncertain is_edge_facing_offset_lines_isecC2 ( Trisegment_2 const& event, Segment_2 const& aEdge ) +inline Uncertain is_edge_facing_offset_lines_isecC2 ( Seeded_trisegment_2 const& st, Segment_2 const& aEdge ) { - return is_edge_facing_pointC2(construct_offset_lines_isecC2(event),aEdge); + return is_edge_facing_pointC2(construct_offset_lines_isecC2(st),aEdge); } @@ -337,7 +332,7 @@ inline Uncertain is_edge_facing_offset_lines_isecC2 ( Trisegment_2 cons // This predicate tells whether a split event, at (x,y), against z1, is effectively splitting the segment Z1' // instead of hitting the supporting offseted line z1' but outside the segment. // -// Events are defined in term of intersecting offset _lines_, not segments, thus if the event involves z1' +// Events are defined in terms of intersecting offset _lines_, not segments, thus if the event involves z1' // (that is, z1 is one of (e0,e1,e2)) then a neccesary condition for the event to actually exist is // that the point of coallision hits a segment of z1' as bounded by the vertices shared with z0' and z2', // and not just the line z1'. @@ -350,44 +345,44 @@ inline Uncertain is_edge_facing_offset_lines_isecC2 ( Trisegment_2 cons // // During the shrinking process, edges can anihiliate one another; that is, collide not in a single point // but along a line segment (reach a common supporting line simultaneously). -// This is possible if and only if the edges are parallel but not collinear. +// This is possible if and only if the edges are parallel. // Exactly at the time when such an anhiliation event ocurrs, the two initially parallel edges become connected -// in the offset polygon and form a degenerate alley or anntenna. Right after that the degenerate edges -// collapse and dissapears from the offset polygon and the rest of the process continues normally -// (or not if this is the very last event). -// Since Z0'->Z1'->Z2' are 3 edges _known_ to be connected at the time of the event defined by (e0,e1,e2), -// it might very well happen that z0 or z2 (or both) are parallel to z1. If that happens they never share -// a vertex except when they collapse in a common line, which is only an instant in the sense that -// right after that both edges dissappears from the wavefront. -// If z0 and/or z2 are parallel but not collinear to z1 they are connected in the offset polygons only when -// they collapsed into each other and in that instant Z1' is not (cannot) split by any opposite edge, thus, -// if z0 and/or z2 are parallel but not collinear to z2 the offset zone is "degenerate" and no split event is inside. +// and collinear in the offset polygon (form a degenerate alley or anntenna). +// The offset zone can be "degenerate" in the sense that Z0',Z1' or Z2' can be parallel and even collinear. +// +// Right _after_ an anhiliation event the degenerate edges collapse and dissapears from the offset polygon +// so no _subsequent_ event can involve such edges, but at the exact time of the anhilition various events +// can still involve the collapsed edges. Thus, a degnerate offset zone doesn't imply a split event cannot ocurr there. // // PRECONDITIONS: // There exist a single point at which the offset lines for e0,e1,e2 at 't' intersect. // 'z1' must be one of (e0,e1,e2); that is, (x,y) must be exactly over the offseted z1' at time 't'. // template -Uncertain is_offset_lines_isec_inside_offset_zoneC2 ( Trisegment_2 const& event, Trisegment_2 const& zone ) +Uncertain is_offset_lines_isec_inside_offset_zoneC2 ( Seeded_trisegment_2 const& st + , Seeded_trisegment_2 const& zone + ) { typedef typename K::FT FT ; typedef Point_2 Point_2 ; typedef Line_2 Line_2 ; + typedef Trisegment_2 Trisegment_2 ; + typedef optional Optional_point_2 ; typedef optional Optional_line_2 ; Uncertain r = Uncertain::indeterminate(); - CGAL_assertion ( event.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; + CGAL_assertion ( st.event().collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - Optional_line_2 zl = compute_normalized_line_ceoffC2(zone.e0()) ; - Optional_line_2 zc = compute_normalized_line_ceoffC2(zone.e1()) ; - Optional_line_2 zr = compute_normalized_line_ceoffC2(zone.e2()) ; + Optional_line_2 zl = compute_normalized_line_ceoffC2(zone.event().e0()) ; + Optional_line_2 zc = compute_normalized_line_ceoffC2(zone.event().e1()) ; + Optional_line_2 zr = compute_normalized_line_ceoffC2(zone.event().e2()) ; // Construct intersection point (x,y) - Optional_point_2 i = construct_offset_lines_isecC2(event); + Optional_point_2 i = construct_offset_lines_isecC2(st); if ( zl && zc && zr && i ) // all properly computed { @@ -414,7 +409,7 @@ Uncertain is_offset_lines_isec_inside_offset_zoneC2 ( Trisegment_2 cons // If L is case (1) then "i" is inside ZC1 and not ZC0 if the signed distance to zc is smaller than to zl // If L is case (2) then "i" is inside ZC1 and not ZC0 if the signed distance to zc is larger than to zl // If L is case (3) then "i" is inside ZC1 if its to the right of a line perpendicular to zc passing through L* - // where L* is a pseudo-vertex between collinear edges (the oriented midpoint between them) + // where L* is an offset-vertex between collinear edges // (likewise for R) @@ -434,12 +429,13 @@ Uncertain is_offset_lines_isec_inside_offset_zoneC2 ( Trisegment_2 cons { CGAL_STSKEL_TRAITS_TRACE("\ncorrect side of zc." ) ; - Uncertain lc_degenerate = are_edges_parallelC2(zone.e0(),zone.e1()); - Uncertain cr_degenerate = are_edges_parallelC2(zone.e1(),zone.e2()); + Uncertain lc_degenerate = are_edges_parallelC2(zone.event().e0(),zone.event().e1()); + Uncertain cr_degenerate = are_edges_parallelC2(zone.event().e1(),zone.event().e2()); if ( ! CGAL_NTS is_indeterminate(lc_degenerate) && ! CGAL_NTS is_indeterminate(cr_degenerate) ) { - Uncertain lok, rok ; + Uncertain lok = Uncertain::indeterminate() ; + Uncertain rok = Uncertain::indeterminate() ; if ( !lc_degenerate ) { @@ -460,7 +456,6 @@ Uncertain is_offset_lines_isec_inside_offset_zoneC2 ( Trisegment_2 cons : CGAL_NTS certified_is_larger_or_equal (sdl,sdc) ) ; } - } else { @@ -469,16 +464,40 @@ Uncertain is_offset_lines_isec_inside_offset_zoneC2 ( Trisegment_2 cons } else { - CGAL_STSKEL_TRAITS_TRACE("\nl:(zl,zc) is DEGENERATE") ; - Optional_point_2 l = compute_seed_pointC2(zone,0); +// std::cout << "Left zone vertex (zl,zc) is DEGENERATE." << std::endl ; +// std::cout << " zl=" << zone.e0() << std::endl ; +// std::cout << " zc=" << zone.e1() << std::endl ; + CGAL_STSKEL_TRAITS_TRACE("\nl:(zl,zc) is DEGENERATE") ; + Optional_point_2 l = compute_seed_pointC2(zone, Trisegment_2::LEFT); if ( l ) { +//std::cout << " l=(" << l->x() << "," << l->y() << ")" << std::endl ; +//std::cout << " i=(" << i->x() << "," << i->y() << ")" << std::endl ; FT na, nb, nc ; perpendicular_through_pointC2(zc->a(),zc->b(),l->x(),l->y(),na, nb, nc); - lok = certified_side_of_oriented_lineC2(na,nb,nc,i->x(),i->y()) != make_uncertain(POSITIVE); + Uncertain side = certified_side_of_oriented_lineC2(na,nb,nc,i->x(),i->y()) ; + if ( !is_indeterminate(side) ) + { +//std::cout << " Side of i=" << ((Sign)(side))<< std::endl ; + switch ( side ) + { + case POSITIVE : lok = make_uncertain(false) ; break ; + case NEGATIVE : lok = make_uncertain(true) ; break ; + case ZERO : + lok = certified_side_of_oriented_lineC2(na,nb,nc + ,zone.event().e0().source().x() + ,zone.event().e0().source().y() + ) == make_uncertain(POSITIVE) ; + break ; + } +//std::cout << " Left vertex ok=" << (is_indeterminate(lok) ? "" : ( (bool)lok ? "yes": "false") ) << std::endl ; + } +// else std::cout << " Unable to determine side of i" << std::endl ; } else { +//std::cout << " Unable to construct offset vertex" << std::endl ; + CGAL_STSKEL_TRAITS_TRACE("\nOverflow detected." ) ; } } @@ -510,16 +529,39 @@ Uncertain is_offset_lines_isec_inside_offset_zoneC2 ( Trisegment_2 cons } else { + //std::cout << "Right zone vertex (zc,zr) is DEGENERATE." << std::endl ; + //std::cout << " zc=" << zone.e1() << std::endl ; + //std::cout << " zr=" << zone.e2() << std::endl ; CGAL_STSKEL_TRAITS_TRACE("\nr:(zc,zr) is DEGENERATE") ; - Optional_point_2 r = compute_seed_pointC2(zone,1); + Optional_point_2 r = compute_seed_pointC2(zone,Trisegment_2::RIGHT); if ( r ) { +//std::cout << " r=(" << r->x() << "," << r->y() << ")" << std::endl ; +//std::cout << " i=(" << i->x() << "," << i->y() << ")" << std::endl ; FT na, nb, nc ; perpendicular_through_pointC2(zc->a(),zc->b(),r->x(),r->y(),na, nb, nc); - rok = certified_side_of_oriented_lineC2(na,nb,nc,i->x(),i->y()) != make_uncertain(NEGATIVE); + Uncertain side = certified_side_of_oriented_lineC2(na,nb,nc,i->x(),i->y()) ; + if ( !is_indeterminate(side) ) + { +//std::cout << " Side of i=" << ((Sign)(side))<< std::endl ; + switch ( side ) + { + case NEGATIVE : rok = make_uncertain(false); break ; + case POSITIVE : rok = make_uncertain(true) ; break ; + case ZERO : + rok = certified_side_of_oriented_lineC2(na,nb,nc + ,zone.event().e2().target().x() + ,zone.event().e2().target().y() + )== make_uncertain(NEGATIVE); + break ; + } +//std::cout << " Right vertex ok=" << (is_indeterminate(rok) ? "" : ( (bool)rok ? "yes": "false") ) << std::endl ; + } +// else std::cout << " Unable to determine side of i" << std::endl ; } else { +//std::cout << " Unable to construct offset vertex" << std::endl ; CGAL_STSKEL_TRAITS_TRACE("\nOverflow detected." ) ; } } @@ -561,7 +603,7 @@ Uncertain is_offset_lines_isec_inside_offset_zoneC2 ( Trisegment_2 cons // There exist single points at which the offset lines for 'l' and 'r' at 'tl', 'tr' intersect. // template -Uncertain are_events_simultaneousC2 ( Trisegment_2 const& l, Trisegment_2 const& r ) +Uncertain are_events_simultaneousC2 ( Seeded_trisegment_2 const& l, Seeded_trisegment_2 const& r ) { typedef typename K::FT FT ; @@ -578,9 +620,6 @@ Uncertain are_events_simultaneousC2 ( Trisegment_2 const& l, Trisegment Uncertain rResult = Uncertain::indeterminate(); - CGAL_assertion ( l.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - CGAL_assertion ( r.collinearity() != TRISEGMENT_COLLINEARITY_ALL ) ; - Optional_rational lt_ = compute_offset_lines_isec_timeC2(l); Optional_rational rt_ = compute_offset_lines_isec_timeC2(r);