2009-11-01 15:21:20 +00:00
|
|
|
# ##### 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.
|
2009-11-03 07:23:02 +00:00
|
|
|
#
|
2009-11-01 15:21:20 +00:00
|
|
|
# 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.
|
2009-11-03 07:23:02 +00:00
|
|
|
#
|
2009-11-01 15:21:20 +00:00
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with this program; if not, write to the Free Software Foundation,
|
2010-02-12 13:34:04 +00:00
|
|
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
2009-11-01 15:21:20 +00:00
|
|
|
#
|
|
|
|
# ##### END GPL LICENSE BLOCK #####
|
2009-10-31 20:16:59 +00:00
|
|
|
|
2009-10-31 23:35:56 +00:00
|
|
|
# <pep8 compliant>
|
2009-05-21 21:23:36 +00:00
|
|
|
import bpy
|
2010-01-08 08:54:41 +00:00
|
|
|
from rna_prop_ui import PropertyPanel
|
2009-05-21 21:23:36 +00:00
|
|
|
|
2009-11-14 13:35:44 +00:00
|
|
|
|
2010-02-05 14:29:05 +00:00
|
|
|
class MESH_MT_vertex_group_specials(bpy.types.Menu):
|
|
|
|
bl_label = "Vertex Group Specials"
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2010-02-05 14:29:05 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
2010-02-22 23:32:58 +00:00
|
|
|
|
2010-02-05 14:29:05 +00:00
|
|
|
layout.operator("object.vertex_group_sort", icon='SORTALPHA')
|
|
|
|
layout.operator("object.vertex_group_copy", icon='COPY_ID')
|
|
|
|
layout.operator("object.vertex_group_copy_to_linked", icon='LINK_AREA')
|
2010-02-09 22:00:19 +00:00
|
|
|
layout.operator("object.vertex_group_copy_to_selected", icon='LINK_AREA')
|
2010-02-05 14:29:05 +00:00
|
|
|
layout.operator("object.vertex_group_mirror", icon='ARROW_LEFTRIGHT')
|
|
|
|
|
|
|
|
|
|
|
|
class MESH_MT_shape_key_specials(bpy.types.Menu):
|
|
|
|
bl_label = "Shape Key Specials"
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2010-02-05 14:29:05 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
|
2010-09-07 15:17:42 +00:00
|
|
|
layout.operator("object.shape_key_transfer", icon='COPY_ID') # icon is not ideal
|
|
|
|
layout.operator("object.join_shapes", icon='COPY_ID') # icon is not ideal
|
2010-02-05 14:29:05 +00:00
|
|
|
layout.operator("object.shape_key_mirror", icon='ARROW_LEFTRIGHT')
|
|
|
|
|
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
class MeshButtonsPanel():
|
2009-10-31 19:31:45 +00:00
|
|
|
bl_space_type = 'PROPERTIES'
|
|
|
|
bl_region_type = 'WINDOW'
|
|
|
|
bl_context = "data"
|
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
@classmethod
|
|
|
|
def poll(cls, context):
|
|
|
|
engine = context.scene.render.engine
|
|
|
|
return context.mesh and (engine in cls.COMPAT_ENGINES)
|
|
|
|
|
2009-10-31 23:35:56 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
class DATA_PT_context_mesh(MeshButtonsPanel, bpy.types.Panel):
|
2009-10-31 19:31:45 +00:00
|
|
|
bl_label = ""
|
2010-08-26 01:05:37 +00:00
|
|
|
bl_options = {'HIDE_HEADER'}
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
|
|
|
|
ob = context.object
|
|
|
|
mesh = context.mesh
|
|
|
|
space = context.space_data
|
2010-08-06 15:17:44 +00:00
|
|
|
|
|
|
|
split = layout.split(percentage=0.65)
|
|
|
|
if ob:
|
|
|
|
split.template_ID(ob, "data")
|
|
|
|
split.separator()
|
|
|
|
elif mesh:
|
|
|
|
split.template_ID(space, "pin_id")
|
|
|
|
split.separator()
|
2009-06-07 13:36:12 +00:00
|
|
|
|
2009-10-31 23:35:56 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
class DATA_PT_normals(MeshButtonsPanel, bpy.types.Panel):
|
2009-10-31 19:31:45 +00:00
|
|
|
bl_label = "Normals"
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
|
|
|
|
mesh = context.mesh
|
|
|
|
|
|
|
|
split = layout.split()
|
|
|
|
|
|
|
|
col = split.column()
|
2010-08-20 06:09:58 +00:00
|
|
|
col.prop(mesh, "use_auto_smooth")
|
2009-10-31 19:31:45 +00:00
|
|
|
sub = col.column()
|
2010-08-20 06:09:58 +00:00
|
|
|
sub.active = mesh.use_auto_smooth
|
|
|
|
sub.prop(mesh, "auto_smooth_angle", text="Angle")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
2010-08-06 15:17:44 +00:00
|
|
|
col = split.column()
|
|
|
|
|
2010-08-17 17:03:52 +00:00
|
|
|
col.prop(mesh, "show_double_sided")
|
2009-08-06 23:34:14 +00:00
|
|
|
|
2009-10-31 23:35:56 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
class DATA_PT_settings(MeshButtonsPanel, bpy.types.Panel):
|
2009-10-31 19:31:45 +00:00
|
|
|
bl_label = "Settings"
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
|
|
|
|
mesh = context.mesh
|
|
|
|
|
2009-11-23 00:27:30 +00:00
|
|
|
layout.prop(mesh, "texture_mesh")
|
2009-10-07 09:23:29 +00:00
|
|
|
|
2009-10-31 23:35:56 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
class DATA_PT_vertex_groups(MeshButtonsPanel, bpy.types.Panel):
|
2009-10-31 19:31:45 +00:00
|
|
|
bl_label = "Vertex Groups"
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2009-10-31 19:31:45 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
@classmethod
|
|
|
|
def poll(cls, context):
|
2010-04-18 23:52:37 +00:00
|
|
|
engine = context.scene.render.engine
|
2010-08-05 16:05:30 +00:00
|
|
|
obj = context.object
|
2010-08-09 01:37:09 +00:00
|
|
|
return (obj and obj.type in ('MESH', 'LATTICE') and (engine in cls.COMPAT_ENGINES))
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
|
|
|
|
ob = context.object
|
2010-08-24 04:02:50 +00:00
|
|
|
group = ob.vertex_groups.active
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
rows = 2
|
|
|
|
if group:
|
2009-10-31 23:35:56 +00:00
|
|
|
rows = 5
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
row = layout.row()
|
2010-08-24 04:02:50 +00:00
|
|
|
row.template_list(ob, "vertex_groups", ob.vertex_groups, "active_index", rows=rows)
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
col = row.column(align=True)
|
2009-12-10 10:23:53 +00:00
|
|
|
col.operator("object.vertex_group_add", icon='ZOOMIN', text="")
|
|
|
|
col.operator("object.vertex_group_remove", icon='ZOOMOUT', text="")
|
2010-02-05 14:29:05 +00:00
|
|
|
col.menu("MESH_MT_vertex_group_specials", icon='DOWNARROW_HLT', text="")
|
2010-05-04 12:31:24 +00:00
|
|
|
if group:
|
|
|
|
col.operator("object.vertex_group_move", icon='TRIA_UP', text="").direction = 'UP'
|
|
|
|
col.operator("object.vertex_group_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
if group:
|
|
|
|
row = layout.row()
|
2009-11-23 00:27:30 +00:00
|
|
|
row.prop(group, "name")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
if ob.mode == 'EDIT' and len(ob.vertex_groups) > 0:
|
|
|
|
row = layout.row()
|
|
|
|
|
|
|
|
sub = row.row(align=True)
|
2009-11-23 00:27:30 +00:00
|
|
|
sub.operator("object.vertex_group_assign", text="Assign")
|
|
|
|
sub.operator("object.vertex_group_remove_from", text="Remove")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
sub = row.row(align=True)
|
2009-11-23 00:27:30 +00:00
|
|
|
sub.operator("object.vertex_group_select", text="Select")
|
|
|
|
sub.operator("object.vertex_group_deselect", text="Deselect")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
2009-11-23 00:27:30 +00:00
|
|
|
layout.prop(context.tool_settings, "vertex_group_weight", text="Weight")
|
2009-07-01 22:25:49 +00:00
|
|
|
|
2009-10-31 23:35:56 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
class DATA_PT_shape_keys(MeshButtonsPanel, bpy.types.Panel):
|
2009-10-31 19:31:45 +00:00
|
|
|
bl_label = "Shape Keys"
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2009-10-31 19:31:45 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
@classmethod
|
|
|
|
def poll(cls, context):
|
2010-04-18 23:52:37 +00:00
|
|
|
engine = context.scene.render.engine
|
2010-08-05 16:05:30 +00:00
|
|
|
obj = context.object
|
2010-08-09 01:37:09 +00:00
|
|
|
return (obj and obj.type in ('MESH', 'LATTICE', 'CURVE', 'SURFACE') and (engine in cls.COMPAT_ENGINES))
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
|
|
|
|
ob = context.object
|
|
|
|
key = ob.data.shape_keys
|
2010-02-01 14:25:38 +00:00
|
|
|
kb = ob.active_shape_key
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
enable_edit = ob.mode != 'EDIT'
|
|
|
|
enable_edit_value = False
|
|
|
|
|
2010-08-17 17:03:52 +00:00
|
|
|
if ob.show_shape_key is False:
|
2010-08-20 06:09:58 +00:00
|
|
|
if enable_edit or (ob.type == 'MESH' and ob.use_shape_key_edit_mode):
|
2009-10-31 19:31:45 +00:00
|
|
|
enable_edit_value = True
|
|
|
|
|
|
|
|
row = layout.row()
|
|
|
|
|
|
|
|
rows = 2
|
|
|
|
if kb:
|
2009-10-31 23:35:56 +00:00
|
|
|
rows = 5
|
2009-10-31 19:31:45 +00:00
|
|
|
row.template_list(key, "keys", ob, "active_shape_key_index", rows=rows)
|
|
|
|
|
|
|
|
col = row.column()
|
|
|
|
|
2009-11-08 11:07:00 +00:00
|
|
|
sub = col.column(align=True)
|
2009-12-10 10:23:53 +00:00
|
|
|
sub.operator("object.shape_key_add", icon='ZOOMIN', text="")
|
|
|
|
sub.operator("object.shape_key_remove", icon='ZOOMOUT', text="")
|
2010-02-05 14:29:05 +00:00
|
|
|
sub.menu("MESH_MT_shape_key_specials", icon='DOWNARROW_HLT', text="")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
if kb:
|
2009-11-23 00:27:30 +00:00
|
|
|
col.separator()
|
2009-10-31 19:31:45 +00:00
|
|
|
|
2009-11-08 11:07:00 +00:00
|
|
|
sub = col.column(align=True)
|
2009-12-10 10:23:53 +00:00
|
|
|
sub.operator("object.shape_key_move", icon='TRIA_UP', text="").type = 'UP'
|
|
|
|
sub.operator("object.shape_key_move", icon='TRIA_DOWN', text="").type = 'DOWN'
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
split = layout.split(percentage=0.4)
|
2009-11-08 11:07:00 +00:00
|
|
|
row = split.row()
|
|
|
|
row.enabled = enable_edit
|
2010-08-18 07:14:10 +00:00
|
|
|
row.prop(key, "use_relative")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
2009-11-08 11:07:00 +00:00
|
|
|
row = split.row()
|
|
|
|
row.alignment = 'RIGHT'
|
2009-11-14 13:35:44 +00:00
|
|
|
|
2009-11-08 11:07:00 +00:00
|
|
|
sub = row.row(align=True)
|
|
|
|
subsub = sub.row(align=True)
|
|
|
|
subsub.active = enable_edit_value
|
2010-08-17 17:03:52 +00:00
|
|
|
subsub.prop(ob, "show_shape_key", text="")
|
2010-01-11 15:28:00 +00:00
|
|
|
subsub.prop(kb, "mute", text="")
|
2010-08-20 06:09:58 +00:00
|
|
|
sub.prop(ob, "use_shape_key_edit_mode", text="")
|
2010-02-22 23:32:58 +00:00
|
|
|
|
2010-02-05 14:29:05 +00:00
|
|
|
sub = row.row()
|
2009-12-10 10:23:53 +00:00
|
|
|
sub.operator("object.shape_key_clear", icon='X', text="")
|
2009-11-07 22:07:46 +00:00
|
|
|
|
2009-10-31 19:31:45 +00:00
|
|
|
row = layout.row()
|
2009-11-23 00:27:30 +00:00
|
|
|
row.prop(kb, "name")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
2010-08-20 22:00:23 +00:00
|
|
|
if key.use_relative:
|
2009-10-31 19:31:45 +00:00
|
|
|
if ob.active_shape_key_index != 0:
|
|
|
|
row = layout.row()
|
|
|
|
row.active = enable_edit_value
|
2009-11-23 00:27:30 +00:00
|
|
|
row.prop(kb, "value")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
split = layout.split()
|
2009-11-08 11:07:00 +00:00
|
|
|
|
|
|
|
col = split.column(align=True)
|
|
|
|
col.active = enable_edit_value
|
2009-11-23 00:27:30 +00:00
|
|
|
col.label(text="Range:")
|
|
|
|
col.prop(kb, "slider_min", text="Min")
|
|
|
|
col.prop(kb, "slider_max", text="Max")
|
2009-11-08 11:07:00 +00:00
|
|
|
|
2010-08-06 15:17:44 +00:00
|
|
|
col = split.column(align=True)
|
2009-11-08 11:07:00 +00:00
|
|
|
col.active = enable_edit_value
|
2009-11-23 00:27:30 +00:00
|
|
|
col.label(text="Blend:")
|
2010-08-23 05:47:45 +00:00
|
|
|
col.prop_search(kb, "vertex_group", ob, "vertex_groups", text="")
|
|
|
|
col.prop_search(kb, "relative_key", key, "keys", text="")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
else:
|
|
|
|
row = layout.row()
|
|
|
|
row.active = enable_edit_value
|
2009-11-23 00:27:30 +00:00
|
|
|
row.prop(key, "slurph")
|
2009-07-01 22:25:49 +00:00
|
|
|
|
2009-10-31 23:35:56 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
class DATA_PT_uv_texture(MeshButtonsPanel, bpy.types.Panel):
|
2009-10-31 19:31:45 +00:00
|
|
|
bl_label = "UV Texture"
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
|
|
|
|
me = context.mesh
|
|
|
|
|
|
|
|
row = layout.row()
|
|
|
|
col = row.column()
|
|
|
|
|
2010-08-24 04:02:50 +00:00
|
|
|
col.template_list(me, "uv_textures", me.uv_textures, "active_index", rows=2)
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
col = row.column(align=True)
|
2009-12-10 10:23:53 +00:00
|
|
|
col.operator("mesh.uv_texture_add", icon='ZOOMIN', text="")
|
|
|
|
col.operator("mesh.uv_texture_remove", icon='ZOOMOUT', text="")
|
2009-10-31 19:31:45 +00:00
|
|
|
|
2010-08-23 22:16:45 +00:00
|
|
|
lay = me.uv_textures.active
|
2009-10-31 19:31:45 +00:00
|
|
|
if lay:
|
2009-11-23 00:27:30 +00:00
|
|
|
layout.prop(lay, "name")
|
2010-04-17 19:05:53 +00:00
|
|
|
|
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
class DATA_PT_texface(MeshButtonsPanel, bpy.types.Panel):
|
2010-04-12 03:06:49 +00:00
|
|
|
bl_label = "Texture Face"
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2010-04-12 03:06:49 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
@classmethod
|
|
|
|
def poll(cls, context):
|
2010-04-12 03:06:49 +00:00
|
|
|
ob = context.active_object
|
|
|
|
rd = context.scene.render
|
2010-04-17 19:05:53 +00:00
|
|
|
|
2010-05-03 16:00:42 +00:00
|
|
|
return (context.mode == 'EDIT_MESH') and (rd.engine == 'BLENDER_GAME') and ob and ob.type == 'MESH'
|
2010-04-12 03:06:49 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
col = layout.column()
|
2010-04-17 19:05:53 +00:00
|
|
|
|
2010-04-12 03:06:49 +00:00
|
|
|
me = context.mesh
|
2010-04-17 19:05:53 +00:00
|
|
|
|
2010-04-12 03:06:49 +00:00
|
|
|
tf = me.faces.active_tface
|
2010-04-17 19:05:53 +00:00
|
|
|
|
2010-04-12 03:06:49 +00:00
|
|
|
if tf:
|
|
|
|
split = layout.split()
|
|
|
|
col = split.column()
|
2010-04-17 19:05:53 +00:00
|
|
|
|
2010-08-27 10:05:33 +00:00
|
|
|
col.prop(tf, "use_image")
|
2010-08-19 12:51:31 +00:00
|
|
|
col.prop(tf, "use_light")
|
|
|
|
col.prop(tf, "hide")
|
|
|
|
col.prop(tf, "use_collision")
|
2010-04-17 19:05:53 +00:00
|
|
|
|
2010-08-19 12:51:31 +00:00
|
|
|
col.prop(tf, "use_blend_shared")
|
|
|
|
col.prop(tf, "use_twoside")
|
|
|
|
col.prop(tf, "use_object_color")
|
2010-04-17 19:05:53 +00:00
|
|
|
|
2010-08-06 15:17:44 +00:00
|
|
|
col = split.column()
|
2010-04-17 19:05:53 +00:00
|
|
|
|
2010-08-19 12:51:31 +00:00
|
|
|
col.prop(tf, "use_halo")
|
|
|
|
col.prop(tf, "use_billboard")
|
|
|
|
col.prop(tf, "use_shadow_cast")
|
|
|
|
col.prop(tf, "use_bitmap_text")
|
|
|
|
col.prop(tf, "use_alpha_sort")
|
2010-04-17 19:05:53 +00:00
|
|
|
|
2010-04-12 03:06:49 +00:00
|
|
|
col = layout.column()
|
2010-08-19 12:51:31 +00:00
|
|
|
col.prop(tf, "blend_type")
|
2010-04-12 03:06:49 +00:00
|
|
|
else:
|
|
|
|
col.label(text="No UV Texture")
|
2009-07-21 00:55:20 +00:00
|
|
|
|
2009-10-31 23:35:56 +00:00
|
|
|
|
2010-08-09 01:37:09 +00:00
|
|
|
class DATA_PT_vertex_colors(MeshButtonsPanel, bpy.types.Panel):
|
2009-10-31 19:31:45 +00:00
|
|
|
bl_label = "Vertex Colors"
|
2010-04-18 23:52:37 +00:00
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
2009-10-31 19:31:45 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
|
|
|
|
me = context.mesh
|
2009-07-01 22:25:49 +00:00
|
|
|
|
2009-10-31 19:31:45 +00:00
|
|
|
row = layout.row()
|
|
|
|
col = row.column()
|
2009-07-01 22:25:49 +00:00
|
|
|
|
2010-08-24 04:02:50 +00:00
|
|
|
col.template_list(me, "vertex_colors", me.vertex_colors, "active_index", rows=2)
|
2009-07-01 22:25:49 +00:00
|
|
|
|
2009-10-31 19:31:45 +00:00
|
|
|
col = row.column(align=True)
|
2009-12-10 10:23:53 +00:00
|
|
|
col.operator("mesh.vertex_color_add", icon='ZOOMIN', text="")
|
|
|
|
col.operator("mesh.vertex_color_remove", icon='ZOOMOUT', text="")
|
2009-06-27 01:15:31 +00:00
|
|
|
|
2010-08-23 22:16:45 +00:00
|
|
|
lay = me.vertex_colors.active
|
2009-10-31 19:31:45 +00:00
|
|
|
if lay:
|
2009-11-23 00:27:30 +00:00
|
|
|
layout.prop(lay, "name")
|
2009-07-21 00:55:20 +00:00
|
|
|
|
2010-02-14 11:21:21 +00:00
|
|
|
|
2010-08-12 19:36:10 +00:00
|
|
|
class DATA_PT_custom_props_mesh(MeshButtonsPanel, PropertyPanel, bpy.types.Panel):
|
|
|
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
|
|
|
_context_path = "object.data"
|
|
|
|
|
|
|
|
|
2010-02-14 11:21:21 +00:00
|
|
|
def register():
|
2010-08-02 02:55:12 +00:00
|
|
|
pass
|
2010-02-14 11:21:21 +00:00
|
|
|
|
2010-02-22 23:32:58 +00:00
|
|
|
|
2010-02-14 11:21:21 +00:00
|
|
|
def unregister():
|
2010-08-02 02:55:12 +00:00
|
|
|
pass
|
2010-02-16 09:55:07 +00:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
register()
|