/// <summary>
        /// Arc-Line Interception
        /// </summary>
        /// <param name="uLine">Line to check</param>
        /// <param name="tolerance"></param>
        /// <returns>Returns the interception Point(s) if the Objects collide</returns>
        private List <Vector2> InterceptLine(LineSegment2 uLine, double tolerance = GeometrySettings.DEFAULT_TOLERANCE)
        {
            var intersections = new List <Vector2>();

            // Stretch the line on both ends by tolerance
            // TODO Is this still necessary??
            var strechtedLine = (uLine.Clone() as LineSegment2);

            strechtedLine.Stretch(tolerance, Direction.LEFT);
            strechtedLine.Stretch(tolerance, Direction.RIGHT);
            uLine = strechtedLine;


            // Intersect with a circle and test inter points if they lie on our arc
            var circle = new Circle2(this.MiddlePoint, this.Radius);

            foreach (var possiblePnt in circle.Intersect(uLine, tolerance))
            {
                if (this.Contains(possiblePnt, tolerance))
                {
                    intersections.Add(possiblePnt);
                }
            }

            return(intersections);
        }
        /// <summary>
        /// Arc-Line Interception
        /// </summary>
        /// <param name="uLine">Line to check</param>
        /// <param name="tolerance"></param>
        /// <returns>Returns the interception Point(s) if the Objects collide</returns>
        private List<Vector2> InterceptLine(LineSegment2 uLine, double tolerance = GeometrySettings.DEFAULT_TOLERANCE)
        {
            var intersections = new List<Vector2>();

            // Stretch the line on both ends by tolerance
            // TODO Is this still necessary??
            var strechtedLine = (uLine.Clone() as LineSegment2);
            strechtedLine.Stretch(tolerance, Direction.LEFT);
            strechtedLine.Stretch(tolerance, Direction.RIGHT);
            uLine = strechtedLine;


            // Intersect with a circle and test inter points if they lie on our arc
            var circle = new Circle2(this.MiddlePoint, this.Radius);
            foreach (var possiblePnt in circle.Intersect(uLine, tolerance))
            {
                if (this.Contains(possiblePnt, tolerance))
                {
                    intersections.Add(possiblePnt);
                }
            }
            
            return intersections;
        }