UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

36 lines (35 loc) 873 B
"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(); } }