def make_armature(self, parent_node, armature): egg_group = EggGroup(armature.name) egg_group.set_dart_type(EggGroup.DT_structured) egg_joints = {} for bone_name, bone in armature.data.bones.items(): bone_matrix = get_bone_matrix(bone, armature) egg_transform = EggTransform() egg_transform.add_matrix4(matrix_to_panda(bone_matrix)) egg_joint = EggGroup(bone_name) egg_joint.set_group_type(EggGroup.GT_joint) egg_joint.add_matrix4(matrix_to_panda(bone_matrix)) egg_joint.set_default_pose(egg_transform) if bone.parent: egg_joints[bone.parent.name].add_child(egg_joint) else: # root bone egg_group.add_child(egg_joint) egg_joints[bone_name] = egg_joint self._setup_node(egg_group, armature) parent_node.add_child(egg_group) return egg_group