12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import NodeLoader from './NodeLoader.js';
- import NodeMaterialLoader from './NodeMaterialLoader.js';
- import { ObjectLoader } from 'three';
- class NodeObjectLoader extends ObjectLoader {
- constructor( manager ) {
- super( manager );
- this._nodesJSON = null;
- }
- parse( json, onLoad ) {
- this._nodesJSON = json.nodes;
- const data = super.parse( json, onLoad );
- this._nodesJSON = null; // dispose
- return data;
- }
- parseNodes( json, textures ) {
- if ( json !== undefined ) {
- const loader = new NodeLoader();
- loader.setTextures( textures );
- return loader.parseNodes( json );
- }
- return {};
- }
- parseMaterials( json, textures ) {
- const materials = {};
- if ( json !== undefined ) {
- const nodes = this.parseNodes( this._nodesJSON, textures );
- const loader = new NodeMaterialLoader();
- loader.setTextures( textures );
- loader.setNodes( nodes );
- for ( let i = 0, l = json.length; i < l; i ++ ) {
- const data = json[ i ];
- materials[ data.uuid ] = loader.parse( data );
- }
- }
- return materials;
- }
- }
- export default NodeObjectLoader;
|