/// <summary>
        /// Polygon - Line intersection
        /// </summary>
        /// <param name="other"></param>
        /// <param name="tolerance"></param>
        /// <returns></returns>
        private IEnumerable <Vector2> InterceptLine(LineSegment2 other, double tolerance = GeometrySettings.DEFAULT_TOLERANCE)
        {
            var intersections = new List <Vector2>();
            var thisLines     = ToLines();

            foreach (var line in thisLines)
            {
                var intersection = other.Intersect(line);
                intersections.AddRange(intersection);
            }
            return(intersections);
        }
 /// <summary>
 /// Polygon - Line intersection
 /// </summary>
 /// <param name="other"></param>
 /// <param name="tolerance"></param>
 /// <returns></returns>
 private IEnumerable<Vector2> InterceptLine(LineSegment2 other, double tolerance = GeometrySettings.DEFAULT_TOLERANCE)
 {
     var intersections = new List<Vector2>();
     var thisLines = ToLines();
     foreach (var line in thisLines)
     {
         var intersection = other.Intersect(line);
         intersections.AddRange(intersection);
     }
     return intersections;
 }