MaterialXParser.js 707 B

12345678910111213141516171819202122232425262728
  1. function parseMaterialXNodeTree( nodeXML, createNode, addNode, nodePath = '' ) {
  2. const materialXNode = createNode( nodeXML, nodePath );
  3. if ( materialXNode.nodePath ) {
  4. addNode( materialXNode );
  5. }
  6. for ( const childNodeXML of nodeXML.children ) {
  7. const childMXNode = parseMaterialXNodeTree( childNodeXML, createNode, addNode, materialXNode.nodePath );
  8. materialXNode.add( childMXNode );
  9. }
  10. return materialXNode;
  11. }
  12. function parseMaterialXText( text, createNode, addNode ) {
  13. const rootXML = new DOMParser().parseFromString( text, 'application/xml' ).documentElement;
  14. return parseMaterialXNodeTree( rootXML, createNode, addNode );
  15. }
  16. export { parseMaterialXNodeTree, parseMaterialXText };
粤ICP备19079148号