xRayIntersectsLine static method

bool xRayIntersectsLine(
  1. num x,
  2. num y,
  3. num x1,
  4. num y1,
  5. num x2,
  6. num y2,
)

Implementation

static bool xRayIntersectsLine(
  num x,
  num y,
  num x1,
  num y1,
  num x2,
  num y2,
) {
  if ((y - y1).abs() < 1.0E-8) {
    y1 += 1.0E-4;
  }

  if ((y - y2).abs() < 1.0E-8) {
    y2 += 1.0E-4;
  }

  num det;
  if (y1 < y && y < y2) {
    det = x2 * (y - y1) + x1 * (y2 - y) + x * (y1 - y2);
    return det + 1.0E-8 > 0.0;
  } else if (y2 < y && y < y1) {
    det = x2 * (y1 - y) + x1 * (y - y2) + x * (y2 - y1);
    return det + 1.0E-8 > 0.0;
  } else {
    return false;
  }
}