Hopefully medial axis thinwall and thin gap work will allow us to avoid the tradeoffs involved in higher/lower miter limit values. 3 gives some spikes, but merges gaps; 1 reduces spikes but leaves gaps Medial axis thinwall work should fill in/link those gaps.
reducing code to approach that's working
for outer perimeter - otherwise they come up short and don't merge with the perimeter for cases like the "rake" in #281
instead of following part contour between 1x and 2x width because the all-centered case avoids complexity better handled by future dynamic flow work
Improved and moved some edge angle (theta and phi) calculations upstream to Boost::Geometry::Utils. EdgeView constructor now takes key=>value args. EdgeView->next/prev/twin, if not already defined, auto-generates EdgeView on underlying Edge. Simplified edge to point list conversion, and left-right determination. Fixed offset edge point interpolation that used wrong endpoint on one end.
…al width and height. The commit includes a bugfix to the Polyline->grow() method and some simplification in the Line class which is now child of Polyline
Conflicts: lib/Slic3r/Layer/Region.pm Only significant conflict is change to first perimiter inset-outset cycle - making the inset the same as for other perimeters, and just reducing the following outset. This gives consistent behavior with regard to where polygons "turn around" when headed toward thin features, making the turn around happen at about 2x extrusion width for the outer perimeter, as it does for the inner perimiters.
starting to work as intended on test objects
When slicing yoda.stl it reduces peak memory usage by 5% and speeds up slicing by 13%. Further optimization using a simple proxy to implement the two methods (size/extends) needed on the merge meshes is also possible and undoubtedly worthwhile.