@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
30 lines (29 loc) • 991 B
JavaScript
;
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");
}
}
}