rectsForRange method

List<Rect> rectsForRange(
  1. int start,
  2. int end
)

Implementation

List<Rect> rectsForRange(int start, int end) {
  final List<Rect> rects = <Rect>[];
  int cursor = 0;
  for (final UDocTextRun run in runs) {
    final int runEnd = cursor + run.text.length;
    if (runEnd > start && cursor < end) {
      final int localStart = start > cursor ? start - cursor : 0;
      final int localEnd = end < runEnd ? end - cursor : run.text.length;
      rects.add(_glyphUnion(run, localStart, localEnd));
    }
    cursor = runEnd + 1;
  }
  return rects;
}