@Override
 public void computeArea(ConvexHull convexHull) {
   GeometricPoint[] closedPolygonFromHull = getClosedPolygonFromHull(convexHull);
   // init area to zero
   double area = 0;
   // sum up the cross products around each vertex of the hull
   for (int i = 0; i < closedPolygonFromHull.length - 1; i++) {
     double xUp = closedPolygonFromHull[i].getX();
     double yDown = closedPolygonFromHull[i + 1].getY();
     double yUp = closedPolygonFromHull[i].getY();
     double xDown = closedPolygonFromHull[i + 1].getX();
     area += (xUp * yDown) - (yUp * xDown);
   }
   convexHull.setArea(area / 2);
 }