UNPKG

@polygonjs/polygonjs

Version:

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

43 lines (42 loc) 1.54 kB
"use strict"; import { PointLightHelper } from "./utils/helpers/PointLightHelper"; import { BaseLightTransformedObjNode } from "./_BaseLightTransformed"; import { TransformedParamConfig } from "./utils/TransformController"; import { NodeParamsConfig } from "../utils/params/ParamsConfig"; import { HelperController } from "./utils/HelperController"; import { LightType } from "../../poly/registers/nodes/types/Light"; import { PointLightSopOperation } from "../../operations/sop/PointLight"; import { PointLightParamConfig } from "../../../core/lights/PointLight"; class PointLightObjParamsConfig extends PointLightParamConfig(TransformedParamConfig(NodeParamsConfig)) { } const ParamsConfig = new PointLightObjParamsConfig(); export class PointLightObjNode extends BaseLightTransformedObjNode { constructor() { super(...arguments); this.paramsConfig = ParamsConfig; this._helperController = new HelperController( this, PointLightHelper, "PointLightHelper" ); } static type() { return LightType.POINT; } initializeNode() { this._helperController.initializeNode(); } _operation() { return this.__operation__ = this.__operation__ || new PointLightSopOperation(this._scene, this.states, this); } createLight() { return this._operation().createLight(); } updateLightParams() { this._operation().updateLightParams(this.light, this.pv); this._helperController.update(); } updateShadowParams() { this._operation().updateShadowParams(this.light, this.pv); } }