isConvex property
bool
get
isConvex
Checks if the four corner points form a convex polygon.
Implementation
bool get isConvex {
final pts = toList();
bool? positive;
for (int i = 0; i < pts.length; i++) {
final p0 = pts[i];
final p1 = pts[(i + 1) % pts.length];
final p2 = pts[(i + 2) % pts.length];
final dx1 = p1.dx - p0.dx;
final dy1 = p1.dy - p0.dy;
final dx2 = p2.dx - p1.dx;
final dy2 = p2.dy - p1.dy;
final cross = dx1 * dy2 - dy1 * dx2;
if (cross == 0) continue;
final isPositive = cross > 0;
if (positive == null) {
positive = isPositive;
} else if (positive != isPositive) {
return false;
}
}
return true;
}