Polygon centroid computation fixed#

An issue with vtkPolygon::ComputeCentroid() has been fixed.

Instead of projecting polygon points to the x-y or x-z plane, compute the center and then use a composite weighted-area triangulation to estimate the centroid. This is robust to non-planar polygons. The projection method would assume an x-y projection was acceptable with even minor perturbations from planarity for x-z polygons. This in turn would lead to a centroid placed on an edge of the polygon rather than near its center, causing other tests (such as vtkPolyhedron::IsConvex()) to fail seemingly at random.

This also adds a planarity tolerance to the computation of the centroid. If the polygon is significantly non-planar, the centroid computation will fail.