// we always start at the leaf level
int depth = clusteringComponents.length - 1;
// fill the row with the position we *were* at (unless pre-start)
for (int i = clusteringSeeds.length ; i < row.row.length ; i++)
{
Generator gen = generator.valueComponents.get(i - clusteringSeeds.length);
long seed = clusteringSeeds[depth];
seed = seed(clusteringComponents[depth].peek(), generator.clusteringComponents.get(depth).type, seed);
gen.setSeed(seed);
row.row[i] = gen.generate();
}
clusteringComponents[depth].poll();
return advance(depth, continueChance);
}