-
Notifications
You must be signed in to change notification settings - Fork 0
/
classes.js
123 lines (105 loc) · 2.33 KB
/
classes.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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
function NodeLink(path, url, href)
{
this.path = path;
this.url = url;
this.href = href;
}
function Edge (source, target)
{
this.source = source;
this.target = target;
}
function Node (id, point, velocity, nodeLink, visibility)
{
this.number = id;
this.location = point;
this.velocity = velocity;
this.visibility = visibility;
this.color = "red";
this.nodeLink = nodeLink;
this.springLength = springLength;
this.totalPageLinks = 0;
this.newPosition = (vector) =>
{
this.location.x += vector.i;
this.location.y += vector.j;
}
this.sumVectors = (vector, type) =>
{
if(type=="add")
{
this.velocity.i += vector.i;
this.velocity.j += vector.j;
}
else
{
this.velocity.i -= vector.i;
this.velocity.j -= vector.j;
}
}
this.toString = () =>
{
console.log( 'id: ' + this.number +
' Loc: ' + this.location.toString() +
this.velocity.toString() );
};
}
function Point(x, y)
{
this.x = x;
this.y = y;
this.changeLocation = (x,y) =>
{
this.x = x;
this.y = y;
}
this.alterPosition = (node) =>
{
this.x += node.location.x;
this.y += node.location.y;
};
this.toString = () => {
return (' X: ' + Number.parseFloat(this.x).toFixed(2) + ', Y: ' + Number.parseFloat(this.y).toFixed(2)) ;
};
}
function Vector (i, j)
{
this.i = i;
this.j = j;
this.reset = function ()
{
this.i = 0;
this.j = 0; // degrees
};
this.toString = () => {
return ( ' I: ' + Number.parseFloat(this.i).toFixed(2) + ', J: ' + Number.parseFloat(this.j).toFixed(2) ) ;
};
}
function randomMinMax(minVal,maxVal,floatVal)
{
var randVal = minVal+(Math.random()*(maxVal-minVal));
return typeof floatVal=='undefined'?Math.round(randVal):randVal.toFixed(floatVal);
}
function createMultiArray(rows, cols)
{
let i, j, a = new Array(rows);
for (i=0; i < rows; i++)
{
a[i] = new Array(cols);
for (j=0; j < cols; j++)
{
a[i][j] = "";
}
}
return(a);
}
// for non referenced copies
Object.prototype.clone = function() {
var newObj = (this instanceof Array) ? [] : {};
for (i in this) {
if (i == 'clone') continue;
if (this[i] && typeof this[i] == "object") {
newObj[i] = this[i].clone();
} else newObj[i] = this[i]
} return newObj;
};