getBorder method

List<Vec2> getBorder()

Implementation

List<Vec2> getBorder() {
  var border = <Vec2>[];

  if (this == Rect.nill || size.x == 0 || size.y == 0) return border;
  // TODO: address rects that are single rows or columns

  // top
  for (var x = left; x < right - 1; x++) {
    border.add(Vec2(x, top));
  }

  // right
  for (var y = top; y < bottom - 1; y++) {
    border.add(Vec2(right - 1, y));
  }

  // bottom
  for (var x = right - 1; x >= left; x--) {
    border.add(Vec2(x, bottom - 1));
  }

  // left
  for (var y = bottom - 1; y >= top; y--) {
    border.add(Vec2(left, y));
  }

  return border;
}