throw new IllegalArgumentException("elements < 3: This is not a Polygon.");
}
this.vertices = vertices;
this.verticesCached = new Vec2[elements];
this.center = calculateCenter();
this.centerCached = new Vec2();
this.normals = new Vec2[elements];
for (int i = 0; i < normals.length; i++) normals[i] = new Vec2();
this.mat = new Mat4();
this.aabb = new Rect();
this.circBounds = createCircularBounds(circBounds);
updateFromMatrix();
}