From e1abb88b7eff030a367575cd72661a37050045ac Mon Sep 17 00:00:00 2001 From: "florentin.luce" Date: Tue, 10 Jun 2025 16:53:14 +0200 Subject: [PATCH] create shape in rihg picker collections --- operators/shape.py | 15 +++++++++++++-- properties.py | 10 ++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/operators/shape.py b/operators/shape.py index 2f32bd2..b86e3dd 100644 --- a/operators/shape.py +++ b/operators/shape.py @@ -20,6 +20,14 @@ class RP_OT_create_shape(Operator): @classmethod def poll(cls, context): return (context.object and context.object.mode == 'POSE') + + def invoke(self, context, event): + return context.window_manager.invoke_props_dialog(self) + + def draw(self, context): + for col in bpy.data.collections: + if col.rig_picker.enabled: + self.layout.prop(col.rig_picker, 'link_shape', text=col.name) def execute(self,context): scn = context.scene @@ -40,8 +48,11 @@ class RP_OT_create_shape(Operator): mesh.from_pydata(verts, edges, faces) - for c in scn.rig_picker.canvas.users_collection: - c.objects.link(ob) + for col in bpy.data.collections: + if col.rig_picker.link_shape: + col.objects.link(ob) + else: + scn.collection.objects.link(ob) ob.location.z = 0.05 ob.location.x = offset diff --git a/properties.py b/properties.py index 66caa77..8ea6ea4 100644 --- a/properties.py +++ b/properties.py @@ -44,15 +44,14 @@ class RP_PG_object_ui_settings(bpy.types.PropertyGroup): name: StringProperty() -class RP_PG_scene_ui_settings(bpy.types.PropertyGroup): +class RP_PG_collection_ui_settings(bpy.types.PropertyGroup): enabled : BoolProperty(default=False) rig: PointerProperty(type=bpy.types.Object) canvas: PointerProperty(type=bpy.types.Object) symmetry: PointerProperty(type=bpy.types.Object) - #idname: EnumProperty(items=[]) destination: StringProperty(subtype='FILE_PATH') - #bone_list: bpy.props.EnumProperty(items = bones_item use_pick_bone : BoolProperty(default=False) + link_shape : BoolProperty(default=False) class RP_OT_operator_selector(bpy.types.Operator): @@ -78,7 +77,7 @@ class RP_OT_operator_selector(bpy.types.Operator): classes = ( RP_PG_picker_source, RP_PG_object_ui_settings, - RP_PG_scene_ui_settings, + RP_PG_collection_ui_settings, RP_PG_armature_ui_settings, RP_OT_operator_selector, ) @@ -89,8 +88,7 @@ def register(): bpy.types.Armature.rig_picker = bpy.props.PointerProperty(type=RP_PG_armature_ui_settings) bpy.types.Object.rig_picker = bpy.props.PointerProperty(type=RP_PG_object_ui_settings) - bpy.types.Scene.rig_picker = bpy.props.PointerProperty(type=RP_PG_scene_ui_settings) - bpy.types.Collection.rig_picker = bpy.props.PointerProperty(type=RP_PG_scene_ui_settings) + bpy.types.Collection.rig_picker = bpy.props.PointerProperty(type=RP_PG_collection_ui_settings) def unregister(): del bpy.types.Scene.rig_picker