UNPKG

polygonjs-engine

Version:

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

62 lines (61 loc) 1.68 kB
import {BaseSopOperation} from "./_Base"; import {InputCloneMode as InputCloneMode2} from "../../../engine/poly/InputCloneMode"; export class ObjectPropertiesSopOperation extends BaseSopOperation { static type() { return "objectProperties"; } cook(input_contents, params) { const core_group = input_contents[0]; for (let object of core_group.objects()) { if (params.applyToChildren) { object.traverse((child) => { this._update_object(child, params); }); } else { this._update_object(object, params); } } return core_group; } _update_object(object, params) { if (params.tname) { object.name = params.name; } if (params.trenderOrder) { object.renderOrder = params.renderOrder; } if (params.tfrustumCulled) { object.frustumCulled = params.frustumCulled; } if (params.tmatrixAutoUpdate) { object.matrixAutoUpdate = params.matrixAutoUpdate; } if (params.tvisible) { object.visible = params.visible; } if (params.tcastShadow) { object.castShadow = params.castShadow; } if (params.treceiveShadow) { object.receiveShadow = params.receiveShadow; } } } ObjectPropertiesSopOperation.DEFAULT_PARAMS = { applyToChildren: false, tname: false, name: "", trenderOrder: false, renderOrder: 0, tfrustumCulled: false, frustumCulled: true, tmatrixAutoUpdate: false, matrixAutoUpdate: false, tvisible: false, visible: true, tcastShadow: false, castShadow: true, treceiveShadow: false, receiveShadow: true }; ObjectPropertiesSopOperation.INPUT_CLONED_STATE = InputCloneMode2.FROM_NODE;