Выделение элементов

За выделение объектов на видовом экране отвечает класс, наследник от абстрактного класса SelectionSet. Он за возвращение списка всех выделяемых элементов, выделение элементов и их хранение, а также за копирование элементов через буфер обмена и их перемещение, если это необходимо. Каждый слой видового экрана при реализации возвращает свой экземпляр SelectionSet.

Если слой не поддерживает выделение элементов, то в качестве SelectionSet можно вернуть экземпляр DefaultSelectionSet. Это реализация по умолчанию, не позволяющая выделить элементы.

Для реализации наследника от SelectionSet необходимо реализовать следующие функции и методы:

Select - предназначен для выделения или снятия выделения с объекта.

Clear - снимает выделение со всех выделенных объектов

Erase - удаляет все выделенные объекты.

GetObjectsAtPoint - возвращает список элементов в указанной точке и расстояние до них.

GetObjectsByFrame - выделение объектов рамкой

GetObjectsByPolygon - выделение объектов полигоном. В данный момент метод не поддерживается.

GetEnumerator - перечисление выделенных объектов.

GetSelectable - перечисление всех объектов которые можно выделить.

Count - количество выделенных элементов

IsEnable - проверяет включен ли объект на этом SelectionSet.

IsOwned - проверяет принадлежит ли объект выделяемым объектам этого SelectionSet.

IsSelected - проверяет выделен ли объект на этом SelectionSet.

В функцию GetObjectsAtPoint в качестве параметра приходит временной интервал, в течении которого вы должны завершить выполнение функции. Если интервал равен 0 то время на выполнение функции не ограничено.