From 84405f65259958b835f3ec0325802e3003098678 Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Sat, 14 Aug 2021 23:13:11 +0300 Subject: Rigify: call request_reparent from build_parent to simplify skin API. Realized this can be simplified while writing wiki dev docs... --- rigify/rigs/skin/glue.py | 5 +---- rigify/rigs/skin/skin_nodes.py | 9 +++++---- 2 files changed, 6 insertions(+), 8 deletions(-) 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 -- cgit v1.2.3