/// <summary>
 /// Returns the distance between the closest points on the line and the circle
 /// </summary>
 public static float LineCircle(Line2 line, Circle2 circle)
 {
     return(LineCircle(line.origin, line.direction, circle.center, circle.radius));
 }
 /// <summary>
 /// Returns the distance between the closest points on the line and the segment
 /// </summary>
 public static float LineSegment(Line2 line, Segment2 segment)
 {
     return(LineSegment(line.origin, line.direction, segment.a, segment.b));
 }
 /// <summary>
 /// Returns a distance to the closest point on the line
 /// </summary>
 public static float PointLine(Vector2 point, Line2 line)
 {
     return(Vector2.Distance(point, Closest.PointLine(point, line)));
 }
 /// <summary>
 /// Returns the distance between the closest points on the line and the ray
 /// </summary>
 public static float LineRay(Line2 line, Ray2D ray)
 {
     return(LineRay(line.origin, line.direction, ray.origin, ray.direction));
 }
 /// <summary>
 /// Returns the distance between the closest points on the lines
 /// </summary>
 public static float LineLine(Line2 lineA, Line2 lineB)
 {
     return(LineLine(lineA.origin, lineA.direction, lineB.origin, lineB.direction));
 }