Accueil / npm / three@0.186.1 / examples / jsm / loaders / materialx / parse / MaterialXParser.js

MaterialXParser.js

function parseMaterialXNodeTree( nodeXML, createNode, addNode, nodePath = '' ) {

	const materialXNode = createNode( nodeXML, nodePath );
	if ( materialXNode.nodePath ) {

		addNode( materialXNode );

	}

	for ( const childNodeXML of nodeXML.children ) {

		const childMXNode = parseMaterialXNodeTree( childNodeXML, createNode, addNode, materialXNode.nodePath );
		materialXNode.add( childMXNode );

	}

	return materialXNode;

}

function parseMaterialXText( text, createNode, addNode ) {

	const rootXML = new DOMParser().parseFromString( text, 'application/xml' ).documentElement;
	return parseMaterialXNodeTree( rootXML, createNode, addNode );

}

export { parseMaterialXNodeTree, parseMaterialXText };