-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtimer.js
45 lines (38 loc) · 1.01 KB
/
timer.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
// a realtime-based timer for T
import * as kadets from "./kadets-march-library.js";
/*
export default function setup( obj, march ) {
addTimer( obj, "T",1,kadets.get_duration(march),1.6 );
}
*/
export default function addTimer( obj,paramname, parammin, parammax, paramcoef ) {
/////////////////////////////
var playing=false;
var lasttick;
function ontick() {
//console.log("t");
var t = performance.now();
if (lasttick) {
var delta_s = (t - lasttick) /1000.0;
//var coef = 1.5;
var coef = obj.getParam("step_coef");
var nv = obj.getParam( paramname ) + delta_s*coef;
if (nv > parammax) nv = parammin;
obj.setParam("T",nv );
}
lasttick=t;
}
obj.addCmd("play/pause",function() {
if (playing) {
threejs.scene.removeEventListener( "render", ontick );
obj.signal("stop");
}
else {
threejs.scene.addEventListener( "render", ontick );
lasttick = undefined;
obj.signal("start");
}
playing = !playing;
});
obj.addSlider("step_coef", paramcoef ,1,2,0.1,function() {});
}