|
|
@@ -228,43 +228,16 @@ class xFormBoneNode(Node, xFormNode):
|
|
|
if prev_node:
|
|
|
other_nc = parsed_tree.get(get_signature_from_edited_tree(prev_node, context))
|
|
|
|
|
|
+ if nc and (pb := nc.bGetObject(mode='POSE')):
|
|
|
+ self.display_ik_settings = pb.is_in_ik_chain
|
|
|
+
|
|
|
if nc and other_nc:
|
|
|
self.display_vp_settings = nc.inputs["Custom Object"].is_connected
|
|
|
self.display_def_settings = nc.evaluate_input("Deform")
|
|
|
self.display_bb_settings = nc.evaluate_input("BBone Segments") > 1
|
|
|
self.display_ik_settings = False
|
|
|
#
|
|
|
- from .node_container_common import ( trace_all_lines_up,
|
|
|
- trace_single_line)
|
|
|
- #TODO find a much faster way to do this
|
|
|
- if False and self.id_data.do_live_update: #TODO this is extremely freaking slow
|
|
|
- trace = trace_all_lines_up(nc, "xForm Out")
|
|
|
-
|
|
|
- for key in trace.keys():
|
|
|
- if (ik_nc:= parsed_tree.get(key)):
|
|
|
- if ik_nc.__class__.__name__ in ["LinkInverseKinematics"]:
|
|
|
- # if the tree is invalid? This shouldn't be necessary.
|
|
|
- if ik_nc.inputs["Input Relationship"].is_connected:
|
|
|
- chain_count = ik_nc.evaluate_input("Chain Length")
|
|
|
- # if chain_count == 0: # this is wrong
|
|
|
- # self.display_ik_settings = True
|
|
|
- # else:
|
|
|
- if ik_nc.evaluate_input("Use Tail") == False:
|
|
|
- chain_count+=1
|
|
|
- for line in trace[key]:
|
|
|
- # preprocess it to get rid of non-xForms:
|
|
|
- xForm_line=[]
|
|
|
- for path_nc in line:
|
|
|
- if path_nc == ik_nc:
|
|
|
- if ik_nc.inputs["Input Relationship"].links[0].from_node != prev_path_nc:
|
|
|
- break # not a constraint connection
|
|
|
- if path_nc.node_type == 'XFORM':
|
|
|
- xForm_line.append(path_nc)
|
|
|
- prev_path_nc = path_nc
|
|
|
- else: # if it can finish cleaning the line of non-xForms and still has a connection
|
|
|
- if (len(xForm_line) < chain_count) or (chain_count == 0):
|
|
|
- self.display_ik_settings = True
|
|
|
-
|
|
|
+
|
|
|
inp = nc.inputs["Relationship"]
|
|
|
link = None
|
|
|
if inp.is_connected:
|