// This depends on the logic in join_fragments to update the offset array when we complete a fragment static void add_fragment(Nested<CircleArc, false>& result, const RawArray<CircleArc>& fragment, bool reversed) { const int fragment_start = result.flat.size(); result.flat.extend(fragment); // Add the points inside this fragment if(reversed) reverse_arcs(result.flat.slice(fragment_start, result.flat.size())); // This just inserts straight lines between unconnected points; other options like smoothing could be done if needed result.flat.back().q = 0; }
void reverse_arcs(Nested<CircleArc> polyarcs) { for(auto poly : polyarcs) reverse_arcs(poly); }