#====================== 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, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # #======================= END GPL LICENSE BLOCK ======================== UI_SLIDERS = """ import bpy rig_id = "%s" class RigUI(bpy.types.Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Rig Main Properties" bl_idname = rig_id + "_PT_rig_ui" @classmethod def poll(self, context): if context.mode != 'POSE': return False try: return (context.active_object.data.get("rig_id") == rig_id) except (AttributeError, KeyError, TypeError): return False def draw(self, context): layout = self.layout pose_bones = context.active_object.pose.bones try: selected_bones = [bone.name for bone in context.selected_pose_bones] selected_bones += [context.active_pose_bone.name] except (AttributeError, TypeError): return def is_selected(names): # Returns whether any of the named bones are selected. if type(names) == list: for name in names: if name in selected_bones: return True elif names in selected_bones: return True return False """ def layers_ui(layers): """ Turn a list of booleans into a layer UI. """ code = """ class RigLayers(bpy.types.Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_label = "Rig Layers" bl_idname = rig_id + "_PT_rig_layers" @classmethod def poll(self, context): try: return (context.active_object.data.get("rig_id") == rig_id) except (AttributeError, KeyError, TypeError): return False def draw(self, context): layout = self.layout col = layout.column() """ i = 0 for layer in layers: if layer: code += "\n row = col.row()\n" if i == 28: code += " row.prop(context.active_object.data, 'layers', index=%s, toggle=True, text='Root')\n" % (str(i)) else: code += " row.prop(context.active_object.data, 'layers', index=%s, toggle=True, text='%s')\n" % (str(i), str(i + 1)) i += 1 return code