Message 1 of 13
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi everybody.
I was searching for a method to remove colinear vertices from polyline today and couldn't find any thing readily available, so I had to write my own and I want to share this method with anybody needing it in the future.
public static void RemoveColinearVerticesPolyline(Polyline pline)
{
List<int> verticesToRemove = new List<int>();
for (int i = 0; i < pline.NumberOfVertices - 1; i++)
{
SegmentType st1 = pline.GetSegmentType(i);
SegmentType st2 = pline.GetSegmentType(i + 1);
if (st1 == SegmentType.Line && st1 == st2)
{
LineSegment2d ls2d1 = pline.GetLineSegment2dAt(i);
LineSegment2d ls2d2 = pline.GetLineSegment2dAt(i + 1);
if (ls2d1.IsColinearTo(ls2d2)) verticesToRemove.Add(i + 1);
}
}
verticesToRemove.Reverse();
pline.UpgradeOpen();
for (int j = 0; j < verticesToRemove.Count; j++)
pline.RemoveVertexAt(verticesToRemove[j]);
}
Solved! Go to Solution.