function make_interpolators (prev, next, options = {}) {
if (prev.length == 0 && 0 == next.length) {
return [];
}
if (next.length == 0) {
return prev.map(op => flubber.interpolate(op.toPathData(), [op_center(op)], options));
}
if (prev.length == 0) {
return next.map(op => flubber.interpolate([op_center(op)], op.toPathData(), options));
}
var prevpaths = prev.map(op => op.toPathData());
var nextpaths = next.map(op => op.toPathData());
const N = Math.min(prevpaths.length - 1, nextpaths.length - 1);
var interpolators = [];
for (var i = 0; i < N; i++) {
interpolators.push(flubber.interpolate(prevpaths[i], nextpaths[i], options));
}
if (prevpaths.length > nextpaths.length) {
interpolators = interpolators.concat(flubber.combine(
prevpaths.slice(N),
nextpaths[nextpaths.length - 1],
options
));
} else {
interpolators = interpolators.concat(flubber.separate(
prevpaths[prevpaths.length - 1],
nextpaths.slice(N),
options
));
}
return interpolators;
}