public boolean next() {
		int[] toff = this.roff.getShape();
		int l = itr.length - 1;
		if (itr[l] >= roff.getShape()[l]) {
			return false;
		}

		int j = 0;
		int len = toff.length - 1;
		while (j <= len) {
			itr[j]++;
			if (j != 0) {
				pos += jump[j - 1];
			} else {
				pos++;
			}
			if (itr[j] < toff[j]) {
				break;
			} else if (j == len) {
				break;
			} else {
				if (j == 0) {
					pos -= itr[j];
				} else {
					pos -= itr[j] * jump[j - 1];
				}
				itr[j] = 0;
			}
			j++;
		}
		if (itr[l] >= roff.getShape()[l]) {
			return false;
		}
		return true;
	}