Всем привет!
У меня вопрос. Как можно получить все объекты, входящие внутрь полилинии (границы этих объектов с полилинией не должны пересекаться)?
В следующем куске кода
var ed = doc.Editor;
var polyline = ...;
// Вот здесь я получаю коллекцию узлов полининии
AutocadApplicationGeometry.Point3dCollection ptOneColl = PolyToPoint3dCollection(polyline);
AutocadApplicatioEditorInput.PromptSelectionResult psrSelectWindows = ed.SelectWindowPolygon(ptOneColl);
var objectIds= psrSelectWindows.Value.GetObjectIds();
Но. На то метод и называется "SelectWindowPolygon", что он высчитывает по полигону (прямые линии у границ), составленному из узлов полилинии.
Но полилинии могут состоять и из дуг. А это косяк жесткий. Так как объект может находиться около дуги и по сути входить внутрь полилинии, а по факту построится такой полигон, что этот объект будет лежать прям на линии полигона, а значит не попадет в итоговую выборку (а должен).
Я думал, что можно временно создавать дубликат текущей полилинии, которая будет располагаться прям поверх исходной. Но у новой полининии на дуге поставить кучу узлов на их протяжении (чтобы в итоге из узлов этой полилинии можно было сделать полигон, но не бояться за то, что углы где-то срежутся). Только я не знаю, как это сделать.
Но мб есть и более человеческий и простой вариант
Поэтому и вопрос: как мне можно реализовать получение объектов, входящих внутрь замкнутой полилинии, которая состоит не только их прямых отрезков, но и из дуг?