UNPKG

polygonjs-engine

Version:

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

35 lines (34 loc) 1.01 kB
import {BaseController as BaseController2} from "./_BaseController"; import {Material as Material2} from "three/src/materials/Material"; import {NodeParamsConfig, ParamConfig} from "../../utils/params/ParamsConfig"; import {TypedMatNode} from "../_Base"; export function SkinningParamConfig(Base2) { return class Mixin extends Base2 { constructor() { super(...arguments); this.skinning = ParamConfig.BOOLEAN(0); } }; } class SkinnedMaterial extends Material2 { } class SkinningParamsConfig extends SkinningParamConfig(NodeParamsConfig) { } class SkinningMatNode extends TypedMatNode { create_material() { return new SkinnedMaterial(); } } export class SkinningController extends BaseController2 { constructor(node) { super(node); this.node = node; } static update(node) { const new_skinning = node.pv.skinning; if (new_skinning != node.material.skinning) { node.material.skinning = new_skinning; node.material.needsUpdate = true; } } }