serialize function

String serialize(
  1. List<List<double>> subs, [
  2. List<bool>? closed
])

Sampled subpaths → polyline d attribute. closed[k] appends Z to subpath k (closed loops in flight); without flags everything is open.

Implementation

String serialize(List<List<double>> subs, [List<bool>? closed]) {
  final d = StringBuffer();
  for (var k = 0; k < subs.length; k++) {
    final o = subs[k];
    final n = o.length ~/ 2;
    d.write('M${_fmt(o[0])} ${_fmt(o[1])}');
    for (var i = 1; i < n; i++) {
      d.write('L${_fmt(o[2 * i])} ${_fmt(o[2 * i + 1])}');
    }
    if (closed != null && k < closed.length && closed[k]) d.write('Z');
  }
  return d.toString();
}