lineToLine static method

bool lineToLine(
  1. Line a,
  2. Line b
)

Implementation

static bool lineToLine(Line a, Line b) {
  final d1 = a.p2 - a.p1;
  final d2 = b.p2 - b.p1;

  final denom = d1.cross(d2);

  if (denom == 0) {
    return pointToLine(b.p1, a) || pointToLine(b.p2, a);
  }

  final diff = b.p1 - a.p1;
  final t = diff.cross(d2) / denom;
  final u = diff.cross(d1) / denom;

  return t >= 0 && t <= 1 && u >= 0 && u <= 1;
}