private Vector3 GetPos(int x, int z, int max)
    {
        float t  = (x + z) / (max * 2f);
        float xT = (float)x / max;
        float zT = (float)z / max;

        float yPox = BezierUtil.GetCubic(
            t,
            BezierUtil.GetCubic(xT, 0f, _ampl00, _ampl01, 0f),
            BezierUtil.GetCubic(zT, 0f, _ampl10, _ampl11, 0f),
            BezierUtil.GetCubic(zT, 0f, _ampl20, _ampl21, 0f),
            BezierUtil.GetCubic(xT, 0f, _ampl30, _ampl31, 0f)
            );

        return(new Vector3(
                   x,
                   roundFloorYPos ? Mathf.Floor(yPox) : yPox,
                   z
                   ));
    }