Тема: Поиск блока (объекта) по щелчку
Здравствуйте!
У меня к Вам следующий вопрос.
На чертеже есть много замкнутых непересекающихся контуров. Допустим, они представляют собой замкнутые полилинии.
Моя задача - по щелчку пользователя найти контур, внутри которого был произведён щелчёк.
Пишу на C#.
Первое, что приходит в голову:
1) Реализовать проверку принадлежности точки замкнутой полилинии.
2) Найти все контуры, в BoundaryBox которых попадает входная точка.
3) Проверить каждый на попадание.
Выглядит как-то сложно для такой простой, на первый взгляд, задачи.
Я сначала пошёл другим путём. Я думал, что метод Editor.Snap(snapMode, inputPoint) возвращает ближайшую точку привязки. Тогда я бы выбрал режим привязки "ближайшая", и получил бы точку на ближайшем контуре. Вероятнее всего это и был бы искомый контур. Но, на сколько я понял, этот метод делает совершенно не это...
Может, есть какие-нибудь нативные способы реализации этой простой задачи? Я думал ещё использовать TraceBoundary, но он создаёт новые объекты (вернее объект, в моём случае). А мне нужен именно тот объект, который на чертеже.
Может, если преобразовать контуры в блоки - будет легче?
Спасибо за Вашу помощь!