UNPKG

@polygonjs/polygonjs

Version:

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

37 lines (36 loc) 968 B
"use strict"; 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(); } }