Template Blocks

Examples
Basic example
const ts = new Timestamp();
const snapshot = ts.get();
const now = new Const(snapshot);
const delta = new Diff(ts, now);
setInterval(function() {
console.log(delta.get());
}, 500);
Basic example - compact writing
const ts = new Timestamp();
const delta = ts.pipe(Diff, ts.toConst());
setInterval(function() {
console.log(delta.get());
}, 500);
Advanced example
const loop = new Loop();
const mousePosition = new GetMousePosition();
const mousePositionSnapshot = mousePosition.toVar();
const mouseMoving = new Var(false)
.execute(function() {
const snapshot = mousePosition.toConst();
const equal = snapshot.pipe(Equals, mousePositionSnapshot);
mousePositionSnapshot.set(snapshot);
return equal;
})
.evaluatePeriodically(loop);
const lightIntensity = new Var(0)
.execute(function(ref) {
return ref
.pipe(
Add,
new If(mouseMoving, new Const(1), new Const(-1))
.pipe(Mul, new Const(4))
.pipe(Mul, loop.dt)
)
.pipe(Clamp, new Const(0), new Const(1));
})
.observe(console.log)
.evaluatePeriodically(loop);