Skip to content

Commit

Permalink
Merge pull request #68 from PrismPipeline/fix_gltf_node_types
Browse files Browse the repository at this point in the history
fix gltf node types
  • Loading branch information
manuelkoester authored Jun 21, 2024
2 parents 2877fc8 + 319efb9 commit 9421fe1
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 31 deletions.
5 changes: 3 additions & 2 deletions src/QuiltiX/mx_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,13 +102,13 @@ def get_mx_node_group_dict(mx_node_defs):
mx_node_group_dict.setdefault(mx_node_group, {})
mx_node_group_key = mx_node_group_dict[mx_node_group]

mx_node_def_type = get_mx_node_def_type(mx_node_def)
mx_node_def_type = get_displaytype_from_mx_def(mx_node_def)
mx_node_group_key.setdefault(mx_node_def_name, {})[mx_node_def_type] = mx_node_def

return mx_node_group_dict


def get_mx_node_def_type(mx_node_def):
def get_displaytype_from_mx_def(mx_node_def):
# return mx_node_def.getType()

mx_node_def_string = mx_node_def.getNodeString()
Expand All @@ -127,4 +127,5 @@ def get_mx_node_def_type(mx_node_def):
else "ND_"
)
mx_node_def_type = mx_node_def_full_name.replace(all_but_type_string, "")

return mx_node_def_type
42 changes: 15 additions & 27 deletions src/QuiltiX/qx_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,38 +101,26 @@ def __init__(self, node_type=None, node_graph=None):

@classmethod
def from_mx_node(cls, mx_node, node_graph=None):
mx_def_type = cls.get_mx_def_type_from_mx_node(cls, mx_node)
mx_def_type = cls.get_displaytype_from_mx_node(cls, mx_node)
qx_node = cls(node_type=mx_def_type, node_graph=node_graph)
return qx_node

def get_mx_def_type_from_mx_node(self, mx_node):
def match_inputs(mx_node):
mx_node_input_types = [o.getType() for o in mx_node.getActiveInputs()]
for mx_def in self.possible_mx_defs.values():
mx_def_input_types = [o.getType() for o in mx_def.getActiveInputs()]
if mx_node_input_types == mx_def_input_types:
# TODO reverse lookup from dict instead
from QuiltiX.mx_node import get_mx_node_def_type
return get_mx_node_def_type(mx_def)
return None

# TODO: is matching inputs enough?
if matched_def := match_inputs(mx_node):
return matched_def
elif (mx_node_type := mx_node.getType()) in self.possible_mx_defs:
return mx_node_type
# return self.possible_mx_defs[mx_node.getType()]
elif (mx_node_category := mx_node.getCategory()) in self.possible_mx_defs:
return mx_node_category
else:
# TODO: log error, definition can't be found
logger.warning(
f"Could not find matching definition for type '{mx_node.getType()}' of node '{mx_node.getName()}'."
)
return None
def get_displaytype_from_mx_node(self, mx_node):
from QuiltiX.mx_node import get_displaytype_from_mx_def
mx_def = mx_node.getNodeDef()
if mx_def:
return get_displaytype_from_mx_def(mx_def)

mx_category = mx_node.getCategory()
if mx_category in self.possible_mx_defs:
return mx_category

logger.warning(
f"Could not find matching definition for type '{mx_node.getType()}' of node '{mx_node.getName()}'."
)

def update_from_mx_node(self, mx_node):
mx_def_type = self.get_mx_def_type_from_mx_node(mx_node)
mx_def_type = self.get_displaytype_from_mx_node(mx_node)
if not mx_def_type:
return

Expand Down
8 changes: 6 additions & 2 deletions src/QuiltiX/qx_nodegraph.py
Original file line number Diff line number Diff line change
Expand Up @@ -780,16 +780,20 @@ def load_graph_from_mx_doc(self, doc):
had_pos = False
qx_node_to_mx_node = {}

mx_nodes = doc.getNodes()
mx_graphs = doc.getNodeGraphs()
doc.importLibrary(self.mx_library_doc)

# Create Nodes
for cur_mx_node in doc.getNodes():
for cur_mx_node in mx_nodes:
if cur_mx_node.hasAttribute("xpos") and cur_mx_node.hasAttribute("ypos"):
had_pos = True

cur_qx_node = self.create_node_from_mx_node(cur_mx_node)

qx_node_to_mx_node[cur_qx_node] = cur_mx_node

for mx_graph in doc.getNodeGraphs():
for mx_graph in mx_graphs:
ng_node = self.create_nodegraph_from_mx_nodegraph(mx_graph)
for cur_mx_node in mx_graph.getNodes():
if cur_mx_node.hasAttribute("xpos") and cur_mx_node.hasAttribute("ypos"):
Expand Down

0 comments on commit 9421fe1

Please sign in to comment.