@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
43 lines (42 loc) • 1.54 kB
JavaScript
;
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);
}
}