/// <summary>
/// Finds, provided it exists, the intersection point with the specified <see cref="LineSegment"/>.
/// </summary>
///
/// <param name="other"><see cref="LineSegment"/> to find intersection with.</param>
///
/// <returns>Returns intersection point with the specified <see cref="LineSegment"/>, or <see langword="null"/>,
/// if this line does not intersect with the segment.</returns>
///
/// <remarks><para>If the line and segment do not intersect, the method returns <see langword="null"/>.
/// If the line and segment share multiple points, the method throws an <see cref="InvalidOperationException"/>.
/// </para></remarks>
///
/// <exception cref="InvalidOperationException">Thrown if <paramref name="other"/> is a portion
/// of this line.</exception>
///
public Point?GetIntersectionWith(LineSegment other)
{
return(other.GetIntersectionWith(this));
}