-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutil.js
executable file
·37 lines (32 loc) · 1012 Bytes
/
util.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
// syntactic sugar function for getting default parameter values
function getopt(opt, field_name, default_value) {
if (typeof field_name === 'string') {
// case of single string
return (typeof opt[field_name] !== 'undefined') ? opt[field_name] : default_value;
} else {
// assume we are given a list of string instead
var ret = default_value;
for (var i = 0; i < field_name.length; i++) {
var f = field_name[i];
if (typeof opt[f] !== 'undefined') {
ret = opt[f]; // overwrite return value
}
}
return ret;
}
}
function clip(ori, floor, ceil) {
let v = ori;
if (v < floor) v = floor; else if (v > ceil) v = ceil;
return v;
}
function normalize_angle(angle) {
let nangle = angle % (Math.PI * 2);
if (nangle < 0) nangle += 2 * Math.PI;
return nangle;
}
export {
getopt, clip, normalize_angle,
};
// TODO: remove later
export { AvgWindow } from 'util/record.js';