[Bf-extensions-cvs] [65259f8] master: Removing anim selection sets in favor of bone selecton sets in the addons repo
Ines Almeida
noreply at git.blender.org
Sat Mar 5 21:10:16 CET 2016
Commit: 65259f8cb8d194438ae5f720b3b5681903da0a5b
Author: Ines Almeida
Date: Sat Mar 5 21:11:31 2016 +0000
Branches: master
https://developer.blender.org/rBAC65259f8cb8d194438ae5f720b3b5681903da0a5b
Removing anim selection sets in favor of bone selecton sets in the addons repo
===================================================================
D anim_selection_sets.py
===================================================================
diff --git a/anim_selection_sets.py b/anim_selection_sets.py
deleted file mode 100644
index 101b4e0..0000000
--- a/anim_selection_sets.py
+++ /dev/null
@@ -1,355 +0,0 @@
- # ***** BEGIN GPL LICENSE BLOCK *****
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License
- # as published by the Free Software Foundation; either version 2
- # of the License, or (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, see <http://www.gnu.org/licenses/>
- # and write to the Free Software Foundation, Inc., 51 Franklin Street,
- # Fifth Floor, Boston, MA 02110-1301, USA..
- #
- # The Original Code is Copyright (C) 2012 Blender Foundation ###
- # All rights reserved.
- #
- #
- # The Original Code is: all of this file.
- #
- # Contributor(s): Dan Eicher.
- #
- # ***** END GPL LICENSE BLOCK *****
-
-# <pep8 compliant>
-
-import string
-import bpy
-
-bl_info = {
- "name": "Selection Set",
- "author": "Dan Eicher",
- "version": (0, 1, 1),
- "blender": (2, 65, 4),
- "location": "Properties > Object data (Armature) > Selection Sets",
- "description": "Selection Sets to select groups of posebones",
- "warning": "Proxy armatures need to export sets and "
- "run generated script on re-opening file",
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
- "Scripts/Animation/SelectionSets",
- "tracker_url": "https://developer.blender.org/T31492",
- "category": "Animation"
-}
-
-
-script_template = '''# generated by ANIM_OT_selection_set_export -- abandon all hope, ye who hand edit!
-
-import bpy
-
-def selection_set_import():
- arm = bpy.data.armatures['${name}']
-
- set_list = [${set_list}
- ]
-
- for name, bones in set_list:
- if arm.selection_sets.find(name) == -1:
- sel_set = arm.selection_sets.add()
- sel_set.name = name
-
- for bone in bones:
- set_bone = sel_set.bones.add()
- set_bone.name = bone
-
-
-if __name__ == "__main__":
- selection_set_import()
-'''
-
-
-def generic_poll(context):
- return (context.mode == 'POSE' and context.object and context.object.type == 'ARMATURE')
-
-
-def active_selection_set_update_func(self, context):
- idx = self.active_selection_set
- if idx < -1 or idx >= len(self.selection_sets):
- self.active_selection_set = -1
- raise IndexError('Armature.active_selection_set: out of range')
-
-
-class SelectionSetBone(bpy.types.PropertyGroup):
- name = bpy.props.StringProperty()
-
-
-class SelectionSet(bpy.types.PropertyGroup):
- name = bpy.props.StringProperty(options={'LIBRARY_EDITABLE'})
- bones = bpy.props.CollectionProperty(type=SelectionSetBone)
-
-
-class ANIM_OT_selection_set_add(bpy.types.Operator):
- """Add a new selection set"""
- bl_idname = "anim.selection_set_add"
- bl_label = "Selection Set Add"
-
- @classmethod
- def poll(cls, context):
- return generic_poll(context)
-
- def execute(self, context):
- arm = context.active_object.data
-
- tmp_name = name = 'Set'
- name_sub = 1
- while arm.selection_sets.find(name) != -1:
- name = tmp_name + ' ' + str(name_sub)
- name_sub += 1
-
- sel_set = arm.selection_sets.add()
- sel_set.name = name
-
- arm.active_selection_set = arm.selection_sets.find(name)
-
- return {'FINISHED'}
-
-
-class ANIM_OT_selection_set_remove(bpy.types.Operator):
- """Remove the active selection set"""
- bl_idname = "anim.selection_set_remove"
- bl_label = "Selection Set Remove"
-
- @classmethod
- def poll(cls, context):
- arm = context.active_object.data
- return (generic_poll(context) and arm.active_selection_set != -1)
-
- def execute(self, context):
- arm = context.active_object.data
- active_index = arm.active_selection_set
-
- arm.selection_sets.remove(active_index)
-
- if active_index >= len(arm.selection_sets):
- arm.active_selection_set = len(arm.selection_sets) - 1
-
- return {'FINISHED'}
-
-
-class ANIM_OT_selection_set_assign(bpy.types.Operator):
- """Add selected bones to the active selection set"""
- bl_idname = "anim.selection_set_assign"
- bl_label = "Selection Set Assign"
-
- @classmethod
- def poll(cls, context):
- arm = context.active_object.data
- return (generic_poll(context) and arm.active_selection_set != -1)
-
- def execute(self, context):
- arm = context.active_object.data
- sel_set = arm.selection_sets[arm.active_selection_set]
- bones = [bone for bone in arm.bones if bone.select]
-
- for bone in bones:
- if sel_set.bones.find(bone.name) == -1:
- set_bone = sel_set.bones.add()
- set_bone.name = bone.name
-
- return {'FINISHED'}
-
-
-class ANIM_OT_selection_set_unassign(bpy.types.Operator):
- """Remove selected bones from the active selection set"""
- bl_idname = "anim.selection_set_unassign"
- bl_label = "Selection Set Unassign"
-
- @classmethod
- def poll(cls, context):
- arm = context.active_object.data
- return (generic_poll(context) and arm.active_selection_set != -1)
-
- def execute(self, context):
- arm = context.active_object.data
- sel_set = arm.selection_sets[arm.active_selection_set]
- bones = [bone for bone in arm.bones if bone.select]
-
- for bone in bones:
- bone_index = sel_set.bones.find(bone.name)
- if bone_index != -1:
- sel_set.bones.remove(bone_index)
-
- return {'FINISHED'}
-
-
-class ANIM_OT_selection_set_select(bpy.types.Operator):
- """Select bones in selection set"""
- bl_idname = "anim.selection_set_select"
- bl_label = "Selection Set Select Bones"
-
- @classmethod
- def poll(cls, context):
- arm = context.active_object.data
- return (generic_poll(context) and arm.active_selection_set != -1)
-
- def execute(self, context):
- arm = context.active_object.data
- sel_set = arm.selection_sets[arm.active_selection_set]
-
- for bone in sel_set.bones:
- try:
- arm.bones[bone.name].select = True
- except:
- bone_index = sel_set.bones.find(bone.name)
- sel_set.bones.remove(bone_index)
-
- return {'FINISHED'}
-
-
-class ANIM_OT_selection_set_deselect(bpy.types.Operator):
- """Deselect bones in selection set"""
- bl_idname = "anim.selection_set_deselect"
- bl_label = "Selection Set Deselect Bones"
-
- @classmethod
- def poll(cls, context):
- arm = context.active_object.data
- return (generic_poll(context) and arm.active_selection_set != -1)
-
- def execute(self, context):
- arm = context.active_object.data
- sel_set = arm.selection_sets[arm.active_selection_set]
-
- for bone in sel_set.bones:
- try:
- arm.bones[bone.name].select = False
- except:
- bone_index = sel_set.bones.find(bone.name)
- sel_set.bones.remove(bone_index)
-
- return {'FINISHED'}
-
-
-class ANIM_OT_selection_set_export(bpy.types.Operator):
- """Export selection set data to a python script"""
- bl_idname = "anim.selection_set_export"
- bl_label = "Selection Set Export"
-
- @classmethod
- def poll(cls, context):
- return generic_poll(context)
-
- def execute(self, context):
- arm = context.active_object.data
- set_script = string.Template(script_template)
- set_list = ""
-
- for sel_set in arm.selection_sets:
- set_bones = ""
- for bone in sel_set.bones:
- set_bones += "'" + bone.name + "',"
- set_list += "\n ('{name}', [{bones}]),".format(name=sel_set.name, bones=set_bones)
-
- try:
- script_file = bpy.data.texts['{arm.name}SelectionSetImport.py'.format(arm=arm)]
- except:
- script_file = bpy.data.texts.new('{arm.name}SelectionSetImport.py'.format(arm=arm))
-
- script_file.clear()
- script_file.write(set_script.substitute(name=arm.name, set_list=set_list))
-
- return {'FINISHED'}
-
-
-class DATA_PT_bone_sets(bpy.types.Panel):
- bl_space_type = 'PROPERTIES'
- bl_region_type = 'WINDOW'
- bl_context = "data"
- bl_label = "Selection Sets"
-
- @classmethod
- def poll(cls, context):
- return (context.object and context.object.type == 'ARMATURE' and context.object.pose)
-
- def draw(self, context):
- layout = self.layout
- ob = context.object
- arm = ob.data
- sel_set = None
-
- if arm.active_selection_set != -1:
- try:
- sel_set = arm.selection_sets[arm.active_selection_set]
- except:
- pass
-
- row = layout.row()
-
- row.template_list("UI_UL_list", "armature_selection_sets", arm, "selection_sets", arm, "active_selection_set",
- rows=(5 if len(arm.selection_sets) else 2))
-
- col = row.column(align=True)
- col.operator("anim.selection_set_add", icon='ZOOMIN', text="")
- col.operator("anim.selection_set_remove", icon='ZOOMOUT', text="")
-
- if sel_set:
- col = layout.column()
- col.prop(sel_set, "name", text="Name")
-
- row = layout.row()
-
- sub = row.row(align=True)
- sub.operator("anim.selection_set_assign", text="Assign")
- sub.operator("anim.selection_set_unassign", text="Remove")
-
- sub = row.row(align=True)
- sub.operator("anim.selection_set_select", text="Select")
- sub.operator("anim.selection_set_deselect", text="Deselect")
-
- row = layout.row()
-
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list