/// <summary>
        /// Does a Point lie on the Arc line?
        /// </summary>
        /// <param name="point"></param>
        /// <param name="tolerance"></param>
        /// <returns></returns>
        public bool Contains(Vector2 point, double tolerance = GeometrySettings.DEFAULT_TOLERANCE)
        {
            bool conatins = false;

            // First, the distance from middlepoint to our Point must be equal to the radius:
            var distance = LineSegment2.CalcLenght(this.MiddlePoint, point);

            if (Math.Abs(distance - this.Radius) < tolerance)
            {
                // If this is true, we only need to check if we are in the arc angle

                var bowMiddle    = this.GetPointOnArc(this.Angle / 2);
                var l1           = new LineSegment2(this.Location, bowMiddle);
                var l2           = new LineSegment2(this.GetPointOnArc(this.Angle), bowMiddle);
                var intersection = new LineSegment2(this.MiddlePoint, point);

                conatins = intersection.IntersectLine(l1, tolerance).HasValue || intersection.IntersectLine(l2, tolerance).HasValue;
            }
            return(conatins);
        }
        /// <summary>
        /// Does a Point lie on the Arc line?
        /// </summary>
        /// <param name="point"></param>
        /// <param name="tolerance"></param>
        /// <returns></returns>
        public bool Contains(Vector2 point, double tolerance = GeometrySettings.DEFAULT_TOLERANCE)
        {
            bool conatins = false;

            // First, the distance from middlepoint to our Point must be equal to the radius:
            var distance = LineSegment2.CalcLenght(this.MiddlePoint, point);
            if (Math.Abs(distance - this.Radius) < tolerance)
            {
                // If this is true, we only need to check if we are in the arc angle

                var bowMiddle = this.GetPointOnArc(this.Angle/2);
                var l1 = new LineSegment2(this.Location, bowMiddle);
                var l2 = new LineSegment2(this.GetPointOnArc(this.Angle), bowMiddle);
                var intersection = new LineSegment2(this.MiddlePoint, point);

                conatins = intersection.IntersectLine(l1, tolerance).HasValue || intersection.IntersectLine(l2, tolerance).HasValue;

            }
            return conatins;
        }