View difference between Paste ID: Wp50xuxW and SESMzK7E
SHOW: | | - or go back to the newest paste.
1-
var segments = [5, 4]; 
1+
var boundingVector = [5, 3, 3]; 
2-
var radius = 1;
2+
3
// A generic function to copy the tuple
4
function copy(array) {
5
    var newArray = [];
6
    for (var i = 0; i < array.length; i++) {
7
        newArray[i] = array[i];
8
    }
9
    return newArray;
10
}
11
12
// A function that computes the successor of a given tuple
13
function getNextTuple(lastGeneratedTuple) {
14
    var newTuple = copy(lastGeneratedTuple)
15
    for (i = boundingVector.length - 1; i >= 0; i--) {
16-
    for (i = segments.length - 1; i >= 0; i--) {
16+
17
              // continue incrementing the next coordinate, else we are done
18
        newTuple[i]++;
19
        if (newTuple[i] > boundingVector[i] - 1) {
20-
        if (newTuple[i] > segments[i] - 1) {
20+
21
        }
22
        else {
23
            break;
24
        }
25
    }
26
    return newTuple;
27
}
28
29
// A function that enumerates all possible tuples
30
function enumerateAllTuples() {
31
32
// The number of tuples is the product of all segments
33
    var numberOfTuples = 1;
34
    for (i = 0; i < boundingVector.length; i++) {
35-
    for (i = 0; i < segments.length; i++) {
35+
        numberOfTuples *= boundingVector[i];
36-
        numberOfTuples *= segments[i];
36+
37
    var allTuples = [],
38
        zeroTuple = [];
39
    for (var i = 0; i < boundingVector.length; i++) {
40-
    for (var i = 0; i < segments.length; i++) {
40+
41
    }
42
    allTuples[0] = zeroTuple;
43
    for (i = 1; i < numberOfTuples; i++) {
44
        allTuples[i] = getNextTuple(allTuples[i - 1]);
45
    }
46
    return allTuples;
47
}