validate method

bool validate()

Validate convexity. This is a very time consuming operation.

Implementation

bool validate() {
  for (var i = 0; i < vertices.length; ++i) {
    final i1 = i;
    final i2 = i < vertices.length - 1 ? i1 + 1 : 0;
    final p = vertices[i1];
    final e = Vector2.copy(vertices[i2])..sub(p);

    for (var j = 0; j < vertices.length; ++j) {
      if (j == i1 || j == i2) {
        continue;
      }

      final v = Vector2.copy(vertices[j])..sub(p);
      final c = e.cross(v);
      if (c < 0.0) {
        return false;
      }
    }
  }

  return true;
}