mirror of https://github.com/CGAL/cgal
parent
1709486fba
commit
8e59f3fc9d
|
|
@ -533,7 +533,7 @@ private:
|
||||||
// list for subsequences sharing a common move_on indicator. When we
|
// list for subsequences sharing a common move_on indicator. When we
|
||||||
// encounter such a subsequence that equals the size of the corresponding
|
// encounter such a subsequence that equals the size of the corresponding
|
||||||
// polygon, we can safely remove it from the convolution cycle.
|
// polygon, we can safely remove it from the convolution cycle.
|
||||||
typename std::list<Labeled_segment_2>::iterator first, curr;
|
typename std::list<Labeled_segment_2>::iterator first, curr, newins;
|
||||||
bool move_on;
|
bool move_on;
|
||||||
unsigned int count = 1;
|
unsigned int count = 1;
|
||||||
bool reduced_cycle = false;
|
bool reduced_cycle = false;
|
||||||
|
|
@ -611,7 +611,7 @@ private:
|
||||||
res = f_compare_xy(curr_pt, next_pt);
|
res = f_compare_xy(curr_pt, next_pt);
|
||||||
|
|
||||||
if (res != EQUAL) {
|
if (res != EQUAL) {
|
||||||
cycle.insert(curr,
|
newins = cycle.insert(curr,
|
||||||
Labeled_segment_2(Segment_2(curr_pt, next_pt),
|
Labeled_segment_2(Segment_2(curr_pt, next_pt),
|
||||||
X_curve_label((res == SMALLER),
|
X_curve_label((res == SMALLER),
|
||||||
cycle_id,
|
cycle_id,
|
||||||
|
|
@ -621,7 +621,13 @@ private:
|
||||||
|
|
||||||
cycle.erase(curr);
|
cycle.erase(curr);
|
||||||
cycle.erase(next);
|
cycle.erase(next);
|
||||||
|
if (res != EQUAL) {
|
||||||
|
//continue comparing the new combined line with the next line
|
||||||
|
curr = newins;
|
||||||
|
}
|
||||||
|
else {
|
||||||
curr = after_next;
|
curr = after_next;
|
||||||
|
}
|
||||||
|
|
||||||
if (after_next != cycle.end()) {
|
if (after_next != cycle.end()) {
|
||||||
next = curr;
|
next = curr;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue