Добрый день, столкнулся со следущей проблемой.
Есть игровое поле IGameField, которое состоит из клеток (IGameCell).
IGameField умеет возвращать клетку по опреденным координатам:

Код:
getCellByPosition(x:Number,y:Number):IGameCell;
Имеется класс для выделения области SelectionArea, который умеет возвращать выделенную область

Код:
getSelectionArea():Rectangle;
Вопрос: каким наиболее правильным алогритмом можно реализовать метод который возвращает выделенные клетки из этой области

Код:
getSelectionCells(rectangle:Rectangle):Array;
Пока на ум приходит только определять клетки на вершинах выделенной области и как-то хитро бегать циклами по ним (как именно пока не придумал). Кто нибудь сталкивался с подобной проблемой? Что можно почитать по этой теме?
Спасибо за ответы.