12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import NodeMaterial from './NodeMaterial.js';
- import LineBasicNodeMaterial from './LineBasicNodeMaterial.js';
- import MeshNormalNodeMaterial from './MeshNormalNodeMaterial.js';
- import MeshBasicNodeMaterial from './MeshBasicNodeMaterial.js';
- import MeshPhongNodeMaterial from './MeshPhongNodeMaterial.js';
- import MeshStandardNodeMaterial from './MeshStandardNodeMaterial.js';
- import MeshPhysicalNodeMaterial from './MeshPhysicalNodeMaterial.js';
- import PointsNodeMaterial from './PointsNodeMaterial.js';
- import SpriteNodeMaterial from './SpriteNodeMaterial.js';
- export {
- NodeMaterial,
- LineBasicNodeMaterial,
- MeshNormalNodeMaterial,
- MeshBasicNodeMaterial,
- MeshPhongNodeMaterial,
- MeshStandardNodeMaterial,
- MeshPhysicalNodeMaterial,
- PointsNodeMaterial,
- SpriteNodeMaterial
- };
- NodeMaterial.fromMaterial = function ( material ) {
- const materialLib = {
- NodeMaterial,
- LineBasicNodeMaterial,
- MeshNormalNodeMaterial,
- MeshBasicNodeMaterial,
- MeshPhongNodeMaterial,
- MeshStandardNodeMaterial,
- MeshPhysicalNodeMaterial,
- PointsNodeMaterial,
- SpriteNodeMaterial
- };
- const type = material.type.replace( 'Material', 'NodeMaterial' );
- if ( materialLib[ type ] === undefined ) {
- if ( material.isNodeMaterial !== true ) {
- throw new Error( `NodeMaterial: Material "${ material.type }" is not compatible.` );
- }
- return material; // is already a node material
- }
- const nodeMaterial = new materialLib[ type ]();
- for ( const key in material ) {
- nodeMaterial[ key ] = material[ key ];
- }
- return nodeMaterial;
- };
|