docs: private void updateReferencePoint(Front front) {
      double[] maxObjectives = new double[numberOfObjectives];
      for (int i = 0; i < numberOfObjectives; i++) {
        maxObjectives[i] = 0;
      }
  
      for (int i = 0; i < front.getNumberOfPoints(); i++) {
        for (int j = 0; j < numberOfObjectives; j++) {
          if (maxObjectives[j] < front.getPoint(i).getValue(j)) {
            maxObjectives[j] = front.getPoint(i).getValue(j) ;
          }
        }
      }
  
      if (referencePoint == null) {
        referencePoint = new ArrayPoint(numberOfObjectives) ;
        for (int i = 0; i < numberOfObjectives ; i++) {
          referencePoint.setValue(i, Double.MAX_VALUE);
        }
      }
  
      for (int i = 0; i < referencePoint.getDimension(); i++) {
        referencePoint.setValue(i, maxObjectives[i] + offset);
      }
    }