Rigify: call request_reparent from build_parent to simplify skin API.

Realized this can be simplified while writing wiki dev docs...
This commit is contained in:
Alexander Gavrilov 2021-08-14 23:13:11 +03:00
parent 31abe54983
commit 84405f6525
2 changed files with 6 additions and 8 deletions

View File

@ -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:

View File

@ -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