distanceSquaredSegmentToSegment function

double distanceSquaredSegmentToSegment(
  1. Offset a1,
  2. Offset a2,
  3. Offset b1,
  4. Offset b2,
)

Returns squared shortest distance between line segments a1-a2 and b1-b2.

Implementation

double distanceSquaredSegmentToSegment(
  Offset a1,
  Offset a2,
  Offset b1,
  Offset b2,
) {
  if (segmentsIntersect(a1, a2, b1, b2)) {
    return 0;
  }
  final d1 = distanceSquaredPointToSegment(a1, b1, b2);
  final d2 = distanceSquaredPointToSegment(a2, b1, b2);
  final d3 = distanceSquaredPointToSegment(b1, a1, a2);
  final d4 = distanceSquaredPointToSegment(b2, a1, a2);
  return math.min(math.min(d1, d2), math.min(d3, d4));
}