MCPcopy Create free account
hub / github.com/AcademySoftwareFoundation/MaterialX / loadDataLibrary

Function loadDataLibrary

python/Scripts/comparenodedefs.py:634–662  ·  view source on GitHub ↗

Load a data library MTLX document. Returns (nodes, defaults).

(mtlxPath)

Source from the content-addressed store, hash-verified

632# -----------------------------------------------------------------------------
633
634def loadDataLibrary(mtlxPath):
635 '''Load a data library MTLX document. Returns (nodes, defaults).'''
636 doc = mx.createDocument()
637 mx.readFromXmlFile(doc, str(mtlxPath))
638
639 nodes = {}
640 defaults = {} # (nodeName, signature) -> {portName -> (value, isGeomprop)}
641
642 for nodedef in doc.getNodeDefs():
643 nodeName = nodedef.getNodeString()
644 node = nodes.setdefault(nodeName, NodeInfo(name=nodeName))
645
646 # Build signature from this nodedef
647 sigInputs = {inp.getName(): inp.getType() for inp in nodedef.getInputs()}
648 sigOutputs = {out.getName(): out.getType() for out in nodedef.getOutputs()}
649 sig = NodeSignature.create(sigInputs, sigOutputs)
650 node.signatures.add(sig)
651
652 # Store defaults keyed by signature
653 sigDefaults = {}
654 for inp in nodedef.getInputs():
655 if inp.hasDefaultGeomPropString():
656 sigDefaults[inp.getName()] = (inp.getDefaultGeomPropString(), True)
657 elif inp.getValue() is not None:
658 sigDefaults[inp.getName()] = (inp.getValue(), False)
659 if sigDefaults:
660 defaults[(nodeName, sig)] = sigDefaults
661
662 return nodes, defaults
663
664
665# -----------------------------------------------------------------------------

Callers 1

mainFunction · 0.85

Calls 7

strClass · 0.85
NodeInfoClass · 0.85
getNameMethod · 0.45
getTypeMethod · 0.45
createMethod · 0.45
addMethod · 0.45
getValueMethod · 0.45

Tested by

no test coverage detected