@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
37 lines (36 loc) • 968 B
JavaScript
;
import { ParamConfig } from "../../../utils/params/ParamsConfig";
import { isBooleanTrue } from "../../../../../core/BooleanValue";
const CallbackOptions = {
computeOnDirty: false,
callback: (node) => {
SceneAutoUpdateController.update(node);
}
};
export function SceneAutoUpdateParamConfig(Base) {
return class Mixin extends Base {
constructor() {
super(...arguments);
/** @param autoUpdate */
this.autoUpdate = ParamConfig.BOOLEAN(1, {
...CallbackOptions,
separatorBefore: true
});
}
};
}
export class SceneAutoUpdateController {
constructor(node) {
this.node = node;
}
async update() {
const scene = this.node.object;
const pv = this.node.pv;
if (isBooleanTrue(pv.autoUpdate) != scene.matrixWorldAutoUpdate) {
scene.matrixWorldAutoUpdate = isBooleanTrue(pv.autoUpdate);
}
}
static async update(node) {
node.sceneAutoUpdateController.update();
}
}