intersection method

IntervalTree intersection(
  1. IntervalTree other
)

Implementation

IntervalTree intersection(IntervalTree other) {
  final result = IntervalTree();
  if (isEmpty || other.isEmpty) result;
  for (final iv in other) {
    var it = _tree.fromIterator(iv);
    while (it.movePrevious() && iv.intersects(it.current)) {
      result.add(iv.intersection(it.current));
    }
    it = _tree.fromIterator(iv, inclusive: false);
    while (it.moveNext() && iv.intersects(it.current)) {
      result.add(iv.intersection(it.current));
    }
  }
  return result;
}