class GraphLimits {

    private float minXoctree;
    private float maxXoctree;
    private float minYoctree;
    private float maxYoctree;
    private float minZoctree;
    private float maxZoctree;
    private Vec3f closestPoint = new Vec3f(0, 0, 0);
    private float maxWeight;
    private float minWeight;

    public synchronized float getMaxXoctree() {
        return maxXoctree;
    }

    public synchronized void setMaxXoctree(float maxXoctree) {
        this.maxXoctree = maxXoctree;
    }

    public synchronized float getMaxYoctree() {
        return maxYoctree;
    }

    public synchronized void setMaxYoctree(float maxYoctree) {
        this.maxYoctree = maxYoctree;
    }

    public synchronized float getMaxZoctree() {
        return maxZoctree;
    }

    public synchronized void setMaxZoctree(float maxZoctree) {
        this.maxZoctree = maxZoctree;
    }

    public synchronized float getMinXoctree() {
        return minXoctree;
    }

    public synchronized void setMinXoctree(float minXoctree) {
        this.minXoctree = minXoctree;
    }

    public synchronized float getMinYoctree() {
        return minYoctree;
    }

    public synchronized void setMinYoctree(float minYoctree) {
        this.minYoctree = minYoctree;
    }

    public synchronized float getMinZoctree() {
        return minZoctree;
    }

    public synchronized void setMinZoctree(float minZoctree) {
        this.minZoctree = minZoctree;
    }

    public synchronized float getDistanceFromPoint(float x, float y, float z) {<FILL_FUNCTION_BODY>}

    public void setClosestPoint(Vec3f closestPoint) {
        this.closestPoint = closestPoint;
    }

    public float getMaxWeight() {
        return maxWeight;
    }

    public void setMaxWeight(float maxWeight) {
        this.maxWeight = maxWeight;
    }

    public float getMinWeight() {
        return minWeight;
    }

    public void setMinWeight(float minWeight) {
        this.minWeight = minWeight;
    }
}


        float dis = (float) Math.sqrt(
            (closestPoint.x() - x) * (closestPoint.x() - x) + (closestPoint.y() - y) * (closestPoint.y() - y) +
                (closestPoint.z() - z) * (closestPoint.z() - z));
        return dis;

        //Minimum distance with the 8 points of the cube, poor method
        /*double min = Double.POSITIVE_INFINITY;
         min = Math.min(min,Math.sqrt((minXoctree-x)*(minXoctree-x)+(minYoctree-y)*(minYoctree-y)+(maxZoctree-z)*(maxZoctree-z)));
         min = Math.min(min,Math.sqrt((maxXoctree-x)*(maxXoctree-x)+(minYoctree-y)*(minYoctree-y)+(maxZoctree-z)*(maxZoctree-z)));
         min = Math.min(min,Math.sqrt((minXoctree-x)*(minXoctree-x)+(maxYoctree-y)*(maxYoctree-y)+(maxZoctree-z)*(maxZoctree-z)));
         min = Math.min(min,Math.sqrt((maxXoctree-x)*(maxXoctree-x)+(maxYoctree-y)*(maxYoctree-y)+(maxZoctree-z)*(maxZoctree-z)));
         min = Math.min(min,Math.sqrt((minXoctree-x)*(minXoctree-x)+(minYoctree-y)*(minYoctree-y)+(minZoctree-z)*(minZoctree-z)));
         min = Math.min(min,Math.sqrt((maxXoctree-x)*(maxXoctree-x)+(minYoctree-y)*(minYoctree-y)+(minZoctree-z)*(minZoctree-z)));
         min = Math.min(min,Math.sqrt((minXoctree-x)*(minXoctree-x)+(maxYoctree-y)*(maxYoctree-y)+(minZoctree-z)*(minZoctree-z)));
         min = Math.min(min,Math.sqrt((maxXoctree-x)*(maxXoctree-x)+(maxYoctree-y)*(maxYoctree-y)+(minZoctree-z)*(minZoctree-z)));
         return (float)min;*/
    
<no_super_class>