intersect method
void
intersect(
- DRange range
)
Implementation
void intersect(DRange range) {
var newRanges = <SubRange>[];
void _intersect(SubRange subrange) {
var i = 0;
while (i < _ranges.length && !subrange.overlaps(_ranges[i])) {
i++;
}
while (i < _ranges.length && subrange.overlaps(_ranges[i])) {
var low = max(_ranges[i].low, subrange.low);
var high = min(_ranges[i].high, subrange.high);
newRanges.add(SubRange(low, high));
i++;
}
}
range._ranges.forEach(_intersect);
_ranges = newRanges;
_update_length();
}