@Override
 public boolean relaxOperatingArea(Point point, Direction direction, int miles) {
   OperatingAreaRelaxation relaxation = OperatingAreaRelaxation.getInstance();
   Polygon p = relaxation.relax(this.ploygon, direction, miles);
   if (p.contains(point)) {
     return true;
   }
   return false;
 }
  @Override
  public double getShortestDistanceToBoundary(Point point) {

    Point[] points = ploygon.getPoints();
    double[] x_coord = new double[points.length];
    double[] y_coord = new double[points.length];
    for (int i = 0; i < points.length; i++) {
      x_coord[i] = points[i].x();
      y_coord[i] = points[i].y();
    }
    SimplePolygon2D polygon2D = new SimplePolygon2D(x_coord, y_coord);
    return polygon2D.distance(point.x(), point.y());
  }
  @Override
  public boolean isCovered(Point point) {

    return ploygon.contains(point);
  }