-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathlines.js
58 lines (52 loc) · 1.49 KB
/
lines.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
var line = []
for (i = 0; i < 48 + 36; i++) {
line[i] = []
}
function initLine () {
var latitude = []
var longtitude = []
for (var i = 0; i < 48; i++) { latitude[i] = [] }
for (var i = 0; i < 36; i++) { longtitude[i] = [] }
for (var j = 0; j < 48; j++) {
if (j % 2 !== 0) continue
for (var i = 0; i <= 36; i++) {
if (i < 2 || i > 34) continue
if (j % 4 === 2) if (i < 4 || i > 32) continue
var ij = 36 * j + i
latitude[j].push(ij)
}
for (var i = 0; i <= 36; i++) {
if (i < 2 || i > 34) continue
if (j % 4 === 2) if (i < 4 || i > 32) continue
var ij = 36 * j + i
line[j][ij] = new Line(ij, lineNbh(i - latitude[j][0] % 36, latitude[j], false))
}
}
for (var i = 0; i <= 36; i++) {
if (i < 2 || i > 34) continue
if (i % 2 !== 0) continue
for (var j = 0; j < 48; j++) {
var ij = 36 * j + i
longtitude[i].push(ij)
}
for (var j = 0; j < 48; j++) {
var ij = 36 * j + i
line[48 + i][ij] = new Line(ij, lineNbh(j, longtitude[i], true))
}
}
}
function lineNbh (pointer, lineSet, loop) {
var nbh = []
var next = (pointer + 1) % lineSet.length
var prev = (pointer + lineSet.length - 1) % lineSet.length
if (loop) {
nbh.push(lineSet[next])
nbh.push(lineSet[prev])
} else {
if (pointer === 0) { nbh.push(lineSet[next]) } else if (pointer === lineSet.length - 1) { nbh.push(lineSet[prev]) } else {
nbh.push(lineSet[next])
nbh.push(lineSet[prev])
}
}
return nbh
}