UNPKG

@polygonjs/polygonjs

Version:

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

30 lines (29 loc) 991 B
"use strict"; import { UpdateMatNode } from "./_Base"; import { NodeParamsConfig } from "../utils/params/ParamsConfig"; import { TextureEnvMapController, EnvMapParamConfig, isValidEnvMapMaterial } from "./utils/TextureEnvMapController"; class EnvMapMatParamsConfig extends EnvMapParamConfig(NodeParamsConfig) { } const ParamsConfig = new EnvMapMatParamsConfig(); export class EnvMapMatNode extends UpdateMatNode { constructor() { super(...arguments); this.paramsConfig = ParamsConfig; this.controllers = { envMap: new TextureEnvMapController(this) }; } static type() { return "envMap"; } async cook(inputMaterials) { const inputMaterial = inputMaterials[0]; const controller = this.controllers.envMap; if (isValidEnvMapMaterial(inputMaterial)) { await controller.updateMaterial(inputMaterial); this.setMaterial(inputMaterial); } else { this.states.error.set("input material does not have envMap properties"); } } }