toSegments method

  1. @override
Iterable<BufferSegment> toSegments()
override

Convert this range to segments of single lines.

Implementation

@override
Iterable<BufferSegment> toSegments() sync* {
  var begin = this.begin;
  var end = this.end;

  if (!isNormalized) {
    end = this.begin;
    begin = this.end;
  }

  final startX = min(begin.x, end.x);
  final endX = max(begin.x, end.x);
  for (var i = begin.y; i <= end.y; i++) {
    yield BufferSegment(this, i, startX, endX);
  }
}