UNPKG

@polygonjs/polygonjs

Version:

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

60 lines (56 loc) 2.34 kB
// import {Material} from 'three'; // import {TypeAssert} from './../../../../poly/Assert'; // import {NodeParamsConfig} from './../../../utils/params/ParamsConfig'; // import {CustomMaterialName} from './../../../../../core/geometry/Material'; // import {Constructor} from '../../../../../types/GlobalTypes'; // import {ParamConfig} from '../../../utils/params/ParamsConfig'; // import {BaseBuilderParamConfig} from '../../_BaseBuilder'; // import {isBooleanTrue} from '../../../../../core/Type'; // import {TypedMatNode} from '../../_Base'; // export function CustomMaterialVolumeParamConfig<TBase extends Constructor>(Base: TBase) { // return class Mixin extends Base { // /** @param toggle off to choose which customMaterials will be generated */ // overrideCustomMaterials = ParamConfig.BOOLEAN(0); // /** @param distance */ // createCustomMatDistance = ParamConfig.BOOLEAN(1, { // visibleIf: {overrideCustomMaterials: 1}, // }); // /** @param depth */ // createCustomMatDepth = ParamConfig.BOOLEAN(1, { // visibleIf: {overrideCustomMaterials: 1}, // }); // /** @param depth DOF */ // createCustomMatDepthDOF = ParamConfig.BOOLEAN(1, { // visibleIf: {overrideCustomMaterials: 1}, // }); // }; // } // class CustomMaterialVolumeParamsConfig extends CustomMaterialVolumeParamConfig( // BaseBuilderParamConfig(NodeParamsConfig) // ) {} // abstract class CustomMaterialMatNode<M extends Material> extends TypedMatNode<M, CustomMaterialVolumeParamsConfig> {} // export function materialVolumeAssemblerCustomMaterialRequested( // node: CustomMaterialMatNode<any>, // customName: CustomMaterialName // ): boolean { // const param = node.p.overrideCustomMaterials; // if (!param) { // console.warn(`param overrideCustomMaterials not found on ${node.path()}, creating all customMaterials`); // return true; // } // if (!isBooleanTrue(node.pv.overrideCustomMaterials)) { // return true; // } // switch (customName) { // case CustomMaterialName.DISTANCE: { // return isBooleanTrue(node.pv.createCustomMatDistance); // } // case CustomMaterialName.DEPTH: { // return isBooleanTrue(node.pv.createCustomMatDepth); // } // case CustomMaterialName.DEPTH_DOF: { // return isBooleanTrue(node.pv.createCustomMatDepthDOF); // } // } // TypeAssert.unreachable(customName); // }