public List <GeoPoint> getIntersectionPoints(GeoPolygon another) { List <GeoPoint> result = new List <GeoPoint>(); foreach (var selfSegment in Segments) { foreach (var anotherSegment in another.Segments) { var resPoint = selfSegment.getIntersectionPoint(anotherSegment); if (resPoint != null) { result.Add(resPoint); } } } return(result); }
public bool isInPolygon(GeoPolygon polygon) { return(polygon.containsPoint(this)); }
public bool contains(GeoPolygon another) { return(Points.FindAll(x => x.isInPolygon(another)).Count == Points.Count); }
public bool intersectsWith(GeoPolygon another) { var pointsInAnother = Points.FindAll(x => x.isInPolygon(another)).Count; return(pointsInAnother > 0 && pointsInAnother < Points.Count); }