@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
36 lines (35 loc) • 873 B
JavaScript
"use strict";
export class BaseEvaluator {
constructor(node) {
this.node = node;
this._watchStopHandles = [];
this.scene = node.scene();
this.timeController = this.scene.timeController;
}
onDispose(callback) {
this._onDisposeCallbacks = this._onDisposeCallbacks || [];
this._onDisposeCallbacks.push(callback);
}
dispose() {
const _disposeWatchEffects = () => {
if (!this._watchStopHandles) {
return;
}
let watchStopHandle;
while (watchStopHandle = this._watchStopHandles.pop()) {
watchStopHandle();
}
};
const _runOnDisposeCallback = () => {
if (!this._onDisposeCallbacks) {
return;
}
let callback;
while (callback = this._onDisposeCallbacks.pop()) {
callback();
}
};
_runOnDisposeCallback();
_disposeWatchEffects();
}
}