diff options
Diffstat (limited to 'release/ui/buttons_data_modifier.py')
-rw-r--r-- | release/ui/buttons_data_modifier.py | 169 |
1 files changed, 85 insertions, 84 deletions
diff --git a/release/ui/buttons_data_modifier.py b/release/ui/buttons_data_modifier.py index ecb0590f8e5..366f2b8a86b 100644 --- a/release/ui/buttons_data_modifier.py +++ b/release/ui/buttons_data_modifier.py @@ -23,68 +23,68 @@ class DATA_PT_modifiers(DataButtonsPanel): if box: if md.type == 'ARMATURE': - self.armature(box, md) + self.armature(box, ob, md) if md.type == 'ARRAY': - self.array(box, md) + self.array(box, ob, md) if md.type == 'BEVEL': - self.bevel(box, md) + self.bevel(box, ob, md) if md.type == 'BOOLEAN': - self.boolean(box, md) + self.boolean(box, ob, md) if md.type == 'BUILD': - self.build(box, md) + self.build(box, ob, md) if md.type == 'CAST': - self.cast(box, md) + self.cast(box, ob, md) if md.type == 'CLOTH': - self.cloth(box, md) + self.cloth(box, ob, md) if md.type == 'COLLISION': - self.collision(box, md) + self.collision(box, ob, md) if md.type == 'CURVE': - self.curve(box, md) + self.curve(box, ob, md) if md.type == 'DECIMATE': - self.decimate(box, md) + self.decimate(box, ob, md) if md.type == 'DISPLACE': - self.displace(box, md) + self.displace(box, ob, md) if md.type == 'EDGE_SPLIT': - self.edgesplit(box, md) + self.edgesplit(box, ob, md) if md.type == 'EXPLODE': - self.explode(box, md) + self.explode(box, ob, md) if md.type == 'FLUID_SIMULATION': - self.fluid(box, md) + self.fluid(box, ob, md) if md.type == 'HOOK': - self.hook(box, md) + self.hook(box, ob, md) if md.type == 'LATTICE': - self.lattice(box, md) + self.lattice(box, ob, md) if md.type == 'MASK': - self.mask(box, md) + self.mask(box, ob, md) if md.type == 'MESH_DEFORM': - self.mesh_deform(box, md) + self.mesh_deform(box, ob, md) if md.type == 'MIRROR': - self.mirror(box, md) + self.mirror(box, ob, md) if md.type == 'MULTIRES': - self.multires(box, md) + self.multires(box, ob, md) if md.type == 'PARTICLE_INSTANCE': - self.particleinstance(box, md) + self.particleinstance(box, ob, md) if md.type == 'PARTICLE_SYSTEM': - self.particlesystem(box, md) + self.particlesystem(box, ob, md) if md.type == 'SHRINKWRAP': - self.shrinkwrap(box, md) + self.shrinkwrap(box, ob, md) if md.type == 'SIMPLE_DEFORM': - self.simpledeform(box, md) + self.simpledeform(box, ob, md) if md.type == 'SMOOTH': - self.smooth(box, md) + self.smooth(box, ob, md) if md.type == 'SOFTBODY': - self.softbody(box, md) + self.softbody(box, ob, md) if md.type == 'SUBSURF': - self.subsurf(box, md) + self.subsurf(box, ob, md) if md.type == 'UV_PROJECT': - self.uvproject(box, md) + self.uvproject(box, ob, md) if md.type == 'WAVE': - self.wave(box, md) + self.wave(box, ob, md) - def armature(self, layout, md): + def armature(self, layout, ob, md): layout.itemR(md, "object") row = layout.row() - row.itemR(md, "vertex_group") + row.item_pointerR(md, "vertex_group", ob, "vertex_groups") row.itemR(md, "invert") flow = layout.column_flow() flow.itemR(md, "use_vertex_groups", text="Vertex Groups") @@ -92,7 +92,7 @@ class DATA_PT_modifiers(DataButtonsPanel): flow.itemR(md, "quaternion") flow.itemR(md, "multi_modifier") - def array(self, layout, md): + def array(self, layout, ob, md): layout.itemR(md, "fit_type") if md.fit_type == 'FIXED_COUNT': layout.itemR(md, "count") @@ -141,7 +141,7 @@ class DATA_PT_modifiers(DataButtonsPanel): col.itemR(md, "start_cap") col.itemR(md, "end_cap") - def bevel(self, layout, md): + def bevel(self, layout, ob, md): row = layout.row() row.itemR(md, "width") row.itemR(md, "only_vertices") @@ -156,11 +156,11 @@ class DATA_PT_modifiers(DataButtonsPanel): row = layout.row() row.itemR(md, "edge_weight_method", expand=True) - def boolean(self, layout, md): + def boolean(self, layout, ob, md): layout.itemR(md, "operation") layout.itemR(md, "object") - def build(self, layout, md): + def build(self, layout, ob, md): split = layout.split() col = split.column() @@ -175,7 +175,7 @@ class DATA_PT_modifiers(DataButtonsPanel): - def cast(self, layout, md): + def cast(self, layout, ob, md): layout.itemR(md, "cast_type") col = layout.column_flow() col.itemR(md, "x") @@ -184,26 +184,26 @@ class DATA_PT_modifiers(DataButtonsPanel): col.itemR(md, "factor") col.itemR(md, "radius") col.itemR(md, "size") - layout.itemR(md, "vertex_group") + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") #Missing: "OB" and "From Radius" - def cloth(self, layout, md): + def cloth(self, layout, ob, md): layout.itemL(text="See Cloth panel.") - def collision(self, layout, md): + def collision(self, layout, ob, md): layout.itemL(text="See Collision panel.") - def curve(self, layout, md): + def curve(self, layout, ob, md): layout.itemR(md, "object") - layout.itemR(md, "vertex_group") + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") layout.itemR(md, "deform_axis") - def decimate(self, layout, md): + def decimate(self, layout, ob, md): layout.itemR(md, "ratio") layout.itemR(md, "face_count") - def displace(self, layout, md): - layout.itemR(md, "vertex_group") + def displace(self, layout, ob, md): + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") layout.itemR(md, "texture") layout.itemR(md, "midlevel") layout.itemR(md, "strength") @@ -211,10 +211,10 @@ class DATA_PT_modifiers(DataButtonsPanel): layout.itemR(md, "texture_coordinates") if md.texture_coordinates == 'OBJECT': layout.itemR(md, "texture_coordinate_object", text="Object") - if md.texture_coordinates == 'UV': - layout.itemR(md, "uv_layer") + if md.texture_coordinates == 'UV' and ob.type == 'MESH': + layout.item_pointerR(md, "uv_layer", ob.data, "uv_layers") - def edgesplit(self, layout, md): + def edgesplit(self, layout, ob, md): split = layout.split() col = split.column() @@ -225,8 +225,8 @@ class DATA_PT_modifiers(DataButtonsPanel): col = split.column() col.itemR(md, "use_sharp", text="Sharp Edges") - def explode(self, layout, md): - layout.itemR(md, "vertex_group") + def explode(self, layout, ob, md): + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") layout.itemR(md, "protect") layout.itemR(md, "split_edges") layout.itemR(md, "unborn") @@ -234,31 +234,31 @@ class DATA_PT_modifiers(DataButtonsPanel): layout.itemR(md, "dead") # Missing: "Refresh" and "Clear Vertex Group" ? - def fluid(self, layout, md): + def fluid(self, layout, ob, md): layout.itemL(text="See Fluidsim panel.") - def hook(self, layout, md): + def hook(self, layout, ob, md): layout.itemR(md, "falloff") layout.itemR(md, "force", slider=True) layout.itemR(md, "object") - layout.itemR(md, "vertex_group") + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") # Missing: "Reset" and "Recenter" - def lattice(self, layout, md): + def lattice(self, layout, ob, md): layout.itemR(md, "object") - layout.itemR(md, "vertex_group") + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") - def mask(self, layout, md): + def mask(self, layout, ob, md): layout.itemR(md, "mode") if md.mode == 'ARMATURE': layout.itemR(md, "armature") if md.mode == 'VERTEX_GROUP': - layout.itemR(md, "vertex_group") + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") layout.itemR(md, "inverse") - def mesh_deform(self, layout, md): + def mesh_deform(self, layout, ob, md): layout.itemR(md, "object") - layout.itemR(md, "vertex_group") + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") layout.itemR(md, "invert") layout.itemS() @@ -267,7 +267,7 @@ class DATA_PT_modifiers(DataButtonsPanel): row.itemR(md, "precision") row.itemR(md, "dynamic") - def mirror(self, layout, md): + def mirror(self, layout, ob, md): layout.itemR(md, "merge_limit") split = layout.split() @@ -285,12 +285,12 @@ class DATA_PT_modifiers(DataButtonsPanel): layout.itemR(md, "mirror_object") - def multires(self, layout, md): + def multires(self, layout, ob, md): layout.itemR(md, "subdivision_type") layout.itemO("OBJECT_OT_multires_subdivide", text="Subdivide") layout.itemR(md, "level") - def particleinstance(self, layout, md): + def particleinstance(self, layout, ob, md): layout.itemR(md, "object") layout.itemR(md, "particle_system_number") @@ -302,12 +302,12 @@ class DATA_PT_modifiers(DataButtonsPanel): col.itemR(md, "alive") col.itemR(md, "dead") - def particlesystem(self, layout, md): + def particlesystem(self, layout, ob, md): layout.itemL(text="See Particle panel.") - def shrinkwrap(self, layout, md): + def shrinkwrap(self, layout, ob, md): layout.itemR(md, "target") - layout.itemR(md, "vertex_group") + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") layout.itemR(md, "offset") layout.itemR(md, "subsurf_levels") layout.itemR(md, "mode") @@ -329,9 +329,9 @@ class DATA_PT_modifiers(DataButtonsPanel): layout.itemR(md, "keep_above_surface") # To-Do: Validate if structs - def simpledeform(self, layout, md): + def simpledeform(self, layout, ob, md): layout.itemR(md, "mode") - layout.itemR(md, "vertex_group") + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") layout.itemR(md, "origin") layout.itemR(md, "relative") layout.itemR(md, "factor") @@ -340,7 +340,7 @@ class DATA_PT_modifiers(DataButtonsPanel): layout.itemR(md, "lock_x_axis") layout.itemR(md, "lock_y_axis") - def smooth(self, layout, md): + def smooth(self, layout, ob, md): split = layout.split() sub = split.column() sub.itemR(md, "x") @@ -350,12 +350,12 @@ class DATA_PT_modifiers(DataButtonsPanel): sub.itemR(md, "factor") sub.itemR(md, "repeat") - layout.itemR(md, "vertex_group") + layout.template_pointer(md, "vertex_group", ob, "vertex_groups") - def softbody(self, layout, md): + def softbody(self, layout, ob, md): layout.itemL(text="See Softbody panel.") - def subsurf(self, layout, md): + def subsurf(self, layout, ob, md): layout.itemR(md, "subdivision_type") col = layout.column_flow() col.itemR(md, "levels", text="Preview") @@ -363,16 +363,17 @@ class DATA_PT_modifiers(DataButtonsPanel): col.itemR(md, "optimal_draw", text="Optimal Display") col.itemR(md, "subsurf_uv") - def uvproject(self, layout, md): - layout.itemR(md, "uv_layer") - layout.itemR(md, "projectors") - layout.itemR(md, "image") - layout.itemR(md, "horizontal_aspect_ratio") - layout.itemR(md, "vertical_aspect_ratio") - layout.itemR(md, "override_image") - #"Projectors" don't work. - - def wave(self, layout, md): + def uvproject(self, layout, ob, md): + if ob.type == 'MESH': + layout.item_pointerR(md, "uv_layer", ob.data, "uv_layers") + layout.itemR(md, "projectors") + layout.itemR(md, "image") + layout.itemR(md, "horizontal_aspect_ratio") + layout.itemR(md, "vertical_aspect_ratio") + layout.itemR(md, "override_image") + #"Projectors" don't work. + + def wave(self, layout, ob, md): split = layout.split() sub = split.column() @@ -398,11 +399,11 @@ class DATA_PT_modifiers(DataButtonsPanel): col.itemR(md, "start_position_y") layout.itemR(md, "start_position_object") - layout.itemR(md, "vertex_group") + layout.item_pointerR(md, "vertex_group", ob, "vertex_groups") layout.itemR(md, "texture") layout.itemR(md, "texture_coordinates") - if md.texture_coordinates == 'MAP_UV': - layout.itemR(md, "uv_layer") + if md.texture_coordinates == 'MAP_UV' and ob.type == 'MESH': + layout.item_pointerR(md, "uv_layer", ob.data, "uv_layers") if md.texture_coordinates == 'OBJECT': layout.itemR(md, "texture_coordinates_object") @@ -412,4 +413,4 @@ class DATA_PT_modifiers(DataButtonsPanel): col.itemR(md, "width", slider=True) col.itemR(md, "narrowness", slider=True) -bpy.types.register(DATA_PT_modifiers)
\ No newline at end of file +bpy.types.register(DATA_PT_modifiers) |