LineIntersection function

Vector2? LineIntersection(
  1. Vector2 pointa,
  2. Vector2 dira,
  3. Vector2 pointb,
  4. Vector2 dirb,
)

Implementation

VM.Vector2? LineIntersection(final VM.Vector2 pointa, final VM.Vector2 dira,
    final VM.Vector2 pointb, final VM.Vector2 dirb) {
  double det = dira.cross(dirb);
  // Parallel check
  if (det == 0.0) return null;
  double t = (pointb - pointa).cross(dirb) / det;
  return pointa + dira * t;
}