UNPKG

@polygonjs/polygonjs

Version:

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

37 lines (32 loc) 1.39 kB
import {TypedLightObjNode} from './_BaseLight'; import {Object3D} from 'three'; // import {CoreTransform} from '../../../core/Transform'; import {NodeParamsConfig} from '../utils/params/ParamsConfig'; import {TransformController, TransformedParamConfig} from './utils/TransformController'; import {FlagsControllerD} from '../utils/FlagsController'; import {HierarchyController} from './utils/HierarchyController'; import {isPromise} from '../../../core/Type'; // import {Transformed} from './Concerns/Transformed'; class TransformedObjParamConfig extends TransformedParamConfig(NodeParamsConfig) {} export abstract class BaseLightTransformedObjNode< L extends Object3D, K extends TransformedObjParamConfig > extends TypedLightObjNode<L, K> { public override readonly flags: FlagsControllerD = new FlagsControllerD(this); override readonly hierarchyController: HierarchyController = new HierarchyController(this); override readonly transformController: TransformController = new TransformController(this); override initializeBaseNode() { super.initializeBaseNode(); this.hierarchyController.initializeNode(); this.transformController.initializeNode(); } override async cook() { this.transformController.update(); this.updateShadowParams(); const result = this.updateLightParams(); if (isPromise(result)) { await result; } this.cookController.endCook(); } }