Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2021-10-01 15:30:12 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2021-10-14 19:44:37 +0300
commit1996efe7aa2e0edc9887ad34bc59e2ab911e2d02 (patch)
treeb4a276ce1bcdd2f1ea5276a5252e8b4c8328ccc7 /release/scripts/modules/bpy_types.py
parent497d0400bdcd9fc932b7a875c5364934b1a96b07 (diff)
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
Diffstat (limited to 'release/scripts/modules/bpy_types.py')
-rw-r--r--release/scripts/modules/bpy_types.py5
1 files changed, 2 insertions, 3 deletions
diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py
index 8a1615ad99f..26efb6e3307 100644
--- a/release/scripts/modules/bpy_types.py
+++ b/release/scripts/modules/bpy_types.py
@@ -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):