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 };