three
Version:
JavaScript 3D library
29 lines (16 loc) • 707 B
JavaScript
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 };