signedArea4 function

double signedArea4(
  1. Offset p1,
  2. Offset p2,
  3. Offset p3,
  4. Offset p4,
)

Calculates the signed area of a 4-point polygon (quad). Optimized version without list allocation.

Implementation

@pragma('vm:prefer-inline')
double signedArea4(Offset p1, Offset p2, Offset p3, Offset p4) {
  return 0.5 *
      ((p1.dx * p2.dy - p2.dx * p1.dy) +
          (p2.dx * p3.dy - p3.dx * p2.dy) +
          (p3.dx * p4.dy - p4.dx * p3.dy) +
          (p4.dx * p1.dy - p1.dx * p4.dy));
}