function addX3DDefaults (node) {
if ( node.hasAttribute("USE") ) { return node }
const concreteNode = concreteNodes.querySelector(`ConcreteNode[name=${node.tagName}]`);
if (!concreteNode) {
return
}
const fields = concreteNode.querySelectorAll("field[default]" );
fields.forEach( field => {
const type = field.getAttribute("type");
const name = field.getAttribute("name");
if ( type == "SFNode" || type == "MFNode" ) {
}
else {
if ( ! node.getAttribute(name) ) {
node.setAttribute(name, field.getAttribute("default"));
}
}
});
const children = node.children;
for ( let i=0; i < children.length; i++) {
addX3DDefaults(children[i]);
};
return node;
}