[Bf-extensions-cvs] [84405f65] master: Rigify: call request_reparent from build_parent to simplify skin API.

Alexander Gavrilov noreply at git.blender.org
Sat Aug 14 22:13:53 CEST 2021


Commit: 84405f65259958b835f3ec0325802e3003098678
Author: Alexander Gavrilov
Date:   Sat Aug 14 23:13:11 2021 +0300
Branches: master
https://developer.blender.org/rBA84405f65259958b835f3ec0325802e3003098678

Rigify: call request_reparent from build_parent to simplify skin API.

Realized this can be simplified while writing wiki dev docs...

===================================================================

M	rigify/rigs/skin/glue.py
M	rigify/rigs/skin/skin_nodes.py

===================================================================

diff --git a/rigify/rigs/skin/glue.py b/rigify/rigs/skin/glue.py
index 2fffc885..6f9400cd 100644
--- a/rigify/rigs/skin/glue.py
+++ b/rigify/rigs/skin/glue.py
@@ -293,10 +293,7 @@ class PositionQueryNode(ControlQueryNode):
 
     def initialize(self):
         if self.needs_reparent:
-            parent = self.build_parent()
-
-            if not self.rig_org:
-                self.merged_master.request_reparent(parent)
+            self.build_parent(reparent=not self.rig_org)
 
     def parent_bones(self):
         if self.rig_org:
diff --git a/rigify/rigs/skin/skin_nodes.py b/rigify/rigs/skin/skin_nodes.py
index 2fd04f9d..9fddb168 100644
--- a/rigify/rigs/skin/skin_nodes.py
+++ b/rigify/rigs/skin/skin_nodes.py
@@ -77,7 +77,7 @@ class BaseSkinNode(MechanismUtilityMixin, BoneUtilityMixin):
         result.is_parent_frozen = True
         return result
 
-    def build_parent(self, use=True):
+    def build_parent(self, use=True, reparent=False):
         """Create and activate if needed the parent mechanism for this node."""
         if not self.node_parent_built:
             self.node_parent = self.do_build_parent()
@@ -86,6 +86,9 @@ class BaseSkinNode(MechanismUtilityMixin, BoneUtilityMixin):
         if use:
             self.merged_master.register_use_parent(self.node_parent)
 
+        if reparent:
+            self.merged_master.request_reparent(self.node_parent)
+
         return self.node_parent
 
     @property
@@ -326,9 +329,7 @@ class ControlBoneNode(MainMergeNode, BaseSkinNode):
 
         # All nodes
         if self.node_needs_parent or self.node_needs_reparent:
-            parent = self.build_parent()
-            if self.node_needs_reparent:
-                self.merged_master.request_reparent(parent)
+            self.build_parent(reparent=self.node_needs_reparent)
 
     def prepare_bones(self):
         # Activate parent components once all reparents are registered



More information about the Bf-extensions-cvs mailing list