|
|
@@ -14,7 +14,7 @@ def grp_node_reroute_common(in_node, out_node, interface):
|
|
|
# the inputs/outputs on the group and in/out nodes are IDs
|
|
|
from_node.outputs[from_socket].connect(
|
|
|
interface,in_node_input.name, sort_id = in_link.multi_input_sort_id)
|
|
|
- # in_link.die()
|
|
|
+ in_link.die()
|
|
|
init_connections(from_node)
|
|
|
for out_node_output in out_node.outputs:
|
|
|
while (out_node_output.links):
|
|
|
@@ -23,7 +23,7 @@ def grp_node_reroute_common(in_node, out_node, interface):
|
|
|
for l in interface.inputs[out_node_output.name].links:
|
|
|
interface.outputs[out_node_output.name].connect(
|
|
|
to_node, to_socket, sort_id = l.multi_input_sort_id)
|
|
|
- # out_link.die()
|
|
|
+ out_link.die()
|
|
|
init_dependencies(to_node)
|
|
|
init_dependencies(interface); init_connections(interface)
|
|
|
|
|
|
@@ -32,6 +32,7 @@ def reroute_links_grp(group, all_nodes):
|
|
|
interface = GroupInterface(
|
|
|
( *group.signature, "InputInterface"),
|
|
|
group.base_tree, group.prototype, 'INPUT',)
|
|
|
+ all_nodes[interface.signature] = interface
|
|
|
if group.inputs:
|
|
|
if group_input := all_nodes.get(( *group.signature, "NodeGroupInput")):
|
|
|
grp_node_reroute_common(group, group_input, interface)
|
|
|
@@ -44,6 +45,7 @@ def reroute_links_grpout(group_output, all_nodes):
|
|
|
interface = GroupInterface(
|
|
|
( *group.signature, "OutputInterface"),
|
|
|
group.base_tree, group.prototype, 'OUTPUT',)
|
|
|
+ all_nodes[interface.signature] = interface
|
|
|
grp_node_reroute_common(group_output, group, interface)
|
|
|
else:
|
|
|
prOrange(f"WARN: unconnected outputs from a node group "
|
|
|
@@ -56,7 +58,6 @@ def insert_lazy_parents(nc):
|
|
|
inherit_nc = None
|
|
|
if nc.inputs["Relationship"].is_connected:
|
|
|
link = nc.inputs["Relationship"].links[0]
|
|
|
- # print(nc)
|
|
|
from_nc = link.from_node
|
|
|
if from_nc.node_type in ["XFORM"] and link.from_socket in ["xForm Out"]:
|
|
|
inherit_nc = LinkInherit(("MANTIS_AUTOGENERATED", *nc.signature[1:], "LAZY_INHERIT"), nc.base_tree)
|
|
|
@@ -413,7 +414,6 @@ def parse_tree(base_tree, error_popups=False):
|
|
|
init_schema_dependencies(schema, all_mantis_nodes)
|
|
|
solve_only_these.extend(get_schema_length_dependencies(schema, all_mantis_nodes))
|
|
|
unsolved_schema.append(schema)
|
|
|
- print (solve_only_these)
|
|
|
for array in array_nodes:
|
|
|
if array not in solve_only_these: continue
|
|
|
solve_only_these.extend(get_schema_length_dependencies(array))
|
|
|
@@ -486,7 +486,8 @@ def parse_tree(base_tree, error_popups=False):
|
|
|
if nc.signature[0] == "MANTIS_AUTOGENERATED" and len(nc.inputs) == 0 and len(nc.outputs) == 1:
|
|
|
from .base_definitions import can_remove_socket_for_autogen
|
|
|
output=list(nc.outputs.values())[0]
|
|
|
- value=list(nc.parameters.values())[0] # IDEA modify the dependecy get function to exclude these nodes completely
|
|
|
+ value=list(nc.parameters.values())[0]
|
|
|
+ # We can remove this node if it is safe to push it into the other node's socket.
|
|
|
keep_me = False
|
|
|
for l in output.links:
|
|
|
to_node = l.to_node; to_socket = l.to_socket
|
|
|
@@ -622,9 +623,8 @@ def execute_tree(nodes, base_tree, context, error_popups = False):
|
|
|
check_and_add_root(nc, xForm_pass)
|
|
|
mContext.execution_failed = False
|
|
|
|
|
|
- switch_me = [] # switch the mode on these objects
|
|
|
+ select_me, switch_me = [], [] # switch the mode on these objects
|
|
|
active = None # only need it for switching modes
|
|
|
- select_me = []
|
|
|
try:
|
|
|
sorted_nodes, execution_failed = sort_execution(nodes, xForm_pass)
|
|
|
for n in sorted_nodes:
|
|
|
@@ -666,7 +666,6 @@ def execute_tree(nodes, base_tree, context, error_popups = False):
|
|
|
# switch to pose mode here so that the nodes can use the final pose data
|
|
|
# this will require them to update the depsgraph.
|
|
|
|
|
|
-
|
|
|
for ob in switch_me:
|
|
|
ob.data.pose_position = 'POSE'
|
|
|
|