https://www.theswamp.org/index.php?topic=57122.0I posted an algorithm, that if it works for the project should be able to be fairly easy to port to .NET
In function Createctin2.
1, generate the tin, save the triangles
2, filter triangles by angle to remove the outside edges, save these triangles.
3, iterate all the filtered triangle edges. Edges the don’t have a match are outside edges. I used a dictionary for this.
4, iterate all the outside triangles and order them clockwise.
5, iterate the outside edges, add the points to the polyline.
6, using the original tin, if the center of the triangle is inside the polyline, keep it.
I actually spent time trying to port Createctin to .NET, I tried to hand roll a R-tree and priority_queue classes but failed.