Python API: implement `PoseBone.children` via `Bone.children`.
Currently `PoseBone.children` is implemented by a linear scan of the list of armature bones. This is doubly inefficient, since not only is it scanning all bones, the `obj.data.bones` list is actually synthetic and generated from Bone children lists. Instead, use the `Bone.children` native RNA property. Differential Revision: https://developer.blender.org/D12727
This commit is contained in:
parent
497d0400bd
commit
1996efe7aa
|
@ -378,10 +378,9 @@ class PoseBone(StructRNA, _GenericBone, metaclass=StructMetaPropGroup):
|
|||
def children(self):
|
||||
obj = self.id_data
|
||||
pbones = obj.pose.bones
|
||||
self_bone = self.bone
|
||||
|
||||
return tuple(pbones[bone.name] for bone in obj.data.bones
|
||||
if bone.parent == self_bone)
|
||||
# Use Bone.children, which is a native RNA property.
|
||||
return tuple(pbones[bone.name] for bone in self.bone.children)
|
||||
|
||||
|
||||
class Bone(StructRNA, _GenericBone, metaclass=StructMetaPropGroup):
|
||||
|
|
Loading…
Reference in New Issue