---
scribo/scribo/util/component_precise_outline.hh | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/scribo/scribo/util/component_precise_outline.hh
b/scribo/scribo/util/component_precise_outline.hh
index b618cb7..490b814 100644
--- a/scribo/scribo/util/component_precise_outline.hh
+++ b/scribo/scribo/util/component_precise_outline.hh
@@ -275,12 +275,16 @@ namespace scribo
waypoints.append(*first_pt);
unsigned i = 1;
const point2d* cur_pt = & points[i];
+ bool has_changed = false;
while (i < nelements)
{
+ has_changed = false;
+
while (cur_pt->row() == first_pt->row()
|| cur_pt->col() == first_pt->col())
{
+ has_changed = true;
++i;
if (i == nelements)
break;
@@ -301,6 +305,13 @@ namespace scribo
}
}
+ if (!has_changed)
+ {
+ ++i;
+ last_pt = cur_pt;
+ if (i < nelements)
+ cur_pt = & points[i];
+ }
waypoints.append(*last_pt);
first_pt = last_pt;
last_pt = first_pt;
@@ -308,6 +319,11 @@ namespace scribo
waypoints.append(*cur_pt);
}
+ else
+ {
+ for (unsigned i = 0; i < nelements; ++i)
+ waypoints.append(points[i]);
+ }
}
} // end of namespace scribo::util::internal
--
1.5.6.5