Но мб есть и более человеческий и простой вариантНету. Правильный вариант - это сначала отобрать все объекты, которые теоретически могут попасть внутрь контура (например, по BoundingBox), а потом уже проверять попадают ли они в действительности (тут всё будет значительно сложнее и зависит от типа примитивов, которые нас могут интересовать).
Я думал, что можно временно создавать дубликат текущей полилинии, которая будет располагаться прям поверх исходной. Но у новой полининии на дуге поставить кучу узлов на их протяжении (чтобы в итоге из узлов этой полилинии можно было сделать полигон, но не бояться за то, что углы где-то срежутся). Только я не знаю, как это сделать.Здесь в коде есть алгоритм аппроксимации любой кривой (не только полилинии): http://adn-cis.org/poluchenie-tochek-peresecheniya-krivoj-i-ploskosti.html
Еще хочу напомнить, что точки, которые передаются для SelectWindowPolygon должны быть в ПСК и все (!!!) видны на экране.
Но мб есть и более человеческий и простой вариантНету. Правильный вариант - это сначала отобрать все объекты, которые теоретически могут попасть внутрь контура (например, по BoundingBox), а потом уже проверять попадают ли они в действительности (тут всё будет значительно сложнее и зависит от типа примитивов, которые нас могут интересовать).
Даже если взять просто координаты обычной точки, то как проверить, что мы кликнули внутри полилинии?Ну это то совсем просто. Даже статья есть на эту тему: http://adn-cis.org/kak-sredstvami-opredelit-raspolozhenie-tochki-otnositelno-kontura.html