made scripts pass the pep8 test (though not fully pep8 yet)
added comment in header to know if a script has been converted or not.
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
# <pep8-80 compliant>
|
||||
|
||||
# for slightly faster access
|
||||
from bpy.__ops__ import add as op_add
|
||||
from bpy.__ops__ import remove as op_remove
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,6 +15,7 @@ class DataButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return context.armature
|
||||
|
||||
|
||||
class DATA_PT_context_arm(DataButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -34,6 +36,7 @@ class DATA_PT_context_arm(DataButtonsPanel):
|
||||
split.template_ID(space, "pin_id")
|
||||
split.itemS()
|
||||
|
||||
|
||||
class DATA_PT_skeleton(DataButtonsPanel):
|
||||
bl_label = "Skeleton"
|
||||
|
||||
@@ -61,6 +64,7 @@ class DATA_PT_skeleton(DataButtonsPanel):
|
||||
col.itemR(arm, "deform_quaternion", text="Quaternion")
|
||||
col.itemR(arm, "deform_bbone_rest", text="B-Bones Rest")
|
||||
|
||||
|
||||
class DATA_PT_display(DataButtonsPanel):
|
||||
bl_label = "Display"
|
||||
|
||||
@@ -78,11 +82,12 @@ class DATA_PT_display(DataButtonsPanel):
|
||||
flow.itemR(arm, "draw_group_colors", text="Colors")
|
||||
flow.itemR(arm, "delay_deform", text="Delay Refresh")
|
||||
|
||||
|
||||
class DATA_PT_bone_groups(DataButtonsPanel):
|
||||
bl_label = "Bone Groups"
|
||||
|
||||
def poll(self, context):
|
||||
return (context.object and context.object.type=='ARMATURE' and context.object.pose)
|
||||
return (context.object and context.object.type == 'ARMATURE' and context.object.pose)
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
@@ -101,11 +106,11 @@ class DATA_PT_bone_groups(DataButtonsPanel):
|
||||
group = pose.active_bone_group
|
||||
if group:
|
||||
col = layout.column()
|
||||
col.active= (ob.proxy == None)
|
||||
col.active = (ob.proxy == None)
|
||||
col.itemR(group, "name")
|
||||
|
||||
split = layout.split(0.5)
|
||||
split.active= (ob.proxy == None)
|
||||
split.active = (ob.proxy == None)
|
||||
split.itemR(group, "color_set")
|
||||
if group.color_set:
|
||||
split.template_triColorSet(group, "colors")
|
||||
@@ -118,6 +123,7 @@ class DATA_PT_bone_groups(DataButtonsPanel):
|
||||
#row.itemO("object.bone_group_select", text="Select")
|
||||
#row.itemO("object.bone_group_deselect", text="Deselect")
|
||||
|
||||
|
||||
class DATA_PT_paths(DataButtonsPanel):
|
||||
bl_label = "Paths"
|
||||
|
||||
@@ -154,6 +160,7 @@ class DATA_PT_paths(DataButtonsPanel):
|
||||
row.itemO("pose.paths_calculate", text="Calculate Paths")
|
||||
row.itemO("pose.paths_clear", text="Clear Paths")
|
||||
|
||||
|
||||
class DATA_PT_ghost(DataButtonsPanel):
|
||||
bl_label = "Ghost"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class BoneButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,6 +15,7 @@ class BoneButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return (context.bone or context.edit_bone)
|
||||
|
||||
|
||||
class BONE_PT_context_bone(BoneButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -29,6 +31,7 @@ class BONE_PT_context_bone(BoneButtonsPanel):
|
||||
row.itemL(text="", icon='ICON_BONE_DATA')
|
||||
row.itemR(bone, "name", text="")
|
||||
|
||||
|
||||
class BONE_PT_transform(BoneButtonsPanel):
|
||||
bl_label = "Transform"
|
||||
|
||||
@@ -74,6 +77,7 @@ class BONE_PT_transform(BoneButtonsPanel):
|
||||
|
||||
layout.itemR(pchan, "rotation_mode")
|
||||
|
||||
|
||||
class BONE_PT_transform_locks(BoneButtonsPanel):
|
||||
bl_label = "Transform Locks"
|
||||
bl_default_closed = True
|
||||
@@ -104,6 +108,7 @@ class BONE_PT_transform_locks(BoneButtonsPanel):
|
||||
|
||||
row.column().itemR(pchan, "lock_scale")
|
||||
|
||||
|
||||
class BONE_PT_relations(BoneButtonsPanel):
|
||||
bl_label = "Relations"
|
||||
|
||||
@@ -145,6 +150,7 @@ class BONE_PT_relations(BoneButtonsPanel):
|
||||
sub.itemR(bone, "hinge", text="Inherit Rotation")
|
||||
sub.itemR(bone, "inherit_scale", text="Inherit Scale")
|
||||
|
||||
|
||||
class BONE_PT_display(BoneButtonsPanel):
|
||||
bl_label = "Display"
|
||||
|
||||
@@ -178,6 +184,7 @@ class BONE_PT_display(BoneButtonsPanel):
|
||||
col.itemL(text="Custom Shape:")
|
||||
col.itemR(pchan, "custom_shape", text="")
|
||||
|
||||
|
||||
class BONE_PT_deform(BoneButtonsPanel):
|
||||
bl_label = "Deform"
|
||||
bl_default_closed = True
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,6 +15,7 @@ class DataButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return context.camera
|
||||
|
||||
|
||||
class DATA_PT_context_camera(DataButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -34,6 +36,7 @@ class DATA_PT_context_camera(DataButtonsPanel):
|
||||
split.template_ID(space, "pin_id")
|
||||
split.itemS()
|
||||
|
||||
|
||||
class DATA_PT_camera(DataButtonsPanel):
|
||||
bl_label = "Lens"
|
||||
|
||||
@@ -75,6 +78,7 @@ class DATA_PT_camera(DataButtonsPanel):
|
||||
row.itemR(cam, "dof_object", text="")
|
||||
row.itemR(cam, "dof_distance", text="Distance")
|
||||
|
||||
|
||||
class DATA_PT_camera_display(DataButtonsPanel):
|
||||
bl_label = "Display"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,21 +15,22 @@ class DataButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return (context.object and context.object.type in ('CURVE', 'SURFACE') and context.curve)
|
||||
|
||||
|
||||
class DataButtonsPanelCurve(DataButtonsPanel):
|
||||
'''
|
||||
Same as above but for curves only
|
||||
'''
|
||||
'''Same as above but for curves only'''
|
||||
|
||||
def poll(self, context):
|
||||
return (context.object and context.object.type == 'CURVE' and context.curve)
|
||||
|
||||
|
||||
class DataButtonsPanelActive(DataButtonsPanel):
|
||||
'''
|
||||
Same as above but for curves only
|
||||
'''
|
||||
'''Same as above but for curves only'''
|
||||
|
||||
def poll(self, context):
|
||||
curve = context.curve
|
||||
return (curve and curve.active_spline)
|
||||
|
||||
|
||||
class DATA_PT_context_curve(DataButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -49,6 +51,7 @@ class DATA_PT_context_curve(DataButtonsPanel):
|
||||
split.template_ID(space, "pin_id")
|
||||
split.itemS()
|
||||
|
||||
|
||||
class DATA_PT_shape_curve(DataButtonsPanel):
|
||||
bl_label = "Shape"
|
||||
|
||||
@@ -70,7 +73,7 @@ class DATA_PT_shape_curve(DataButtonsPanel):
|
||||
|
||||
if not is_surf:
|
||||
sub = col.column()
|
||||
sub.active = (curve.dimensions=='2D')
|
||||
sub.active = (curve.dimensions == '2D')
|
||||
sub.itemL(text="Caps:")
|
||||
row = sub.row()
|
||||
row.itemR(curve, "front")
|
||||
@@ -92,7 +95,7 @@ class DATA_PT_shape_curve(DataButtonsPanel):
|
||||
sub.itemR(curve, "render_resolution_v", text="Render V")
|
||||
|
||||
# XXX - put somewhere nicer.
|
||||
row= layout.row()
|
||||
row = layout.row()
|
||||
row.itemR(curve, "twist_mode")
|
||||
row.itemR(curve, "twist_smooth") # XXX - may not be kept
|
||||
|
||||
@@ -101,6 +104,7 @@ class DATA_PT_shape_curve(DataButtonsPanel):
|
||||
# col.itemL(text="NORMALS")
|
||||
# col.itemR(curve, "vertex_normal_flip")
|
||||
|
||||
|
||||
class DATA_PT_geometry_curve(DataButtonsPanel):
|
||||
bl_label = "Geometry"
|
||||
|
||||
@@ -125,6 +129,7 @@ class DATA_PT_geometry_curve(DataButtonsPanel):
|
||||
col.itemL(text="Bevel Object:")
|
||||
col.itemR(curve, "bevel_object", text="")
|
||||
|
||||
|
||||
class DATA_PT_pathanim(DataButtonsPanelCurve):
|
||||
bl_label = "Path Animation"
|
||||
|
||||
@@ -151,6 +156,7 @@ class DATA_PT_pathanim(DataButtonsPanelCurve):
|
||||
col.itemR(curve, "use_radius")
|
||||
col.itemR(curve, "use_time_offset", text="Offset Children")
|
||||
|
||||
|
||||
class DATA_PT_active_spline(DataButtonsPanelActive):
|
||||
bl_label = "Active Spline"
|
||||
|
||||
@@ -214,7 +220,7 @@ class DATA_PT_active_spline(DataButtonsPanelActive):
|
||||
if not is_surf:
|
||||
split = layout.split()
|
||||
col = split.column()
|
||||
col.active = (curve.dimensions=='3D')
|
||||
col.active = (curve.dimensions == '3D')
|
||||
|
||||
col.itemL(text="Interpolation:")
|
||||
col.itemR(act_spline, "tilt_interpolation", text="Tilt")
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,6 +15,7 @@ class DataButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return (context.object and context.object.type == 'EMPTY')
|
||||
|
||||
|
||||
class DATA_PT_empty(DataButtonsPanel):
|
||||
bl_label = "Empty"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,12 +15,14 @@ class DataButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return context.lamp
|
||||
|
||||
|
||||
class DATA_PT_preview(DataButtonsPanel):
|
||||
bl_label = "Preview"
|
||||
|
||||
def draw(self, context):
|
||||
self.layout.template_preview(context.lamp)
|
||||
|
||||
|
||||
class DATA_PT_context_lamp(DataButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -40,6 +43,7 @@ class DATA_PT_context_lamp(DataButtonsPanel):
|
||||
split.template_ID(space, "pin_id")
|
||||
split.itemS()
|
||||
|
||||
|
||||
class DATA_PT_lamp(DataButtonsPanel):
|
||||
bl_label = "Lamp"
|
||||
|
||||
@@ -80,6 +84,7 @@ class DATA_PT_lamp(DataButtonsPanel):
|
||||
col.itemR(lamp, "specular")
|
||||
col.itemR(lamp, "diffuse")
|
||||
|
||||
|
||||
class DATA_PT_sunsky(DataButtonsPanel):
|
||||
bl_label = "Sky & Atmosphere"
|
||||
|
||||
@@ -123,7 +128,7 @@ class DATA_PT_sunsky(DataButtonsPanel):
|
||||
sub = col.column()
|
||||
sub.itemR(lamp, "sun_brightness", text="Brightness")
|
||||
sub.itemR(lamp, "sun_size", text="Size")
|
||||
sub.itemR(lamp, "backscattered_light", slider=True,text="Back Light")
|
||||
sub.itemR(lamp, "backscattered_light", slider=True, text="Back Light")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
@@ -142,14 +147,15 @@ class DATA_PT_sunsky(DataButtonsPanel):
|
||||
col.itemL(text="Scattering:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(lamp, "atmosphere_inscattering", slider=True, text="Inscattering")
|
||||
sub.itemR(lamp, "atmosphere_extinction", slider=True ,text="Extinction")
|
||||
sub.itemR(lamp, "atmosphere_extinction", slider=True, text="Extinction")
|
||||
|
||||
|
||||
class DATA_PT_shadow(DataButtonsPanel):
|
||||
bl_label = "Shadow"
|
||||
|
||||
def poll(self, context):
|
||||
lamp = context.lamp
|
||||
return (lamp and lamp.type in ('POINT','SUN', 'SPOT', 'AREA'))
|
||||
return (lamp and lamp.type in ('POINT', 'SUN', 'SPOT', 'AREA'))
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
@@ -242,6 +248,7 @@ class DATA_PT_shadow(DataButtonsPanel):
|
||||
sub.active = not lamp.auto_clip_end
|
||||
sub.itemR(lamp, "shadow_buffer_clip_end", text=" Clip End")
|
||||
|
||||
|
||||
class DATA_PT_area(DataButtonsPanel):
|
||||
bl_label = "Area Shape"
|
||||
|
||||
@@ -266,6 +273,7 @@ class DATA_PT_area(DataButtonsPanel):
|
||||
sub.itemR(lamp, "size", text="Size X")
|
||||
sub.itemR(lamp, "size_y", text="Size Y")
|
||||
|
||||
|
||||
class DATA_PT_spot(DataButtonsPanel):
|
||||
bl_label = "Spot Shape"
|
||||
|
||||
@@ -294,6 +302,7 @@ class DATA_PT_spot(DataButtonsPanel):
|
||||
if lamp.shadow_method == 'BUFFER_SHADOW':
|
||||
sub.itemR(lamp, "halo_step", text="Step")
|
||||
|
||||
|
||||
class DATA_PT_falloff_curve(DataButtonsPanel):
|
||||
bl_label = "Falloff Curve"
|
||||
bl_default_closed = True
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,6 +15,7 @@ class DataButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return context.lattice
|
||||
|
||||
|
||||
class DATA_PT_context_lattice(DataButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -34,6 +36,7 @@ class DATA_PT_context_lattice(DataButtonsPanel):
|
||||
split.template_ID(space, "pin_id")
|
||||
split.itemS()
|
||||
|
||||
|
||||
class DATA_PT_lattice(DataButtonsPanel):
|
||||
bl_label = "Lattice"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,6 +15,7 @@ class DataButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return context.mesh
|
||||
|
||||
|
||||
class DATA_PT_context_mesh(DataButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -34,6 +36,7 @@ class DATA_PT_context_mesh(DataButtonsPanel):
|
||||
split.template_ID(space, "pin_id")
|
||||
split.itemS()
|
||||
|
||||
|
||||
class DATA_PT_normals(DataButtonsPanel):
|
||||
bl_label = "Normals"
|
||||
|
||||
@@ -54,6 +57,7 @@ class DATA_PT_normals(DataButtonsPanel):
|
||||
col.itemR(mesh, "vertex_normal_flip")
|
||||
col.itemR(mesh, "double_sided")
|
||||
|
||||
|
||||
class DATA_PT_settings(DataButtonsPanel):
|
||||
bl_label = "Settings"
|
||||
|
||||
@@ -67,6 +71,7 @@ class DATA_PT_settings(DataButtonsPanel):
|
||||
col = split.column()
|
||||
col.itemR(mesh, "texture_mesh")
|
||||
|
||||
|
||||
class DATA_PT_vertex_groups(DataButtonsPanel):
|
||||
bl_label = "Vertex Groups"
|
||||
|
||||
@@ -81,7 +86,7 @@ class DATA_PT_vertex_groups(DataButtonsPanel):
|
||||
|
||||
rows = 2
|
||||
if group:
|
||||
rows= 5
|
||||
rows = 5
|
||||
|
||||
row = layout.row()
|
||||
row.template_list(ob, "vertex_groups", ob, "active_vertex_group_index", rows=rows)
|
||||
@@ -111,6 +116,7 @@ class DATA_PT_vertex_groups(DataButtonsPanel):
|
||||
|
||||
layout.itemR(context.tool_settings, "vertex_group_weight", text="Weight")
|
||||
|
||||
|
||||
class DATA_PT_shape_keys(DataButtonsPanel):
|
||||
bl_label = "Shape Keys"
|
||||
|
||||
@@ -135,7 +141,7 @@ class DATA_PT_shape_keys(DataButtonsPanel):
|
||||
|
||||
rows = 2
|
||||
if kb:
|
||||
rows= 5
|
||||
rows = 5
|
||||
row.template_list(key, "keys", ob, "active_shape_key_index", rows=rows)
|
||||
|
||||
col = row.column()
|
||||
@@ -160,7 +166,7 @@ class DATA_PT_shape_keys(DataButtonsPanel):
|
||||
sub.alignment = 'RIGHT'
|
||||
|
||||
subrow = sub.row(align=True)
|
||||
subrow.active= enable_edit_value
|
||||
subrow.active = enable_edit_value
|
||||
subrow.itemR(ob, "shape_key_lock", icon='ICON_UNPINNED', text="")
|
||||
subrow.itemR(kb, "mute", icon='ICON_MUTE_IPO_OFF', text="")
|
||||
subrow.itemO("object.shape_key_clear", icon='ICON_X', text="")
|
||||
@@ -196,6 +202,7 @@ class DATA_PT_shape_keys(DataButtonsPanel):
|
||||
row.active = enable_edit_value
|
||||
row.itemR(key, "slurph")
|
||||
|
||||
|
||||
class DATA_PT_uv_texture(DataButtonsPanel):
|
||||
bl_label = "UV Texture"
|
||||
|
||||
@@ -217,6 +224,7 @@ class DATA_PT_uv_texture(DataButtonsPanel):
|
||||
if lay:
|
||||
layout.itemR(lay, "name")
|
||||
|
||||
|
||||
class DATA_PT_vertex_colors(DataButtonsPanel):
|
||||
bl_label = "Vertex Colors"
|
||||
|
||||
@@ -245,4 +253,3 @@ bpy.types.register(DATA_PT_vertex_groups)
|
||||
bpy.types.register(DATA_PT_shape_keys)
|
||||
bpy.types.register(DATA_PT_uv_texture)
|
||||
bpy.types.register(DATA_PT_vertex_colors)
|
||||
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -13,6 +15,7 @@ class DataButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return context.meta_ball
|
||||
|
||||
|
||||
class DATA_PT_context_metaball(DataButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -33,6 +36,7 @@ class DATA_PT_context_metaball(DataButtonsPanel):
|
||||
split.template_ID(space, "pin_id")
|
||||
split.itemS()
|
||||
|
||||
|
||||
class DATA_PT_metaball(DataButtonsPanel):
|
||||
bl_label = "Metaball"
|
||||
|
||||
@@ -56,6 +60,7 @@ class DATA_PT_metaball(DataButtonsPanel):
|
||||
layout.itemL(text="Update:")
|
||||
layout.itemR(mball, "flag", expand=True)
|
||||
|
||||
|
||||
class DATA_PT_metaball_element(DataButtonsPanel):
|
||||
bl_label = "Active Element"
|
||||
|
||||
|
||||
@@ -3,14 +3,16 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
bl_context = "modifier"
|
||||
|
||||
|
||||
class DATA_PT_modifiers(DataButtonsPanel):
|
||||
bl_label = "Modifiers"
|
||||
|
||||
@@ -200,7 +202,7 @@ class DATA_PT_modifiers(DataButtonsPanel):
|
||||
flow.itemR(md, "alive")
|
||||
flow.itemR(md, "dead")
|
||||
|
||||
layout.itemO("object.explode_refresh", text="Refresh");
|
||||
layout.itemO("object.explode_refresh", text="Refresh")
|
||||
|
||||
def FLUID_SIMULATION(self, layout, ob, md):
|
||||
layout.itemL(text="See Fluid panel.")
|
||||
@@ -305,7 +307,7 @@ class DATA_PT_modifiers(DataButtonsPanel):
|
||||
if md.path:
|
||||
row = layout.row()
|
||||
row.itemR(md, "position", slider=True)
|
||||
row.itemR(md, "random_position", text = "Random", slider=True)
|
||||
row.itemR(md, "random_position", text="Random", slider=True)
|
||||
|
||||
def PARTICLE_SYSTEM(self, layout, ob, md):
|
||||
layout.itemL(text="See Particle panel.")
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class DataButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,6 +15,7 @@ class DataButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return (context.object and context.object.type == 'TEXT' and context.curve)
|
||||
|
||||
|
||||
class DATA_PT_context_text(DataButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -34,6 +36,7 @@ class DATA_PT_context_text(DataButtonsPanel):
|
||||
split.template_ID(space, "pin_id")
|
||||
split.itemS()
|
||||
|
||||
|
||||
class DATA_PT_shape_text(DataButtonsPanel):
|
||||
bl_label = "Shape Text"
|
||||
|
||||
@@ -68,6 +71,7 @@ class DATA_PT_shape_text(DataButtonsPanel):
|
||||
col.itemL(text="Display:")
|
||||
col.itemR(curve, "fast", text="Fast Editing")
|
||||
|
||||
|
||||
class DATA_PT_geometry_text(DataButtonsPanel):
|
||||
bl_label = "Geometry"
|
||||
|
||||
@@ -92,6 +96,7 @@ class DATA_PT_geometry_text(DataButtonsPanel):
|
||||
col.itemL(text="Bevel Object:")
|
||||
col.itemR(curve, "bevel_object", text="")
|
||||
|
||||
|
||||
class DATA_PT_font(DataButtonsPanel):
|
||||
bl_label = "Font"
|
||||
|
||||
@@ -132,6 +137,7 @@ class DATA_PT_font(DataButtonsPanel):
|
||||
col.itemR(text, "ul_position", text="Position")
|
||||
col.itemR(text, "ul_height", text="Thickness")
|
||||
|
||||
|
||||
class DATA_PT_paragraph(DataButtonsPanel):
|
||||
bl_label = "Paragraph"
|
||||
|
||||
@@ -156,6 +162,7 @@ class DATA_PT_paragraph(DataButtonsPanel):
|
||||
col.itemR(text, "offset_x", text="X")
|
||||
col.itemR(text, "offset_y", text="Y")
|
||||
|
||||
|
||||
class DATA_PT_textboxes(DataButtonsPanel):
|
||||
bl_label = "Text Boxes"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class PhysicsButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -16,6 +17,7 @@ class PhysicsButtonsPanel(bpy.types.Panel):
|
||||
rd = context.scene.render_data
|
||||
return ob and ob.game and (rd.engine == 'BLENDER_GAME')
|
||||
|
||||
|
||||
class PHYSICS_PT_game_physics(PhysicsButtonsPanel):
|
||||
bl_label = "Physics"
|
||||
|
||||
@@ -122,7 +124,7 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel):
|
||||
col.itemL(text="Cluster Collision:")
|
||||
col.itemR(soft, "cluster_rigid_to_softbody")
|
||||
col.itemR(soft, "cluster_soft_to_softbody")
|
||||
sub = col.column()
|
||||
sub = col.column()
|
||||
sub.active = (soft.cluster_rigid_to_softbody or soft.cluster_soft_to_softbody)
|
||||
sub.itemR(soft, "cluster_iterations", text="Iterations")
|
||||
|
||||
@@ -135,6 +137,7 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel):
|
||||
elif game.physics_type in ('SENSOR', 'INVISIBLE', 'NO_COLLISION', 'OCCLUDE'):
|
||||
layout.itemR(ob, "restrict_render", text="Invisible")
|
||||
|
||||
|
||||
class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel):
|
||||
bl_label = "Collision Bounds"
|
||||
|
||||
@@ -163,6 +166,7 @@ class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel):
|
||||
bpy.types.register(PHYSICS_PT_game_physics)
|
||||
bpy.types.register(PHYSICS_PT_game_collision_bounds)
|
||||
|
||||
|
||||
class RenderButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -172,6 +176,7 @@ class RenderButtonsPanel(bpy.types.Panel):
|
||||
rd = context.scene.render_data
|
||||
return (rd.engine == 'BLENDER_GAME')
|
||||
|
||||
|
||||
class RENDER_PT_game(RenderButtonsPanel):
|
||||
bl_label = "Game"
|
||||
|
||||
@@ -182,6 +187,7 @@ class RENDER_PT_game(RenderButtonsPanel):
|
||||
row.itemO("view3d.game_start", text="Start")
|
||||
row.itemL()
|
||||
|
||||
|
||||
class RENDER_PT_game_player(RenderButtonsPanel):
|
||||
bl_label = "Standalone Player"
|
||||
|
||||
@@ -213,6 +219,7 @@ class RENDER_PT_game_player(RenderButtonsPanel):
|
||||
if gs.framing_type == 'LETTERBOX':
|
||||
col.itemR(gs, "framing_color", text="")
|
||||
|
||||
|
||||
class RENDER_PT_game_stereo(RenderButtonsPanel):
|
||||
bl_label = "Stereo"
|
||||
|
||||
@@ -237,31 +244,32 @@ class RENDER_PT_game_stereo(RenderButtonsPanel):
|
||||
|
||||
dome_type = gs.dome_mode
|
||||
|
||||
split=layout.split()
|
||||
split = layout.split()
|
||||
|
||||
if dome_type == 'FISHEYE' or \
|
||||
dome_type == 'TRUNCATED_REAR' or \
|
||||
dome_type == 'TRUNCATED_FRONT':
|
||||
|
||||
col=split.column()
|
||||
col = split.column()
|
||||
col.itemR(gs, "dome_angle", slider=True)
|
||||
col.itemR(gs, "dome_tilt")
|
||||
|
||||
col=split.column()
|
||||
col = split.column()
|
||||
col.itemR(gs, "dome_tesselation", text="Tesselation")
|
||||
col.itemR(gs, "dome_buffer_resolution", text="Resolution", slider=True)
|
||||
|
||||
elif dome_type == 'PANORAM_SPH':
|
||||
col=split.column()
|
||||
col = split.column()
|
||||
col.itemR(gs, "dome_tesselation", text="Tesselation")
|
||||
col.itemR(gs, "dome_buffer_resolution", text="Resolution", slider=True)
|
||||
|
||||
else: # cube map
|
||||
col=split.column()
|
||||
col = split.column()
|
||||
col.itemR(gs, "dome_buffer_resolution", text="Resolution", slider=True)
|
||||
|
||||
layout.itemR(gs, "dome_text")
|
||||
|
||||
|
||||
class RENDER_PT_game_shading(RenderButtonsPanel):
|
||||
bl_label = "Shading"
|
||||
|
||||
@@ -284,6 +292,7 @@ class RENDER_PT_game_shading(RenderButtonsPanel):
|
||||
col.itemR(gs, "glsl_nodes", text="Nodes")
|
||||
col.itemR(gs, "glsl_extra_textures", text="Extra Textures")
|
||||
|
||||
|
||||
class RENDER_PT_game_performance(RenderButtonsPanel):
|
||||
bl_label = "Performance"
|
||||
|
||||
@@ -306,6 +315,7 @@ class RENDER_PT_game_performance(RenderButtonsPanel):
|
||||
col.itemR(gs, "all_frames")
|
||||
col.itemR(gs, "display_lists")
|
||||
|
||||
|
||||
class RENDER_PT_game_sound(RenderButtonsPanel):
|
||||
bl_label = "Sound"
|
||||
|
||||
@@ -325,6 +335,7 @@ bpy.types.register(RENDER_PT_game_shading)
|
||||
bpy.types.register(RENDER_PT_game_performance)
|
||||
bpy.types.register(RENDER_PT_game_sound)
|
||||
|
||||
|
||||
class WorldButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -334,6 +345,7 @@ class WorldButtonsPanel(bpy.types.Panel):
|
||||
rd = context.scene.render_data
|
||||
return (rd.engine == 'BLENDER_GAME')
|
||||
|
||||
|
||||
class WORLD_PT_game_context_world(WorldButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -356,6 +368,7 @@ class WORLD_PT_game_context_world(WorldButtonsPanel):
|
||||
elif world:
|
||||
split.template_ID(space, "pin_id")
|
||||
|
||||
|
||||
class WORLD_PT_game_world(WorldButtonsPanel):
|
||||
bl_label = "World"
|
||||
|
||||
@@ -375,6 +388,7 @@ class WORLD_PT_game_world(WorldButtonsPanel):
|
||||
row.itemR(world.mist, "start")
|
||||
row.itemR(world.mist, "depth")
|
||||
|
||||
|
||||
class WORLD_PT_game_physics(WorldButtonsPanel):
|
||||
bl_label = "Physics"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
def active_node_mat(mat):
|
||||
# TODO, 2.4x has a pipeline section, for 2.5 we need to communicate
|
||||
# which settings from node-materials are used
|
||||
@@ -18,6 +19,7 @@ def active_node_mat(mat):
|
||||
|
||||
return None
|
||||
|
||||
|
||||
class MaterialButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -29,6 +31,7 @@ class MaterialButtonsPanel(bpy.types.Panel):
|
||||
engine = context.scene.render_data.engine
|
||||
return mat and (engine in self.COMPAT_ENGINES)
|
||||
|
||||
|
||||
class MATERIAL_PT_preview(MaterialButtonsPanel):
|
||||
bl_label = "Preview"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
|
||||
@@ -36,6 +39,7 @@ class MATERIAL_PT_preview(MaterialButtonsPanel):
|
||||
def draw(self, context):
|
||||
self.layout.template_preview(context.material)
|
||||
|
||||
|
||||
class MATERIAL_PT_context_material(MaterialButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -88,6 +92,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel):
|
||||
if mat:
|
||||
layout.itemR(mat, "type", expand=True)
|
||||
|
||||
|
||||
class MATERIAL_PT_shading(MaterialButtonsPanel):
|
||||
bl_label = "Shading"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
|
||||
@@ -123,6 +128,7 @@ class MATERIAL_PT_shading(MaterialButtonsPanel):
|
||||
elif mat.type == 'HALO':
|
||||
layout.itemR(mat, "alpha")
|
||||
|
||||
|
||||
class MATERIAL_PT_strand(MaterialButtonsPanel):
|
||||
bl_label = "Strand"
|
||||
bl_default_closed = True
|
||||
@@ -156,8 +162,10 @@ class MATERIAL_PT_strand(MaterialButtonsPanel):
|
||||
col.itemL(text="Shading:")
|
||||
col.itemR(tan, "width_fade")
|
||||
ob = context.object
|
||||
if ob and ob.type == 'MESH': col.item_pointerR(tan, "uv_layer", ob.data, "uv_textures", text="")
|
||||
else: col.itemR(tan, "uv_layer", text="")
|
||||
if ob and ob.type == 'MESH':
|
||||
col.item_pointerR(tan, "uv_layer", ob.data, "uv_textures", text="")
|
||||
else:
|
||||
col.itemR(tan, "uv_layer", text="")
|
||||
col.itemS()
|
||||
sub = col.column()
|
||||
sub.active = (not mat.shadeless)
|
||||
@@ -166,6 +174,7 @@ class MATERIAL_PT_strand(MaterialButtonsPanel):
|
||||
sub.active = tan.surface_diffuse
|
||||
sub.itemR(tan, "blend_distance", text="Distance")
|
||||
|
||||
|
||||
class MATERIAL_PT_physics(MaterialButtonsPanel):
|
||||
bl_label = "Physics"
|
||||
COMPAT_ENGINES = set(['BLENDER_GAME'])
|
||||
@@ -187,6 +196,7 @@ class MATERIAL_PT_physics(MaterialButtonsPanel):
|
||||
col.itemR(phys, "elasticity", slider=True)
|
||||
col.itemR(phys, "damp", slider=True)
|
||||
|
||||
|
||||
class MATERIAL_PT_options(MaterialButtonsPanel):
|
||||
bl_label = "Options"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
|
||||
@@ -229,6 +239,7 @@ class MATERIAL_PT_options(MaterialButtonsPanel):
|
||||
col.itemR(mat, "vertex_color_light")
|
||||
col.itemR(mat, "object_color")
|
||||
|
||||
|
||||
class MATERIAL_PT_shadow(MaterialButtonsPanel):
|
||||
bl_label = "Shadow"
|
||||
bl_default_closed = True
|
||||
@@ -263,6 +274,7 @@ class MATERIAL_PT_shadow(MaterialButtonsPanel):
|
||||
sub.active = (not mat.ray_shadow_bias)
|
||||
sub.itemR(mat, "shadow_ray_bias", text="Ray Bias")
|
||||
|
||||
|
||||
class MATERIAL_PT_diffuse(MaterialButtonsPanel):
|
||||
bl_label = "Diffuse"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
|
||||
@@ -319,6 +331,7 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel):
|
||||
row = layout.row()
|
||||
row.itemR(mat, "diffuse_ramp_factor", text="Factor")
|
||||
|
||||
|
||||
class MATERIAL_PT_specular(MaterialButtonsPanel):
|
||||
bl_label = "Specular"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
|
||||
@@ -373,6 +386,7 @@ class MATERIAL_PT_specular(MaterialButtonsPanel):
|
||||
row = layout.row()
|
||||
row.itemR(mat, "specular_ramp_factor", text="Factor")
|
||||
|
||||
|
||||
class MATERIAL_PT_sss(MaterialButtonsPanel):
|
||||
bl_label = "Subsurface Scattering"
|
||||
bl_default_closed = True
|
||||
@@ -418,6 +432,7 @@ class MATERIAL_PT_sss(MaterialButtonsPanel):
|
||||
col.itemS()
|
||||
col.itemR(sss, "error_tolerance", text="Error")
|
||||
|
||||
|
||||
class MATERIAL_PT_mirror(MaterialButtonsPanel):
|
||||
bl_label = "Mirror"
|
||||
bl_default_closed = True
|
||||
@@ -473,8 +488,9 @@ class MATERIAL_PT_mirror(MaterialButtonsPanel):
|
||||
sub.itemR(raym, "gloss_samples", text="Samples")
|
||||
sub.itemR(raym, "gloss_anisotropic", text="Anisotropic")
|
||||
|
||||
|
||||
class MATERIAL_PT_transp(MaterialButtonsPanel):
|
||||
bl_label= "Transparency"
|
||||
bl_label = "Transparency"
|
||||
bl_default_closed = True
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
@@ -533,8 +549,9 @@ class MATERIAL_PT_transp(MaterialButtonsPanel):
|
||||
sub.itemR(rayt, "gloss_threshold", text="Threshold")
|
||||
sub.itemR(rayt, "gloss_samples", text="Samples")
|
||||
|
||||
|
||||
class MATERIAL_PT_halo(MaterialButtonsPanel):
|
||||
bl_label= "Halo"
|
||||
bl_label = "Halo"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
def poll(self, context):
|
||||
@@ -580,8 +597,9 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
|
||||
sub.active = halo.star
|
||||
sub.itemR(halo, "star_tips")
|
||||
|
||||
|
||||
class MATERIAL_PT_flare(MaterialButtonsPanel):
|
||||
bl_label= "Flare"
|
||||
bl_label = "Flare"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
def poll(self, context):
|
||||
@@ -627,7 +645,7 @@ bpy.types.register(MATERIAL_PT_strand)
|
||||
bpy.types.register(MATERIAL_PT_options)
|
||||
bpy.types.register(MATERIAL_PT_shadow)
|
||||
|
||||
# Volumetrics
|
||||
|
||||
class VolumeButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -638,6 +656,7 @@ class VolumeButtonsPanel(bpy.types.Panel):
|
||||
engine = context.scene.render_data.engine
|
||||
return mat and (mat.type == 'VOLUME') and (engine in self.COMPAT_ENGINES)
|
||||
|
||||
|
||||
class MATERIAL_PT_volume_density(VolumeButtonsPanel):
|
||||
bl_label = "Density"
|
||||
bl_default_closed = False
|
||||
@@ -653,6 +672,7 @@ class MATERIAL_PT_volume_density(VolumeButtonsPanel):
|
||||
row.itemR(vol, "density")
|
||||
row.itemR(vol, "density_scale")
|
||||
|
||||
|
||||
class MATERIAL_PT_volume_shading(VolumeButtonsPanel):
|
||||
bl_label = "Shading"
|
||||
bl_default_closed = False
|
||||
@@ -678,6 +698,7 @@ class MATERIAL_PT_volume_shading(VolumeButtonsPanel):
|
||||
sub.itemR(vol, "reflection")
|
||||
sub.itemR(vol, "reflection_color", text="")
|
||||
|
||||
|
||||
class MATERIAL_PT_volume_lighting(VolumeButtonsPanel):
|
||||
bl_label = "Lighting"
|
||||
bl_default_closed = False
|
||||
@@ -713,8 +734,9 @@ class MATERIAL_PT_volume_lighting(VolumeButtonsPanel):
|
||||
sub.itemR(vol, "ms_spread")
|
||||
sub.itemR(vol, "ms_intensity")
|
||||
|
||||
|
||||
class MATERIAL_PT_volume_transp(VolumeButtonsPanel):
|
||||
bl_label= "Transparency"
|
||||
bl_label = "Transparency"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
def draw(self, context):
|
||||
@@ -724,6 +746,7 @@ class MATERIAL_PT_volume_transp(VolumeButtonsPanel):
|
||||
|
||||
layout.itemR(mat, "transparency_method", expand=True)
|
||||
|
||||
|
||||
class MATERIAL_PT_volume_integration(VolumeButtonsPanel):
|
||||
bl_label = "Integration"
|
||||
bl_default_closed = False
|
||||
|
||||
@@ -3,14 +3,16 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class ObjectButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
bl_context = "object"
|
||||
|
||||
|
||||
class OBJECT_PT_context_object(ObjectButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -24,6 +26,7 @@ class OBJECT_PT_context_object(ObjectButtonsPanel):
|
||||
row.itemL(text="", icon='ICON_OBJECT_DATA')
|
||||
row.itemR(ob, "name", text="")
|
||||
|
||||
|
||||
class OBJECT_PT_transform(ObjectButtonsPanel):
|
||||
bl_label = "Transform"
|
||||
|
||||
@@ -49,6 +52,7 @@ class OBJECT_PT_transform(ObjectButtonsPanel):
|
||||
|
||||
layout.itemR(ob, "rotation_mode")
|
||||
|
||||
|
||||
class OBJECT_PT_transform_locks(ObjectButtonsPanel):
|
||||
bl_label = "Transform Locks"
|
||||
bl_default_closed = True
|
||||
@@ -74,6 +78,7 @@ class OBJECT_PT_transform_locks(ObjectButtonsPanel):
|
||||
|
||||
row.column().itemR(ob, "lock_scale")
|
||||
|
||||
|
||||
class OBJECT_PT_relations(ObjectButtonsPanel):
|
||||
bl_label = "Relations"
|
||||
|
||||
@@ -102,6 +107,7 @@ class OBJECT_PT_relations(ObjectButtonsPanel):
|
||||
sub.item_pointerR(ob, "parent_bone", parent.data, "bones", text="")
|
||||
sub.active = parent != None
|
||||
|
||||
|
||||
class OBJECT_PT_groups(ObjectButtonsPanel):
|
||||
bl_label = "Groups"
|
||||
|
||||
@@ -128,6 +134,7 @@ class OBJECT_PT_groups(ObjectButtonsPanel):
|
||||
split.column().itemR(group, "layer", text="Dupli")
|
||||
split.column().itemR(group, "dupli_offset", text="")
|
||||
|
||||
|
||||
class OBJECT_PT_display(ObjectButtonsPanel):
|
||||
bl_label = "Display"
|
||||
|
||||
@@ -154,6 +161,7 @@ class OBJECT_PT_display(ObjectButtonsPanel):
|
||||
flow.itemR(ob, "x_ray", text="X-Ray")
|
||||
flow.itemR(ob, "draw_transparent", text="Transparency")
|
||||
|
||||
|
||||
class OBJECT_PT_duplication(ObjectButtonsPanel):
|
||||
bl_label = "Duplication"
|
||||
|
||||
@@ -188,6 +196,7 @@ class OBJECT_PT_duplication(ObjectButtonsPanel):
|
||||
elif ob.dupli_type == 'GROUP':
|
||||
layout.itemR(ob, "dupli_group", text="Group")
|
||||
|
||||
|
||||
class OBJECT_PT_animation(ObjectButtonsPanel):
|
||||
bl_label = "Animation"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class ConstraintButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -119,7 +120,7 @@ class ConstraintButtonsPanel(bpy.types.Panel):
|
||||
def IK(self, context, layout, con):
|
||||
if context.object.pose.ik_solver == "ITASC":
|
||||
layout.itemR(con, "ik_type")
|
||||
getattr(self, "IK_"+con.ik_type)(context, layout, con)
|
||||
getattr(self, "IK_" + con.ik_type)(context, layout, con)
|
||||
else:
|
||||
# Legacy IK constraint
|
||||
self.target_template(layout, con)
|
||||
@@ -440,7 +441,7 @@ class ConstraintButtonsPanel(bpy.types.Panel):
|
||||
def LIMIT_DISTANCE(self, context, layout, con):
|
||||
self.target_template(layout, con)
|
||||
|
||||
col = layout.column(align=True);
|
||||
col = layout.column(align=True)
|
||||
col.itemR(con, "distance")
|
||||
col.itemO("constraint.limitdistance_reset")
|
||||
|
||||
@@ -562,7 +563,7 @@ class ConstraintButtonsPanel(bpy.types.Panel):
|
||||
|
||||
self.space_template(layout, con)
|
||||
|
||||
def SHRINKWRAP (self, context, layout, con):
|
||||
def SHRINKWRAP(self, context, layout, con):
|
||||
self.target_template(layout, con)
|
||||
|
||||
layout.itemR(con, "distance")
|
||||
@@ -581,6 +582,7 @@ class ConstraintButtonsPanel(bpy.types.Panel):
|
||||
row.itemL(text="To:")
|
||||
row.itemR(con, "track", expand=True)
|
||||
|
||||
|
||||
class OBJECT_PT_constraints(ConstraintButtonsPanel):
|
||||
bl_label = "Constraints"
|
||||
bl_context = "constraint"
|
||||
@@ -594,11 +596,12 @@ class OBJECT_PT_constraints(ConstraintButtonsPanel):
|
||||
|
||||
row = layout.row()
|
||||
row.item_menu_enumO("object.constraint_add", "type")
|
||||
row.itemL();
|
||||
row.itemL()
|
||||
|
||||
for con in ob.constraints:
|
||||
self.draw_constraint(context, con)
|
||||
|
||||
|
||||
class BONE_PT_inverse_kinematics(ConstraintButtonsPanel):
|
||||
bl_label = "Inverse Kinematics"
|
||||
bl_default_closed = True
|
||||
@@ -681,6 +684,7 @@ class BONE_PT_inverse_kinematics(ConstraintButtonsPanel):
|
||||
#row.itemR(pchan, "ik_lin_control", text="Joint Size")
|
||||
#row.itemR(pchan, "ik_lin_weight", text="Weight", slider=True)
|
||||
|
||||
|
||||
class BONE_PT_iksolver_itasc(ConstraintButtonsPanel):
|
||||
bl_label = "iTaSC parameters"
|
||||
bl_default_closed = True
|
||||
@@ -731,6 +735,7 @@ class BONE_PT_iksolver_itasc(ConstraintButtonsPanel):
|
||||
row.itemR(itasc, "dampmax", text="Damp", slider=True)
|
||||
row.itemR(itasc, "dampeps", text="Eps", slider=True)
|
||||
|
||||
|
||||
class BONE_PT_constraints(ConstraintButtonsPanel):
|
||||
bl_label = "Constraints"
|
||||
bl_context = "bone_constraint"
|
||||
@@ -747,7 +752,7 @@ class BONE_PT_constraints(ConstraintButtonsPanel):
|
||||
|
||||
row = layout.row()
|
||||
row.item_menu_enumO("pose.constraint_add", "type")
|
||||
row.itemL();
|
||||
row.itemL()
|
||||
|
||||
for con in pchan.constraints:
|
||||
self.draw_constraint(context, con)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
from properties_physics_common import point_cache_ui
|
||||
@@ -11,15 +11,20 @@ from properties_physics_common import effector_weights_ui
|
||||
from properties_physics_common import basic_force_field_settings_ui
|
||||
from properties_physics_common import basic_force_field_falloff_ui
|
||||
|
||||
|
||||
def particle_panel_enabled(context, psys):
|
||||
return psys.point_cache.baked==False and psys.edited==False and (not context.particle_system_editable)
|
||||
return psys.point_cache.baked == False and psys.edited == False and (not context.particle_system_editable)
|
||||
|
||||
|
||||
def particle_panel_poll(context):
|
||||
psys = context.particle_system
|
||||
if psys==None: return False
|
||||
if psys.settings==None: return False
|
||||
if psys == None:
|
||||
return False
|
||||
if psys.settings == None:
|
||||
return False
|
||||
return psys.settings.type in ('EMITTER', 'REACTOR', 'HAIR')
|
||||
|
||||
|
||||
class ParticleButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -28,6 +33,7 @@ class ParticleButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return particle_panel_poll(context)
|
||||
|
||||
|
||||
class PARTICLE_PT_particles(ParticleButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -84,32 +90,33 @@ class PARTICLE_PT_particles(ParticleButtonsPanel):
|
||||
layout.itemL(text="No settings for fluid particles")
|
||||
return
|
||||
|
||||
row=col.row()
|
||||
row = col.row()
|
||||
row.enabled = particle_panel_enabled(context, psys)
|
||||
row.itemR(part, "type", text="")
|
||||
row.itemR(psys, "seed")
|
||||
|
||||
split = layout.split(percentage=0.65)
|
||||
if part.type=='HAIR':
|
||||
if psys.edited==True:
|
||||
if part.type == 'HAIR':
|
||||
if psys.edited == True:
|
||||
split.itemO("particle.edited_clear", text="Free Edit")
|
||||
else:
|
||||
split.itemL(text="")
|
||||
row = split.row()
|
||||
row.enabled = particle_panel_enabled(context, psys)
|
||||
row.itemR(part, "hair_step")
|
||||
if psys.edited==True:
|
||||
if psys.edited == True:
|
||||
if psys.global_hair:
|
||||
layout.itemO("particle.connect_hair")
|
||||
layout.itemL(text="Hair is disconnected.")
|
||||
else:
|
||||
layout.itemO("particle.disconnect_hair")
|
||||
layout.itemL(text="")
|
||||
elif part.type=='REACTOR':
|
||||
elif part.type == 'REACTOR':
|
||||
split.enabled = particle_panel_enabled(context, psys)
|
||||
split.itemR(psys, "reactor_target_object")
|
||||
split.itemR(psys, "reactor_target_particle_system", text="Particle System")
|
||||
|
||||
|
||||
class PARTICLE_PT_emission(ParticleButtonsPanel):
|
||||
bl_label = "Emission"
|
||||
|
||||
@@ -148,29 +155,32 @@ class PARTICLE_PT_emission(ParticleButtonsPanel):
|
||||
row.itemR(part, "emit_from", expand=True)
|
||||
row = layout.row()
|
||||
row.itemR(part, "trand")
|
||||
if part.distribution!='GRID':
|
||||
if part.distribution != 'GRID':
|
||||
row.itemR(part, "even_distribution")
|
||||
|
||||
if part.emit_from=='FACE' or part.emit_from=='VOLUME':
|
||||
if part.emit_from == 'FACE' or part.emit_from == 'VOLUME':
|
||||
row = layout.row()
|
||||
row.itemR(part, "distribution", expand=True)
|
||||
|
||||
row = layout.row()
|
||||
|
||||
if part.distribution=='JIT':
|
||||
if part.distribution == 'JIT':
|
||||
row.itemR(part, "userjit", text="Particles/Face")
|
||||
row.itemR(part, "jitter_factor", text="Jittering Amount", slider=True)
|
||||
elif part.distribution=='GRID':
|
||||
elif part.distribution == 'GRID':
|
||||
row.itemR(part, "grid_resolution")
|
||||
|
||||
|
||||
class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel):
|
||||
bl_label = "Hair dynamics"
|
||||
bl_default_closed = True
|
||||
|
||||
def poll(self, context):
|
||||
psys = context.particle_system
|
||||
if psys==None: return False
|
||||
if psys.settings==None: return False
|
||||
if psys == None:
|
||||
return False
|
||||
if psys.settings == None:
|
||||
return False
|
||||
return psys.settings.type == 'HAIR'
|
||||
|
||||
def draw_header(self, context):
|
||||
@@ -208,7 +218,8 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel):
|
||||
sub.itemR(cloth, "air_damping", text="Air")
|
||||
|
||||
col.itemL(text="Quality:")
|
||||
col.itemR(cloth, "quality", text="Steps",slider=True)
|
||||
col.itemR(cloth, "quality", text="Steps", slider=True)
|
||||
|
||||
|
||||
class PARTICLE_PT_cache(ParticleButtonsPanel):
|
||||
bl_label = "Cache"
|
||||
@@ -216,8 +227,10 @@ class PARTICLE_PT_cache(ParticleButtonsPanel):
|
||||
|
||||
def poll(self, context):
|
||||
psys = context.particle_system
|
||||
if psys==None: return False
|
||||
if psys.settings==None: return False
|
||||
if psys == None:
|
||||
return False
|
||||
if psys.settings == None:
|
||||
return False
|
||||
phystype = psys.settings.physics_type
|
||||
if phystype == 'NO' or phystype == 'KEYED':
|
||||
return False
|
||||
@@ -230,6 +243,7 @@ class PARTICLE_PT_cache(ParticleButtonsPanel):
|
||||
|
||||
point_cache_ui(self, psys.point_cache, particle_panel_enabled(context, psys), not psys.hair_dynamics, 0)
|
||||
|
||||
|
||||
class PARTICLE_PT_velocity(ParticleButtonsPanel):
|
||||
bl_label = "Velocity"
|
||||
|
||||
@@ -264,7 +278,7 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel):
|
||||
layout.row().itemL(text="Other:")
|
||||
split = layout.split()
|
||||
sub = split.column()
|
||||
if part.emit_from=='PARTICLE':
|
||||
if part.emit_from == 'PARTICLE':
|
||||
sub.itemR(part, "particle_factor")
|
||||
else:
|
||||
sub.itemR(part, "object_factor", slider=True)
|
||||
@@ -275,6 +289,7 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel):
|
||||
# sub.itemR(part, "reactor_factor")
|
||||
# sub.itemR(part, "reaction_shape", slider=True)
|
||||
|
||||
|
||||
class PARTICLE_PT_rotation(ParticleButtonsPanel):
|
||||
bl_label = "Rotation"
|
||||
|
||||
@@ -314,6 +329,7 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel):
|
||||
|
||||
sub.itemR(part, "angular_velocity_factor", text="")
|
||||
|
||||
|
||||
class PARTICLE_PT_physics(ParticleButtonsPanel):
|
||||
bl_label = "Physics"
|
||||
|
||||
@@ -367,7 +383,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel):
|
||||
row.itemR(psys, "keyed_timing", text="Use Timing")
|
||||
|
||||
layout.itemL(text="Keys:")
|
||||
elif part.physics_type=='BOIDS':
|
||||
elif part.physics_type == 'BOIDS':
|
||||
boids = part.boids
|
||||
|
||||
|
||||
@@ -415,8 +431,8 @@ class PARTICLE_PT_physics(ParticleButtonsPanel):
|
||||
col.itemR(boids, "banking", slider=True)
|
||||
col.itemR(boids, "height", slider=True)
|
||||
|
||||
if part.physics_type=='KEYED' or part.physics_type=='BOIDS':
|
||||
if part.physics_type=='BOIDS':
|
||||
if part.physics_type == 'KEYED' or part.physics_type == 'BOIDS':
|
||||
if part.physics_type == 'BOIDS':
|
||||
layout.itemL(text="Relations:")
|
||||
|
||||
row = layout.row()
|
||||
@@ -435,13 +451,13 @@ class PARTICLE_PT_physics(ParticleButtonsPanel):
|
||||
key = psys.active_particle_target
|
||||
if key:
|
||||
row = layout.row()
|
||||
if part.physics_type=='KEYED':
|
||||
if part.physics_type == 'KEYED':
|
||||
col = row.column()
|
||||
#doesn't work yet
|
||||
#col.red_alert = key.valid
|
||||
col.itemR(key, "object", text="")
|
||||
col.itemR(key, "system", text="System")
|
||||
col = row.column();
|
||||
col = row.column()
|
||||
col.active = psys.keyed_timing
|
||||
col.itemR(key, "time")
|
||||
col.itemR(key, "duration")
|
||||
@@ -454,15 +470,19 @@ class PARTICLE_PT_physics(ParticleButtonsPanel):
|
||||
|
||||
layout.itemR(key, "mode", expand=True)
|
||||
|
||||
|
||||
class PARTICLE_PT_boidbrain(ParticleButtonsPanel):
|
||||
bl_label = "Boid Brain"
|
||||
|
||||
def poll(self, context):
|
||||
psys = context.particle_system
|
||||
if psys==None: return False
|
||||
if psys.settings==None: return False
|
||||
if psys.point_cache.external: return False
|
||||
return psys.settings.physics_type=='BOIDS'
|
||||
if psys == None:
|
||||
return False
|
||||
if psys.settings == None:
|
||||
return False
|
||||
if psys.point_cache.external:
|
||||
return False
|
||||
return psys.settings.physics_type == 'BOIDS'
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
@@ -488,7 +508,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel):
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(state, "ruleset_type")
|
||||
if state.ruleset_type=='FUZZY':
|
||||
if state.ruleset_type == 'FUZZY':
|
||||
row.itemR(state, "rule_fuzziness", slider=True)
|
||||
else:
|
||||
row.itemL(text="")
|
||||
@@ -548,14 +568,17 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel):
|
||||
row.itemR(rule, "distance")
|
||||
row.itemR(rule, "flee_distance")
|
||||
|
||||
|
||||
class PARTICLE_PT_render(ParticleButtonsPanel):
|
||||
bl_label = "Render"
|
||||
|
||||
def poll(self, context):
|
||||
psys = context.particle_system
|
||||
if psys==None: return False
|
||||
if psys.settings==None: return False
|
||||
return True;
|
||||
if psys == None:
|
||||
return False
|
||||
if psys.settings == None:
|
||||
return False
|
||||
return True
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
@@ -565,16 +588,16 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(part, "material")
|
||||
row.itemR(psys, "parent");
|
||||
row.itemR(psys, "parent")
|
||||
|
||||
split = layout.split()
|
||||
|
||||
sub = split.column()
|
||||
sub.itemR(part, "emitter");
|
||||
sub.itemR(part, "parent");
|
||||
sub.itemR(part, "emitter")
|
||||
sub.itemR(part, "parent")
|
||||
sub = split.column()
|
||||
sub.itemR(part, "unborn");
|
||||
sub.itemR(part, "died");
|
||||
sub.itemR(part, "unborn")
|
||||
sub.itemR(part, "died")
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(part, "ren_as", expand=True)
|
||||
@@ -590,7 +613,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
|
||||
sub.itemR(part, "velocity_length")
|
||||
elif part.ren_as == 'PATH':
|
||||
|
||||
if (part.type!='HAIR' and part.physics_type!='KEYED' and psys.point_cache.baked==False):
|
||||
if part.type != 'HAIR' and part.physics_type != 'KEYED' and psys.point_cache.baked == False:
|
||||
box = layout.box()
|
||||
box.itemL(text="Baked or keyed particles needed for correct rendering.")
|
||||
return
|
||||
@@ -611,16 +634,16 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
|
||||
|
||||
sub.itemL(text="Timing:")
|
||||
sub.itemR(part, "abs_path_time")
|
||||
sub.itemR(part, "path_start", text="Start", slider= not part.abs_path_time)
|
||||
sub.itemR(part, "path_end", text="End", slider= not part.abs_path_time)
|
||||
sub.itemR(part, "path_start", text="Start", slider=not part.abs_path_time)
|
||||
sub.itemR(part, "path_end", text="End", slider=not part.abs_path_time)
|
||||
sub.itemR(part, "random_length", text="Random", slider=True)
|
||||
|
||||
row = layout.row()
|
||||
col = row.column()
|
||||
|
||||
if part.type=='HAIR' and part.render_strand==True and part.child_type=='FACES':
|
||||
if part.type == 'HAIR' and part.render_strand == True and part.child_type == 'FACES':
|
||||
layout.itemR(part, "enable_simplify")
|
||||
if part.enable_simplify==True:
|
||||
if part.enable_simplify == True:
|
||||
row = layout.row()
|
||||
row.itemR(part, "simplify_refsize")
|
||||
row.itemR(part, "simplify_rate")
|
||||
@@ -628,7 +651,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
|
||||
row = layout.row()
|
||||
row.itemR(part, "viewport")
|
||||
subrow = row.row()
|
||||
subrow.active = part.viewport==True
|
||||
subrow.active = part.viewport == True
|
||||
subrow.itemR(part, "simplify_viewport")
|
||||
|
||||
elif part.ren_as == 'OBJECT':
|
||||
@@ -698,7 +721,8 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
|
||||
row.itemR(part, "billboard_animation", expand=True)
|
||||
row.itemL(text="Offset:")
|
||||
row.itemR(part, "billboard_split_offset", expand=True)
|
||||
if part.ren_as == 'HALO' or part.ren_as == 'LINE' or part.ren_as=='BILLBOARD':
|
||||
|
||||
if part.ren_as == 'HALO' or part.ren_as == 'LINE' or part.ren_as == 'BILLBOARD':
|
||||
row = layout.row()
|
||||
col = row.column()
|
||||
col.itemR(part, "trail_count")
|
||||
@@ -711,15 +735,18 @@ class PARTICLE_PT_render(ParticleButtonsPanel):
|
||||
col = row.column()
|
||||
col.itemL(text="")
|
||||
|
||||
|
||||
class PARTICLE_PT_draw(ParticleButtonsPanel):
|
||||
bl_label = "Display"
|
||||
bl_default_closed = True
|
||||
|
||||
def poll(self, context):
|
||||
psys = context.particle_system
|
||||
if psys==None: return False
|
||||
if psys.settings==None: return False
|
||||
return True;
|
||||
if psys == None:
|
||||
return False
|
||||
if psys.settings == None:
|
||||
return False
|
||||
return True
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
@@ -730,19 +757,19 @@ class PARTICLE_PT_draw(ParticleButtonsPanel):
|
||||
row = layout.row()
|
||||
row.itemR(part, "draw_as", expand=True)
|
||||
|
||||
if part.draw_as=='NONE' or (part.ren_as=='NONE' and part.draw_as=='RENDER'):
|
||||
if part.draw_as == 'NONE' or (part.ren_as == 'NONE' and part.draw_as == 'RENDER'):
|
||||
return
|
||||
|
||||
path = (part.ren_as=='PATH' and part.draw_as=='RENDER') or part.draw_as=='PATH'
|
||||
path = (part.ren_as == 'PATH' and part.draw_as == 'RENDER') or part.draw_as == 'PATH'
|
||||
|
||||
if path and part.type!='HAIR' and part.physics_type!='KEYED' and psys.point_cache.baked==False:
|
||||
if path and part.type != 'HAIR' and part.physics_type != 'KEYED' and psys.point_cache.baked == False:
|
||||
box = layout.box()
|
||||
box.itemL(text="Baked or keyed particles needed for correct drawing.")
|
||||
return
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(part, "display", slider=True)
|
||||
if part.draw_as!='RENDER' or part.ren_as=='HALO':
|
||||
if part.draw_as != 'RENDER' or part.ren_as == 'HALO':
|
||||
row.itemR(part, "draw_size")
|
||||
else:
|
||||
row.itemL(text="")
|
||||
@@ -762,10 +789,11 @@ class PARTICLE_PT_draw(ParticleButtonsPanel):
|
||||
col.itemR(part, "draw_step")
|
||||
else:
|
||||
subcol = col.column()
|
||||
subcol.active = part.material_color==False
|
||||
subcol.active = part.material_color == False
|
||||
#subcol.itemL(text="color")
|
||||
#subcol.itemL(text="Override material color")
|
||||
|
||||
|
||||
class PARTICLE_PT_children(ParticleButtonsPanel):
|
||||
bl_label = "Children"
|
||||
bl_default_closed = True
|
||||
@@ -778,7 +806,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel):
|
||||
|
||||
layout.row().itemR(part, "child_type", expand=True)
|
||||
|
||||
if part.child_type=='NONE':
|
||||
if part.child_type == 'NONE':
|
||||
return
|
||||
|
||||
row = layout.row()
|
||||
@@ -789,7 +817,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel):
|
||||
|
||||
col = row.column(align=True)
|
||||
|
||||
if part.child_type=='FACES':
|
||||
if part.child_type == 'FACES':
|
||||
col.itemR(part, "virtual_parents", slider=True)
|
||||
else:
|
||||
col.itemR(part, "child_radius", text="Radius")
|
||||
@@ -842,6 +870,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel):
|
||||
sub = split.column()
|
||||
sub.itemR(part, "kink_shape", slider=True)
|
||||
|
||||
|
||||
class PARTICLE_PT_field_weights(ParticleButtonsPanel):
|
||||
bl_label = "Field Weights"
|
||||
bl_default_closed = True
|
||||
@@ -853,6 +882,7 @@ class PARTICLE_PT_field_weights(ParticleButtonsPanel):
|
||||
if part.type == 'HAIR':
|
||||
self.layout.itemR(part.effector_weights, "do_growing_hair")
|
||||
|
||||
|
||||
class PARTICLE_PT_force_fields(ParticleButtonsPanel):
|
||||
bl_label = "Force Field Settings"
|
||||
bl_default_closed = True
|
||||
@@ -866,7 +896,7 @@ class PARTICLE_PT_force_fields(ParticleButtonsPanel):
|
||||
|
||||
split = layout.split(percentage=0.2)
|
||||
split.itemL(text="Type 1:")
|
||||
split.itemR(part.force_field_1, "type",text="")
|
||||
split.itemR(part.force_field_1, "type", text="")
|
||||
basic_force_field_settings_ui(self, part.force_field_1)
|
||||
basic_force_field_falloff_ui(self, part.force_field_1)
|
||||
|
||||
@@ -875,10 +905,11 @@ class PARTICLE_PT_force_fields(ParticleButtonsPanel):
|
||||
|
||||
split = layout.split(percentage=0.2)
|
||||
split.itemL(text="Type 2:")
|
||||
split.itemR(part.force_field_2, "type",text="")
|
||||
split.itemR(part.force_field_2, "type", text="")
|
||||
basic_force_field_settings_ui(self, part.force_field_2)
|
||||
basic_force_field_falloff_ui(self, part.force_field_2)
|
||||
|
||||
|
||||
class PARTICLE_PT_vertexgroups(ParticleButtonsPanel):
|
||||
bl_label = "Vertexgroups"
|
||||
bl_default_closed = True
|
||||
|
||||
@@ -3,14 +3,16 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
from properties_physics_common import point_cache_ui
|
||||
from properties_physics_common import effector_weights_ui
|
||||
|
||||
|
||||
def cloth_panel_enabled(md):
|
||||
return md.point_cache.baked==False
|
||||
return md.point_cache.baked == False
|
||||
|
||||
|
||||
class PhysicButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
@@ -22,6 +24,7 @@ class PhysicButtonsPanel(bpy.types.Panel):
|
||||
rd = context.scene.render_data
|
||||
return (ob and ob.type == 'MESH') and (not rd.use_game_engine)
|
||||
|
||||
|
||||
class PHYSICS_PT_cloth(PhysicButtonsPanel):
|
||||
bl_label = "Cloth"
|
||||
|
||||
@@ -57,7 +60,7 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel):
|
||||
col = split.column()
|
||||
|
||||
col.itemL(text="Quality:")
|
||||
col.itemR(cloth, "quality", text="Steps",slider=True)
|
||||
col.itemR(cloth, "quality", text="Steps", slider=True)
|
||||
|
||||
col.itemL(text="Material:")
|
||||
sub = col.column(align=True)
|
||||
@@ -92,6 +95,7 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel):
|
||||
col.itemR(cloth, "goal_friction", text="Friction")
|
||||
"""
|
||||
|
||||
|
||||
class PHYSICS_PT_cloth_cache(PhysicButtonsPanel):
|
||||
bl_label = "Cloth Cache"
|
||||
bl_default_closed = True
|
||||
@@ -103,6 +107,7 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel):
|
||||
md = context.cloth
|
||||
point_cache_ui(self, md.point_cache, cloth_panel_enabled(md), 0, 0)
|
||||
|
||||
|
||||
class PHYSICS_PT_cloth_collision(PhysicButtonsPanel):
|
||||
bl_label = "Cloth Collision"
|
||||
bl_default_closed = True
|
||||
@@ -138,6 +143,7 @@ class PHYSICS_PT_cloth_collision(PhysicButtonsPanel):
|
||||
sub.itemR(cloth, "self_collision_quality", slider=True, text="Quality")
|
||||
sub.itemR(cloth, "self_min_distance", slider=True, text="Distance")
|
||||
|
||||
|
||||
class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel):
|
||||
bl_label = "Cloth Stiffness Scaling"
|
||||
bl_default_closed = True
|
||||
@@ -174,6 +180,7 @@ class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel):
|
||||
sub.itemR(cloth, "bending_stiffness_max", text="Max")
|
||||
sub.item_pointerR(cloth, "bending_vertex_group", ob, "vertex_groups", text="")
|
||||
|
||||
|
||||
class PHYSICS_PT_cloth_field_weights(PhysicButtonsPanel):
|
||||
bl_label = "Cloth Field Weights"
|
||||
bl_default_closed = True
|
||||
|
||||
@@ -3,14 +3,16 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
def point_cache_ui(self, cache, enabled, particles, smoke):
|
||||
layout = self.layout
|
||||
layout.set_context_pointer("PointCache", cache)
|
||||
|
||||
row = layout.row()
|
||||
row.template_list(cache, "point_cache_list", cache, "active_point_cache_index", rows=2 )
|
||||
row.template_list(cache, "point_cache_list", cache, "active_point_cache_index", rows=2)
|
||||
col = row.column(align=True)
|
||||
col.itemO("ptcache.add_new", icon='ICON_ZOOMIN', text="")
|
||||
col.itemO("ptcache.remove", icon='ICON_ZOOMOUT', text="")
|
||||
@@ -53,7 +55,7 @@ def point_cache_ui(self, cache, enabled, particles, smoke):
|
||||
row.enabled = enabled
|
||||
row.itemO("ptcache.bake_from_cache", text="Current Cache to Bake")
|
||||
if not smoke:
|
||||
row.itemR(cache, "step");
|
||||
row.itemR(cache, "step")
|
||||
|
||||
if not smoke:
|
||||
row = layout.row()
|
||||
@@ -71,6 +73,7 @@ def point_cache_ui(self, cache, enabled, particles, smoke):
|
||||
row.itemO("ptcache.free_bake_all", text="Free All Bakes")
|
||||
layout.itemO("ptcache.bake_all", "bake", False, text="Update All Dynamics to current frame")
|
||||
|
||||
|
||||
def effector_weights_ui(self, weights):
|
||||
layout = self.layout
|
||||
|
||||
@@ -96,6 +99,7 @@ def effector_weights_ui(self, weights):
|
||||
flow.itemR(weights, "drag", slider=True)
|
||||
flow.itemR(weights, "boid", slider=True)
|
||||
|
||||
|
||||
def basic_force_field_settings_ui(self, field):
|
||||
layout = self.layout
|
||||
split = layout.split()
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
from properties_physics_common import basic_force_field_settings_ui
|
||||
from properties_physics_common import basic_force_field_falloff_ui
|
||||
|
||||
|
||||
class PhysicButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -18,6 +19,7 @@ class PhysicButtonsPanel(bpy.types.Panel):
|
||||
rd = context.scene.render_data
|
||||
return (context.object) and (not rd.use_game_engine)
|
||||
|
||||
|
||||
class PHYSICS_PT_field(PhysicButtonsPanel):
|
||||
bl_label = "Force Fields"
|
||||
|
||||
@@ -29,7 +31,7 @@ class PHYSICS_PT_field(PhysicButtonsPanel):
|
||||
|
||||
split = layout.split(percentage=0.2)
|
||||
split.itemL(text="Type:")
|
||||
split.itemR(field, "type",text="")
|
||||
split.itemR(field, "type", text="")
|
||||
|
||||
if field.type not in ('NONE', 'GUIDE', 'TEXTURE'):
|
||||
split = layout.split(percentage=0.2)
|
||||
@@ -81,8 +83,7 @@ class PHYSICS_PT_field(PhysicButtonsPanel):
|
||||
col.itemR(field, "use_coordinates")
|
||||
col.itemR(field, "root_coordinates")
|
||||
col.itemR(field, "force_2d")
|
||||
|
||||
else :
|
||||
else:
|
||||
basic_force_field_settings_ui(self, field)
|
||||
|
||||
if field.type not in ('NONE', 'GUIDE'):
|
||||
@@ -134,6 +135,7 @@ class PHYSICS_PT_field(PhysicButtonsPanel):
|
||||
sub.active = field.use_radial_max
|
||||
sub.itemR(field, "radial_maximum", text="Distance")
|
||||
|
||||
|
||||
class PHYSICS_PT_collision(PhysicButtonsPanel):
|
||||
bl_label = "Collision"
|
||||
#bl_default_closed = True
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class PhysicButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -16,6 +17,7 @@ class PhysicButtonsPanel(bpy.types.Panel):
|
||||
rd = context.scene.render_data
|
||||
return (ob and ob.type == 'MESH') and (not rd.use_game_engine)
|
||||
|
||||
|
||||
class PHYSICS_PT_fluid(PhysicButtonsPanel):
|
||||
bl_label = "Fluid"
|
||||
|
||||
@@ -173,6 +175,7 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel):
|
||||
sub.itemR(fluid, "velocity_strength", text="Strength")
|
||||
sub.itemR(fluid, "velocity_radius", text="Radius")
|
||||
|
||||
|
||||
class PHYSICS_PT_domain_gravity(PhysicButtonsPanel):
|
||||
bl_label = "Domain World"
|
||||
bl_default_closed = True
|
||||
@@ -211,6 +214,7 @@ class PHYSICS_PT_domain_gravity(PhysicButtonsPanel):
|
||||
sub.itemR(fluid, "grid_levels", slider=True)
|
||||
sub.itemR(fluid, "compressibility", slider=True)
|
||||
|
||||
|
||||
class PHYSICS_PT_domain_boundary(PhysicButtonsPanel):
|
||||
bl_label = "Domain Boundary"
|
||||
bl_default_closed = True
|
||||
@@ -239,6 +243,7 @@ class PHYSICS_PT_domain_boundary(PhysicButtonsPanel):
|
||||
sub.itemR(fluid, "surface_smoothing", text="Smoothing")
|
||||
sub.itemR(fluid, "surface_subdivisions", text="Subdivisions")
|
||||
|
||||
|
||||
class PHYSICS_PT_domain_particles(PhysicButtonsPanel):
|
||||
bl_label = "Domain Particles"
|
||||
bl_default_closed = True
|
||||
|
||||
@@ -3,12 +3,14 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
from properties_physics_common import point_cache_ui
|
||||
from properties_physics_common import effector_weights_ui
|
||||
|
||||
|
||||
class PhysicButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -19,6 +21,7 @@ class PhysicButtonsPanel(bpy.types.Panel):
|
||||
rd = context.scene.render_data
|
||||
return (ob and ob.type == 'MESH') and (not rd.use_game_engine)
|
||||
|
||||
|
||||
class PHYSICS_PT_smoke(PhysicButtonsPanel):
|
||||
bl_label = "Smoke"
|
||||
|
||||
@@ -90,6 +93,7 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel):
|
||||
#elif md.smoke_type == 'TYPE_COLL':
|
||||
# layout.itemS()
|
||||
|
||||
|
||||
class PHYSICS_PT_smoke_groups(PhysicButtonsPanel):
|
||||
bl_label = "Smoke Groups"
|
||||
bl_default_closed = True
|
||||
@@ -116,6 +120,7 @@ class PHYSICS_PT_smoke_groups(PhysicButtonsPanel):
|
||||
col.itemL(text="Collision Group:")
|
||||
col.itemR(group, "coll_group", text="")
|
||||
|
||||
|
||||
class PHYSICS_PT_smoke_cache(PhysicButtonsPanel):
|
||||
bl_label = "Smoke Cache"
|
||||
bl_default_closed = True
|
||||
@@ -130,7 +135,8 @@ class PHYSICS_PT_smoke_cache(PhysicButtonsPanel):
|
||||
md = context.smoke.domain_settings
|
||||
cache = md.point_cache_low
|
||||
|
||||
point_cache_ui(self, cache, cache.baked==False, 0, 1)
|
||||
point_cache_ui(self, cache, cache.baked == False, 0, 1)
|
||||
|
||||
|
||||
class PHYSICS_PT_smoke_highres(PhysicButtonsPanel):
|
||||
bl_label = "Smoke High Resolution"
|
||||
@@ -162,6 +168,7 @@ class PHYSICS_PT_smoke_highres(PhysicButtonsPanel):
|
||||
col.itemR(md, "strength")
|
||||
col.itemR(md, "viewhighres")
|
||||
|
||||
|
||||
class PHYSICS_PT_smoke_cache_highres(PhysicButtonsPanel):
|
||||
bl_label = "Smoke High Resolution Cache"
|
||||
bl_default_closed = True
|
||||
@@ -176,7 +183,8 @@ class PHYSICS_PT_smoke_cache_highres(PhysicButtonsPanel):
|
||||
md = context.smoke.domain_settings
|
||||
cache = md.point_cache_high
|
||||
|
||||
point_cache_ui(self, cache, cache.baked==False, 0, 1)
|
||||
point_cache_ui(self, cache, cache.baked == False, 0, 1)
|
||||
|
||||
|
||||
class PHYSICS_PT_smoke_field_weights(PhysicButtonsPanel):
|
||||
bl_label = "Smoke Field Weights"
|
||||
|
||||
@@ -3,14 +3,17 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
from properties_physics_common import point_cache_ui
|
||||
from properties_physics_common import effector_weights_ui
|
||||
|
||||
|
||||
def softbody_panel_enabled(md):
|
||||
return md.point_cache.baked==False
|
||||
return md.point_cache.baked == False
|
||||
|
||||
|
||||
class PhysicButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
@@ -22,6 +25,7 @@ class PhysicButtonsPanel(bpy.types.Panel):
|
||||
rd = context.scene.render_data
|
||||
return (ob and ob.type == 'MESH') and (not rd.use_game_engine)
|
||||
|
||||
|
||||
class PHYSICS_PT_softbody(PhysicButtonsPanel):
|
||||
bl_label = "Soft Body"
|
||||
|
||||
@@ -63,6 +67,7 @@ class PHYSICS_PT_softbody(PhysicButtonsPanel):
|
||||
col.itemL(text="Simulation:")
|
||||
col.itemR(softbody, "speed")
|
||||
|
||||
|
||||
class PHYSICS_PT_softbody_cache(PhysicButtonsPanel):
|
||||
bl_label = "Soft Body Cache"
|
||||
bl_default_closed = True
|
||||
@@ -74,6 +79,7 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel):
|
||||
md = context.soft_body
|
||||
point_cache_ui(self, md.point_cache, softbody_panel_enabled(md), 0, 0)
|
||||
|
||||
|
||||
class PHYSICS_PT_softbody_goal(PhysicButtonsPanel):
|
||||
bl_label = "Soft Body Goal"
|
||||
bl_default_closed = True
|
||||
@@ -115,6 +121,7 @@ class PHYSICS_PT_softbody_goal(PhysicButtonsPanel):
|
||||
|
||||
layout.item_pointerR(softbody, "goal_vertex_group", ob, "vertex_groups", text="Vertex Group")
|
||||
|
||||
|
||||
class PHYSICS_PT_softbody_edge(PhysicButtonsPanel):
|
||||
bl_label = "Soft Body Edges"
|
||||
bl_default_closed = True
|
||||
@@ -163,6 +170,7 @@ class PHYSICS_PT_softbody_edge(PhysicButtonsPanel):
|
||||
col.itemR(softbody, "edge_collision", text="Edge")
|
||||
col.itemR(softbody, "face_collision", text="Face")
|
||||
|
||||
|
||||
class PHYSICS_PT_softbody_collision(PhysicButtonsPanel):
|
||||
bl_label = "Soft Body Collision"
|
||||
bl_default_closed = True
|
||||
@@ -194,6 +202,7 @@ class PHYSICS_PT_softbody_collision(PhysicButtonsPanel):
|
||||
col.itemR(softbody, "ball_stiff", text="Stiffness")
|
||||
col.itemR(softbody, "ball_damp", text="Dampening")
|
||||
|
||||
|
||||
class PHYSICS_PT_softbody_solver(PhysicButtonsPanel):
|
||||
bl_label = "Soft Body Solver"
|
||||
bl_default_closed = True
|
||||
@@ -228,6 +237,7 @@ class PHYSICS_PT_softbody_solver(PhysicButtonsPanel):
|
||||
layout.itemL(text="Diagnostics:")
|
||||
layout.itemR(softbody, "diagnose")
|
||||
|
||||
|
||||
class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel):
|
||||
bl_label = "Soft Body Field Weights"
|
||||
bl_default_closed = True
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class RenderButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,7 +15,8 @@ class RenderButtonsPanel(bpy.types.Panel):
|
||||
|
||||
def poll(self, context):
|
||||
rd = context.scene.render_data
|
||||
return (context.scene and rd.use_game_engine==False) and (rd.engine in self.COMPAT_ENGINES)
|
||||
return (context.scene and rd.use_game_engine == False) and (rd.engine in self.COMPAT_ENGINES)
|
||||
|
||||
|
||||
class RENDER_PT_render(RenderButtonsPanel):
|
||||
bl_label = "Render"
|
||||
@@ -31,6 +33,7 @@ class RENDER_PT_render(RenderButtonsPanel):
|
||||
|
||||
layout.itemR(rd, "display_mode", text="Display")
|
||||
|
||||
|
||||
class RENDER_PT_layers(RenderButtonsPanel):
|
||||
bl_label = "Layers"
|
||||
bl_default_closed = True
|
||||
@@ -125,6 +128,7 @@ class RENDER_PT_layers(RenderButtonsPanel):
|
||||
row.itemR(rl, "pass_refraction")
|
||||
row.itemR(rl, "pass_refraction_exclude", text="", icon='ICON_X')
|
||||
|
||||
|
||||
class RENDER_PT_shading(RenderButtonsPanel):
|
||||
bl_label = "Shading"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -147,6 +151,7 @@ class RENDER_PT_shading(RenderButtonsPanel):
|
||||
col.itemR(rd, "color_management")
|
||||
col.itemR(rd, "alpha_mode", text="Alpha")
|
||||
|
||||
|
||||
class RENDER_PT_performance(RenderButtonsPanel):
|
||||
bl_label = "Performance"
|
||||
bl_default_closed = True
|
||||
@@ -187,6 +192,7 @@ class RENDER_PT_performance(RenderButtonsPanel):
|
||||
sub.itemR(rd, "use_instances", text="Instances")
|
||||
sub.itemR(rd, "use_local_coords", text="Local Coordinates")
|
||||
|
||||
|
||||
class RENDER_PT_post_processing(RenderButtonsPanel):
|
||||
bl_label = "Post Processing"
|
||||
bl_default_closed = True
|
||||
@@ -224,6 +230,7 @@ class RENDER_PT_post_processing(RenderButtonsPanel):
|
||||
sub.itemR(rd, "edge_threshold", text="Threshold", slider=True)
|
||||
sub.itemR(rd, "edge_color", text="")
|
||||
|
||||
|
||||
class RENDER_PT_output(RenderButtonsPanel):
|
||||
bl_label = "Output"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -288,6 +295,7 @@ class RENDER_PT_output(RenderButtonsPanel):
|
||||
split = layout.split()
|
||||
split.itemR(rd, "tiff_bit")
|
||||
|
||||
|
||||
class RENDER_PT_encoding(RenderButtonsPanel):
|
||||
bl_label = "Encoding"
|
||||
bl_default_closed = True
|
||||
@@ -340,6 +348,7 @@ class RENDER_PT_encoding(RenderButtonsPanel):
|
||||
col.itemR(rd, "ffmpeg_multiplex_audio")
|
||||
col.itemR(rd, "ffmpeg_audio_volume")
|
||||
|
||||
|
||||
class RENDER_PT_antialiasing(RenderButtonsPanel):
|
||||
bl_label = "Anti-Aliasing"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -366,6 +375,7 @@ class RENDER_PT_antialiasing(RenderButtonsPanel):
|
||||
col.itemR(rd, "pixel_filter", text="")
|
||||
col.itemR(rd, "filter_size", text="Size", slider=True)
|
||||
|
||||
|
||||
class RENDER_PT_dimensions(RenderButtonsPanel):
|
||||
bl_label = "Dimensions"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -403,7 +413,8 @@ class RENDER_PT_dimensions(RenderButtonsPanel):
|
||||
|
||||
col.itemL(text="Frame Rate:")
|
||||
col.itemR(rd, "fps")
|
||||
col.itemR(rd, "fps_base",text="/")
|
||||
col.itemR(rd, "fps_base", text="/")
|
||||
|
||||
|
||||
class RENDER_PT_stamp(RenderButtonsPanel):
|
||||
bl_label = "Stamp"
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class SceneButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -14,6 +15,7 @@ class SceneButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return context.scene
|
||||
|
||||
|
||||
class SCENE_PT_scene(SceneButtonsPanel):
|
||||
bl_label = "Scene"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -26,6 +28,7 @@ class SCENE_PT_scene(SceneButtonsPanel):
|
||||
layout.itemR(scene, "camera")
|
||||
layout.itemR(scene, "set", text="Background")
|
||||
|
||||
|
||||
class SCENE_PT_unit(SceneButtonsPanel):
|
||||
bl_label = "Units"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -43,6 +46,7 @@ class SCENE_PT_unit(SceneButtonsPanel):
|
||||
row.itemR(unit, "scale_length", text="Scale")
|
||||
row.itemR(unit, "use_separate")
|
||||
|
||||
|
||||
class SCENE_PT_keying_sets(SceneButtonsPanel):
|
||||
bl_label = "Keying Sets"
|
||||
|
||||
@@ -73,6 +77,7 @@ class SCENE_PT_keying_sets(SceneButtonsPanel):
|
||||
col.itemR(ks, "insertkey_needed", text="Needed")
|
||||
col.itemR(ks, "insertkey_visual", text="Visual")
|
||||
|
||||
|
||||
class SCENE_PT_keying_set_paths(SceneButtonsPanel):
|
||||
bl_label = "Active Keying Set"
|
||||
|
||||
@@ -119,6 +124,7 @@ class SCENE_PT_keying_set_paths(SceneButtonsPanel):
|
||||
if ksp.grouping == 'NAMED':
|
||||
col.itemR(ksp, "group")
|
||||
|
||||
|
||||
class SCENE_PT_physics(SceneButtonsPanel):
|
||||
bl_label = "Gravity"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
def active_node_mat(mat):
|
||||
if mat:
|
||||
mat_node = mat.active_node_material
|
||||
@@ -15,20 +17,25 @@ def active_node_mat(mat):
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def context_tex_datablock(context):
|
||||
|
||||
idblock = active_node_mat(context.material)
|
||||
if idblock: return idblock
|
||||
if idblock:
|
||||
return idblock
|
||||
|
||||
idblock = context.lamp
|
||||
if idblock: return idblock
|
||||
idblock = context.lamp
|
||||
if idblock:
|
||||
return idblock
|
||||
|
||||
idblock = context.world
|
||||
if idblock: return idblock
|
||||
idblock = context.world
|
||||
if idblock:
|
||||
return idblock
|
||||
|
||||
idblock = context.brush
|
||||
idblock = context.brush
|
||||
return idblock
|
||||
|
||||
|
||||
class TextureButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -38,6 +45,7 @@ class TextureButtonsPanel(bpy.types.Panel):
|
||||
tex = context.texture
|
||||
return (tex and (tex.type != 'NONE' or tex.use_nodes))
|
||||
|
||||
|
||||
class TEXTURE_PT_preview(TextureButtonsPanel):
|
||||
bl_label = "Preview"
|
||||
|
||||
@@ -54,6 +62,7 @@ class TEXTURE_PT_preview(TextureButtonsPanel):
|
||||
else:
|
||||
layout.template_preview(tex, slot=slot)
|
||||
|
||||
|
||||
class TEXTURE_PT_context_texture(TextureButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -91,8 +100,8 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel):
|
||||
context.sculpt_object or
|
||||
context.vertex_paint_object or
|
||||
context.weight_paint_object or
|
||||
context.texture_paint_object
|
||||
):
|
||||
context.texture_paint_object):
|
||||
|
||||
split.itemR(space, "brush_texture", text="Brush", toggle=True)
|
||||
|
||||
if tex:
|
||||
@@ -111,6 +120,7 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel):
|
||||
split.itemL(text="Type:")
|
||||
split.itemR(tex, "type", text="")
|
||||
|
||||
|
||||
class TEXTURE_PT_colors(TextureButtonsPanel):
|
||||
bl_label = "Colors"
|
||||
bl_default_closed = True
|
||||
@@ -140,12 +150,13 @@ class TEXTURE_PT_colors(TextureButtonsPanel):
|
||||
|
||||
# Texture Slot Panels #
|
||||
|
||||
|
||||
class TextureSlotPanel(TextureButtonsPanel):
|
||||
|
||||
def poll(self, context):
|
||||
return (
|
||||
context.texture_slot and
|
||||
TextureButtonsPanel.poll(self, context)
|
||||
)
|
||||
return (context.texture_slot and
|
||||
TextureButtonsPanel.poll(self, context))
|
||||
|
||||
|
||||
class TEXTURE_PT_mapping(TextureSlotPanel):
|
||||
bl_label = "Mapping"
|
||||
@@ -177,8 +188,11 @@ class TEXTURE_PT_mapping(TextureSlotPanel):
|
||||
split = layout.split(percentage=0.3)
|
||||
split.itemL(text="Layer:")
|
||||
ob = context.object
|
||||
if ob and ob.type == 'MESH': split.item_pointerR(tex, "uv_layer", ob.data, "uv_textures", text="")
|
||||
else: split.itemR(tex, "uv_layer", text="")
|
||||
if ob and ob.type == 'MESH':
|
||||
split.item_pointerR(tex, "uv_layer", ob.data, "uv_textures", text="")
|
||||
else:
|
||||
split.itemR(tex, "uv_layer", text="")
|
||||
|
||||
elif tex.texture_coordinates == 'OBJECT':
|
||||
split = layout.split(percentage=0.3)
|
||||
split.itemL(text="Object:")
|
||||
@@ -224,10 +238,10 @@ class TEXTURE_PT_mapping(TextureSlotPanel):
|
||||
|
||||
class TEXTURE_PT_influence(TextureSlotPanel):
|
||||
bl_label = "Influence"
|
||||
|
||||
def poll(self, context):
|
||||
return context.texture_slot
|
||||
|
||||
|
||||
def draw(self, context):
|
||||
|
||||
layout = self.layout
|
||||
@@ -326,11 +340,14 @@ class TEXTURE_PT_influence(TextureSlotPanel):
|
||||
|
||||
# Texture Type Panels #
|
||||
|
||||
|
||||
class TextureTypePanel(TextureButtonsPanel):
|
||||
|
||||
def poll(self, context):
|
||||
tex = context.texture
|
||||
return (tex and tex.type == self.tex_type and not tex.use_nodes)
|
||||
|
||||
|
||||
class TEXTURE_PT_clouds(TextureTypePanel):
|
||||
bl_label = "Clouds"
|
||||
tex_type = 'CLOUDS'
|
||||
@@ -350,6 +367,7 @@ class TEXTURE_PT_clouds(TextureTypePanel):
|
||||
flow.itemR(tex, "noise_depth", text="Depth")
|
||||
flow.itemR(tex, "nabla", text="Nabla")
|
||||
|
||||
|
||||
class TEXTURE_PT_wood(TextureTypePanel):
|
||||
bl_label = "Wood"
|
||||
tex_type = 'WOOD'
|
||||
@@ -374,6 +392,7 @@ class TEXTURE_PT_wood(TextureTypePanel):
|
||||
flow.itemR(tex, "turbulence")
|
||||
flow.itemR(tex, "nabla")
|
||||
|
||||
|
||||
class TEXTURE_PT_marble(TextureTypePanel):
|
||||
bl_label = "Marble"
|
||||
tex_type = 'MARBLE'
|
||||
@@ -395,6 +414,7 @@ class TEXTURE_PT_marble(TextureTypePanel):
|
||||
flow.itemR(tex, "turbulence")
|
||||
flow.itemR(tex, "nabla")
|
||||
|
||||
|
||||
class TEXTURE_PT_magic(TextureTypePanel):
|
||||
bl_label = "Magic"
|
||||
tex_type = 'MAGIC'
|
||||
@@ -408,6 +428,7 @@ class TEXTURE_PT_magic(TextureTypePanel):
|
||||
row.itemR(tex, "noise_depth", text="Depth")
|
||||
row.itemR(tex, "turbulence")
|
||||
|
||||
|
||||
class TEXTURE_PT_blend(TextureTypePanel):
|
||||
bl_label = "Blend"
|
||||
tex_type = 'BLEND'
|
||||
@@ -423,6 +444,7 @@ class TEXTURE_PT_blend(TextureTypePanel):
|
||||
sub.active = (tex.progression in ('LINEAR', 'QUADRATIC', 'EASING', 'RADIAL'))
|
||||
sub.itemR(tex, "flip_axis", expand=True)
|
||||
|
||||
|
||||
class TEXTURE_PT_stucci(TextureTypePanel):
|
||||
bl_label = "Stucci"
|
||||
tex_type = 'STUCCI'
|
||||
@@ -441,6 +463,7 @@ class TEXTURE_PT_stucci(TextureTypePanel):
|
||||
row.itemR(tex, "noise_size", text="Size")
|
||||
row.itemR(tex, "turbulence")
|
||||
|
||||
|
||||
class TEXTURE_PT_image(TextureTypePanel):
|
||||
bl_label = "Image"
|
||||
tex_type = 'IMAGE'
|
||||
@@ -452,6 +475,7 @@ class TEXTURE_PT_image(TextureTypePanel):
|
||||
|
||||
layout.template_image(tex, "image", tex.image_user)
|
||||
|
||||
|
||||
class TEXTURE_PT_image_sampling(TextureTypePanel):
|
||||
bl_label = "Image Sampling"
|
||||
bl_default_closed = True
|
||||
@@ -495,6 +519,7 @@ class TEXTURE_PT_image_sampling(TextureTypePanel):
|
||||
else:
|
||||
col.itemR(tex, "filter_eccentricity", text="Eccentricity")
|
||||
|
||||
|
||||
class TEXTURE_PT_image_mapping(TextureTypePanel):
|
||||
bl_label = "Image Mapping"
|
||||
bl_default_closed = True
|
||||
@@ -543,6 +568,7 @@ class TEXTURE_PT_image_mapping(TextureTypePanel):
|
||||
col.itemR(tex, "crop_max_x", text="X")
|
||||
col.itemR(tex, "crop_max_y", text="Y")
|
||||
|
||||
|
||||
class TEXTURE_PT_plugin(TextureTypePanel):
|
||||
bl_label = "Plugin"
|
||||
tex_type = 'PLUGIN'
|
||||
@@ -554,6 +580,7 @@ class TEXTURE_PT_plugin(TextureTypePanel):
|
||||
|
||||
layout.itemL(text="Nothing yet")
|
||||
|
||||
|
||||
class TEXTURE_PT_envmap(TextureTypePanel):
|
||||
bl_label = "Environment Map"
|
||||
tex_type = 'ENVIRONMENT_MAP'
|
||||
@@ -565,6 +592,7 @@ class TEXTURE_PT_envmap(TextureTypePanel):
|
||||
|
||||
layout.itemL(text="Nothing yet")
|
||||
|
||||
|
||||
class TEXTURE_PT_musgrave(TextureTypePanel):
|
||||
bl_label = "Musgrave"
|
||||
tex_type = 'MUSGRAVE'
|
||||
@@ -598,6 +626,7 @@ class TEXTURE_PT_musgrave(TextureTypePanel):
|
||||
row.itemR(tex, "noise_size", text="Size")
|
||||
row.itemR(tex, "nabla")
|
||||
|
||||
|
||||
class TEXTURE_PT_voronoi(TextureTypePanel):
|
||||
bl_label = "Voronoi"
|
||||
tex_type = 'VORONOI'
|
||||
@@ -632,6 +661,7 @@ class TEXTURE_PT_voronoi(TextureTypePanel):
|
||||
row.itemR(tex, "noise_size", text="Size")
|
||||
row.itemR(tex, "nabla")
|
||||
|
||||
|
||||
class TEXTURE_PT_distortednoise(TextureTypePanel):
|
||||
bl_label = "Distorted Noise"
|
||||
tex_type = 'DISTORTED_NOISE'
|
||||
@@ -649,6 +679,7 @@ class TEXTURE_PT_distortednoise(TextureTypePanel):
|
||||
flow.itemR(tex, "noise_size", text="Size")
|
||||
flow.itemR(tex, "nabla")
|
||||
|
||||
|
||||
class TEXTURE_PT_voxeldata(TextureButtonsPanel):
|
||||
bl_label = "Voxel Data"
|
||||
|
||||
@@ -679,6 +710,7 @@ class TEXTURE_PT_voxeldata(TextureButtonsPanel):
|
||||
layout.itemR(vd, "extension")
|
||||
layout.itemR(vd, "intensity")
|
||||
|
||||
|
||||
class TEXTURE_PT_pointdensity(TextureButtonsPanel):
|
||||
bl_label = "Point Density"
|
||||
|
||||
@@ -731,6 +763,7 @@ class TEXTURE_PT_pointdensity(TextureButtonsPanel):
|
||||
if pd.falloff == 'SOFT':
|
||||
col.itemR(pd, "falloff_softness")
|
||||
|
||||
|
||||
class TEXTURE_PT_pointdensity_turbulence(TextureButtonsPanel):
|
||||
bl_label = "Turbulence"
|
||||
|
||||
@@ -791,4 +824,3 @@ bpy.types.register(TEXTURE_PT_pointdensity_turbulence)
|
||||
bpy.types.register(TEXTURE_PT_colors)
|
||||
bpy.types.register(TEXTURE_PT_mapping)
|
||||
bpy.types.register(TEXTURE_PT_influence)
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class WorldButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@@ -16,6 +17,7 @@ class WorldButtonsPanel(bpy.types.Panel):
|
||||
rd = context.scene.render_data
|
||||
return (context.world) and (not rd.use_game_engine) and (rd.engine in self.COMPAT_ENGINES)
|
||||
|
||||
|
||||
class WORLD_PT_preview(WorldButtonsPanel):
|
||||
bl_label = "Preview"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -23,6 +25,7 @@ class WORLD_PT_preview(WorldButtonsPanel):
|
||||
def draw(self, context):
|
||||
self.layout.template_preview(context.world)
|
||||
|
||||
|
||||
class WORLD_PT_context_world(WorldButtonsPanel):
|
||||
bl_label = ""
|
||||
bl_show_header = False
|
||||
@@ -46,6 +49,7 @@ class WORLD_PT_context_world(WorldButtonsPanel):
|
||||
elif world:
|
||||
split.template_ID(space, "pin_id")
|
||||
|
||||
|
||||
class WORLD_PT_world(WorldButtonsPanel):
|
||||
bl_label = "World"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -67,6 +71,7 @@ class WORLD_PT_world(WorldButtonsPanel):
|
||||
col.active = world.blend_sky
|
||||
row.column().itemR(world, "ambient_color")
|
||||
|
||||
|
||||
class WORLD_PT_mist(WorldButtonsPanel):
|
||||
bl_label = "Mist"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -91,6 +96,7 @@ class WORLD_PT_mist(WorldButtonsPanel):
|
||||
|
||||
layout.itemR(world.mist, "falloff")
|
||||
|
||||
|
||||
class WORLD_PT_stars(WorldButtonsPanel):
|
||||
bl_label = "Stars"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
@@ -113,6 +119,7 @@ class WORLD_PT_stars(WorldButtonsPanel):
|
||||
flow.itemR(world.stars, "min_distance", text="Min. Dist")
|
||||
flow.itemR(world.stars, "average_separation", text="Separation")
|
||||
|
||||
|
||||
class WORLD_PT_ambient_occlusion(WorldButtonsPanel):
|
||||
bl_label = "Ambient Occlusion"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class Buttons_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
|
||||
@@ -15,7 +16,7 @@ class Buttons_HT_header(bpy.types.Header):
|
||||
so = context.space_data
|
||||
scene = context.scene
|
||||
|
||||
row= layout.row(align=True)
|
||||
row = layout.row(align=True)
|
||||
row.template_header()
|
||||
|
||||
if context.area.show_menus:
|
||||
@@ -26,6 +27,7 @@ class Buttons_HT_header(bpy.types.Header):
|
||||
row.itemR(so, "buttons_context", expand=True, text="")
|
||||
row.itemR(scene, "current_frame")
|
||||
|
||||
|
||||
class Buttons_MT_view(bpy.types.Menu):
|
||||
bl_label = "View"
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
# <pep8 compliant>
|
||||
import sys
|
||||
import bpy
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class FILEBROWSER_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'FILE_BROWSER'
|
||||
|
||||
@@ -41,13 +42,13 @@ class FILEBROWSER_HT_header(bpy.types.Header):
|
||||
row = layout.row(align=True)
|
||||
row.active = params.do_filter
|
||||
|
||||
row.itemR(params, "filter_folder", text="");
|
||||
row.itemR(params, "filter_blender", text="");
|
||||
row.itemR(params, "filter_image", text="");
|
||||
row.itemR(params, "filter_movie", text="");
|
||||
row.itemR(params, "filter_script", text="");
|
||||
row.itemR(params, "filter_font", text="");
|
||||
row.itemR(params, "filter_sound", text="");
|
||||
row.itemR(params, "filter_text", text="");
|
||||
row.itemR(params, "filter_folder", text="")
|
||||
row.itemR(params, "filter_blender", text="")
|
||||
row.itemR(params, "filter_image", text="")
|
||||
row.itemR(params, "filter_movie", text="")
|
||||
row.itemR(params, "filter_script", text="")
|
||||
row.itemR(params, "filter_font", text="")
|
||||
row.itemR(params, "filter_sound", text="")
|
||||
row.itemR(params, "filter_text", text="")
|
||||
|
||||
bpy.types.register(FILEBROWSER_HT_header)
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class IMAGE_MT_view(bpy.types.Menu):
|
||||
bl_label = "View"
|
||||
|
||||
@@ -33,11 +34,11 @@ class IMAGE_MT_view(bpy.types.Menu):
|
||||
|
||||
layout.itemS()
|
||||
|
||||
ratios = [[1, 8], [1, 4], [1, 2], [1, 1], [2, 1], [4, 1], [8, 1]];
|
||||
ratios = [[1, 8], [1, 4], [1, 2], [1, 1], [2, 1], [4, 1], [8, 1]]
|
||||
|
||||
for a, b in ratios:
|
||||
text = "Zoom %d:%d" % (a, b)
|
||||
layout.item_floatO("image.view_zoom_ratio", "ratio", a/b, text=text)
|
||||
layout.item_floatO("image.view_zoom_ratio", "ratio", a / b, text=text)
|
||||
|
||||
layout.itemS()
|
||||
|
||||
@@ -47,6 +48,7 @@ class IMAGE_MT_view(bpy.types.Menu):
|
||||
layout.itemO("image.view_all")
|
||||
layout.itemO("screen.screen_full_area")
|
||||
|
||||
|
||||
class IMAGE_MT_select(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -67,6 +69,7 @@ class IMAGE_MT_select(bpy.types.Menu):
|
||||
layout.itemO("uv.select_pinned")
|
||||
layout.itemO("uv.select_linked")
|
||||
|
||||
|
||||
class IMAGE_MT_image(bpy.types.Menu):
|
||||
bl_label = "Image"
|
||||
|
||||
@@ -110,6 +113,7 @@ class IMAGE_MT_image(bpy.types.Menu):
|
||||
|
||||
layout.itemR(sima, "image_painting")
|
||||
|
||||
|
||||
class IMAGE_MT_uvs_showhide(bpy.types.Menu):
|
||||
bl_label = "Show/Hide Faces"
|
||||
|
||||
@@ -120,6 +124,7 @@ class IMAGE_MT_uvs_showhide(bpy.types.Menu):
|
||||
layout.itemO("uv.hide")
|
||||
layout.item_booleanO("uv.hide", "unselected", True)
|
||||
|
||||
|
||||
class IMAGE_MT_uvs_transform(bpy.types.Menu):
|
||||
bl_label = "Transform"
|
||||
|
||||
@@ -130,6 +135,7 @@ class IMAGE_MT_uvs_transform(bpy.types.Menu):
|
||||
layout.itemO("tfm.rotate")
|
||||
layout.itemO("tfm.resize")
|
||||
|
||||
|
||||
class IMAGE_MT_uvs_mirror(bpy.types.Menu):
|
||||
bl_label = "Mirror"
|
||||
|
||||
@@ -137,11 +143,12 @@ class IMAGE_MT_uvs_mirror(bpy.types.Menu):
|
||||
layout = self.layout
|
||||
layout.operator_context = "EXEC_REGION_WIN"
|
||||
|
||||
props= layout.itemO("tfm.mirror", text="X Axis", properties=True)
|
||||
props.constraint_axis[0]= True
|
||||
props = layout.itemO("tfm.mirror", text="X Axis", properties=True)
|
||||
props.constraint_axis[0] = True
|
||||
|
||||
props = layout.itemO("tfm.mirror", text="Y Axis", properties=True)
|
||||
props.constraint_axis[1] = True
|
||||
|
||||
props= layout.itemO("tfm.mirror", text="Y Axis", properties=True)
|
||||
props.constraint_axis[1]= True
|
||||
|
||||
class IMAGE_MT_uvs_weldalign(bpy.types.Menu):
|
||||
bl_label = "Weld/Align"
|
||||
@@ -152,6 +159,7 @@ class IMAGE_MT_uvs_weldalign(bpy.types.Menu):
|
||||
layout.itemO("uv.weld") # W, 1
|
||||
layout.items_enumO("uv.align", "axis") # W, 2/3/4
|
||||
|
||||
|
||||
class IMAGE_MT_uvs(bpy.types.Menu):
|
||||
bl_label = "UVs"
|
||||
|
||||
@@ -194,6 +202,7 @@ class IMAGE_MT_uvs(bpy.types.Menu):
|
||||
|
||||
layout.itemM("IMAGE_MT_uvs_showhide")
|
||||
|
||||
|
||||
class IMAGE_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'IMAGE_EDITOR'
|
||||
|
||||
@@ -274,6 +283,7 @@ class IMAGE_HT_header(bpy.types.Header):
|
||||
if show_uvedit or sima.image_painting:
|
||||
layout.itemR(sima, "update_automatically", text="")
|
||||
|
||||
|
||||
class IMAGE_PT_image_properties(bpy.types.Panel):
|
||||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -292,6 +302,7 @@ class IMAGE_PT_image_properties(bpy.types.Panel):
|
||||
|
||||
layout.template_image(sima, "image", iuser, compact=True)
|
||||
|
||||
|
||||
class IMAGE_PT_game_properties(bpy.types.Panel):
|
||||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -335,7 +346,6 @@ class IMAGE_PT_game_properties(bpy.types.Panel):
|
||||
col.itemR(ima, "mapping", expand=True)
|
||||
|
||||
|
||||
|
||||
class IMAGE_PT_view_properties(bpy.types.Panel):
|
||||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -389,6 +399,7 @@ class IMAGE_PT_view_properties(bpy.types.Panel):
|
||||
#col.itemR(uvedit, "draw_edges")
|
||||
#col.itemR(uvedit, "draw_faces")
|
||||
|
||||
|
||||
class IMAGE_PT_paint(bpy.types.Panel):
|
||||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -434,6 +445,7 @@ class IMAGE_PT_paint(bpy.types.Panel):
|
||||
|
||||
col.itemR(brush, "blend", text="Blend")
|
||||
|
||||
|
||||
class IMAGE_PT_paint_stroke(bpy.types.Panel):
|
||||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -462,6 +474,7 @@ class IMAGE_PT_paint_stroke(bpy.types.Panel):
|
||||
row.itemR(brush, "spacing", text="Distance", slider=True)
|
||||
row.itemR(brush, "use_spacing_pressure", toggle=True, text="")
|
||||
|
||||
|
||||
class IMAGE_PT_paint_curve(bpy.types.Panel):
|
||||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -497,4 +510,3 @@ bpy.types.register(IMAGE_PT_paint_stroke)
|
||||
bpy.types.register(IMAGE_PT_paint_curve)
|
||||
bpy.types.register(IMAGE_PT_game_properties)
|
||||
bpy.types.register(IMAGE_PT_view_properties)
|
||||
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
import dynamic_menu
|
||||
# reload(dynamic_menu)
|
||||
|
||||
|
||||
class INFO_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'INFO'
|
||||
|
||||
@@ -47,6 +48,7 @@ class INFO_HT_header(bpy.types.Header):
|
||||
|
||||
layout.itemO("wm.window_fullscreen_toggle", icon='ICON_ARROW_LEFTRIGHT', text="")
|
||||
|
||||
|
||||
class INFO_MT_file(bpy.types.Menu):
|
||||
bl_label = "File"
|
||||
|
||||
@@ -100,6 +102,7 @@ class INFO_MT_file_more(INFO_MT_file):
|
||||
dynamic_menu.setup(INFO_MT_file_more)
|
||||
'''
|
||||
|
||||
|
||||
class INFO_MT_file_import(dynamic_menu.DynMenu):
|
||||
bl_idname = "INFO_MT_file_import"
|
||||
bl_label = "Import"
|
||||
@@ -107,6 +110,7 @@ class INFO_MT_file_import(dynamic_menu.DynMenu):
|
||||
def draw(self, context):
|
||||
self.layout.itemO("WM_OT_collada_import", text="COLLADA (.dae)...")
|
||||
|
||||
|
||||
class INFO_MT_file_export(dynamic_menu.DynMenu):
|
||||
bl_idname = "INFO_MT_file_export"
|
||||
bl_label = "Export"
|
||||
@@ -114,6 +118,7 @@ class INFO_MT_file_export(dynamic_menu.DynMenu):
|
||||
def draw(self, context):
|
||||
self.layout.itemO("WM_OT_collada_export", text="COLLADA (.dae)...")
|
||||
|
||||
|
||||
class INFO_MT_file_external_data(bpy.types.Menu):
|
||||
bl_label = "External Data"
|
||||
|
||||
@@ -130,9 +135,11 @@ class INFO_MT_file_external_data(bpy.types.Menu):
|
||||
layout.itemO("file.report_missing_files")
|
||||
layout.itemO("file.find_missing_files")
|
||||
|
||||
|
||||
class INFO_MT_mesh_add(dynamic_menu.DynMenu):
|
||||
bl_idname = "INFO_MT_mesh_add"
|
||||
bl_label = "Mesh"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
layout.operator_context = 'INVOKE_REGION_WIN'
|
||||
@@ -147,6 +154,7 @@ class INFO_MT_mesh_add(dynamic_menu.DynMenu):
|
||||
layout.itemO("mesh.primitive_grid_add", icon='ICON_MESH_GRID', text="Grid")
|
||||
layout.itemO("mesh.primitive_monkey_add", icon='ICON_MESH_MONKEY', text="Monkey")
|
||||
|
||||
|
||||
class INFO_MT_add(bpy.types.Menu):
|
||||
bl_label = "Add"
|
||||
|
||||
@@ -182,6 +190,7 @@ class INFO_MT_add(bpy.types.Menu):
|
||||
|
||||
layout.item_menu_enumO("object.group_instance_add", "type", text="Group Instance", icon='ICON_OUTLINER_OB_EMPTY')
|
||||
|
||||
|
||||
class INFO_MT_game(bpy.types.Menu):
|
||||
bl_label = "Game"
|
||||
|
||||
@@ -199,6 +208,7 @@ class INFO_MT_game(bpy.types.Menu):
|
||||
layout.itemR(gs, "show_physics_visualization")
|
||||
layout.itemR(gs, "deprecation_warnings")
|
||||
|
||||
|
||||
class INFO_MT_render(bpy.types.Menu):
|
||||
bl_label = "Render"
|
||||
|
||||
@@ -219,6 +229,7 @@ class INFO_MT_render(bpy.types.Menu):
|
||||
|
||||
layout.itemO("screen.render_view_show")
|
||||
|
||||
|
||||
class INFO_MT_help(bpy.types.Menu):
|
||||
bl_label = "Help"
|
||||
|
||||
@@ -252,57 +263,68 @@ bpy.types.register(INFO_MT_help)
|
||||
|
||||
# Help operators
|
||||
|
||||
|
||||
class HelpOperator(bpy.types.Operator):
|
||||
|
||||
def execute(self, context):
|
||||
import webbrowser
|
||||
webbrowser.open(self._url)
|
||||
return ('FINISHED',)
|
||||
|
||||
|
||||
class HELP_OT_manual(HelpOperator):
|
||||
'''The Blender Wiki manual'''
|
||||
bl_idname = "help.manual"
|
||||
bl_label = "Manual"
|
||||
_url = 'http://wiki.blender.org/index.php/Manual'
|
||||
|
||||
|
||||
class HELP_OT_release_logs(HelpOperator):
|
||||
'''Information about the changes in this version of Blender'''
|
||||
bl_idname = "help.release_logs"
|
||||
bl_label = "Release Logs"
|
||||
_url = 'http://www.blender.org/development/release-logs/'
|
||||
|
||||
|
||||
class HELP_OT_blender_website(HelpOperator):
|
||||
'''The official Blender website'''
|
||||
bl_idname = "help.blender_website"
|
||||
bl_label = "Blender Website"
|
||||
_url = 'http://www.blender.org/'
|
||||
|
||||
|
||||
class HELP_OT_blender_eshop(HelpOperator):
|
||||
'''Buy official Blender resources and merchandise online'''
|
||||
bl_idname = "help.blender_eshop"
|
||||
bl_label = "Blender e-Shop"
|
||||
_url = 'http://www.blender3d.org/e-shop'
|
||||
|
||||
|
||||
class HELP_OT_developer_community(HelpOperator):
|
||||
'''Get involved with Blender development'''
|
||||
bl_idname = "help.developer_community"
|
||||
bl_label = "Developer Community"
|
||||
_url = 'http://www.blender.org/community/get-involved/'
|
||||
|
||||
|
||||
class HELP_OT_user_community(HelpOperator):
|
||||
'''Get involved with other Blender users'''
|
||||
bl_idname = "help.user_community"
|
||||
bl_label = "User Community"
|
||||
_url = 'http://www.blender.org/community/user-community/'
|
||||
|
||||
|
||||
class HELP_OT_report_bug(HelpOperator):
|
||||
'''Report a bug in the Blender bug tracker'''
|
||||
bl_idname = "help.report_bug"
|
||||
bl_label = "Report a Bug"
|
||||
_url = 'http://projects.blender.org/tracker/?atid=498&group_id=9&func=browse'
|
||||
|
||||
|
||||
class HELP_OT_operator_cheat_sheet(bpy.types.Operator):
|
||||
bl_idname = "help.operator_cheat_sheet"
|
||||
bl_label = "Operator Cheat Sheet (new textblock)"
|
||||
|
||||
def execute(self, context):
|
||||
op_strings = []
|
||||
tot = 0
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class LOGIC_PT_properties(bpy.types.Panel):
|
||||
bl_space_type = 'LOGIC_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class NODE_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'NODE_EDITOR'
|
||||
|
||||
@@ -52,6 +53,7 @@ class NODE_HT_header(bpy.types.Header):
|
||||
layout.itemR(id.render_data, "free_unused_nodes", text="Free Unused")
|
||||
layout.itemR(snode, "backdrop")
|
||||
|
||||
|
||||
class NODE_MT_view(bpy.types.Menu):
|
||||
bl_label = "View"
|
||||
|
||||
@@ -69,6 +71,7 @@ class NODE_MT_view(bpy.types.Menu):
|
||||
layout.itemO("node.view_all")
|
||||
layout.itemO("screen.screen_full_area")
|
||||
|
||||
|
||||
class NODE_MT_select(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -82,6 +85,7 @@ class NODE_MT_select(bpy.types.Menu):
|
||||
layout.itemO("node.select_linked_from")
|
||||
layout.itemO("node.select_linked_to")
|
||||
|
||||
|
||||
class NODE_MT_node(bpy.types.Menu):
|
||||
bl_label = "Node"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class OUTLINER_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'OUTLINER'
|
||||
|
||||
@@ -45,6 +46,7 @@ class OUTLINER_HT_header(bpy.types.Header):
|
||||
row = layout.row(align=False)
|
||||
row.itemL(text="No Keying Set active")
|
||||
|
||||
|
||||
class OUTLINER_MT_view(bpy.types.Menu):
|
||||
bl_label = "View"
|
||||
|
||||
@@ -62,6 +64,7 @@ class OUTLINER_MT_view(bpy.types.Menu):
|
||||
col.itemO("outliner.show_one_level")
|
||||
col.itemO("outliner.show_hierarchy")
|
||||
|
||||
|
||||
class OUTLINER_MT_edit_datablocks(bpy.types.Menu):
|
||||
bl_label = "Edit"
|
||||
|
||||
|
||||
@@ -3,14 +3,17 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
def act_strip(context):
|
||||
try: return context.scene.sequence_editor.active_strip
|
||||
except: return None
|
||||
|
||||
# Header
|
||||
def act_strip(context):
|
||||
try:
|
||||
return context.scene.sequence_editor.active_strip
|
||||
except:
|
||||
return None
|
||||
|
||||
|
||||
class SEQUENCER_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'SEQUENCE_EDITOR'
|
||||
|
||||
@@ -42,6 +45,7 @@ class SEQUENCER_HT_header(bpy.types.Header):
|
||||
else:
|
||||
layout.itemR(st, "display_channel", text="Channel")
|
||||
|
||||
|
||||
class SEQUENCER_MT_view(bpy.types.Menu):
|
||||
bl_label = "View"
|
||||
|
||||
@@ -109,6 +113,7 @@ class SEQUENCER_MT_view(bpy.types.Menu):
|
||||
|
||||
"""
|
||||
|
||||
|
||||
class SEQUENCER_MT_select(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -129,6 +134,7 @@ class SEQUENCER_MT_select(bpy.types.Menu):
|
||||
layout.itemO("sequencer.select_all_toggle")
|
||||
layout.itemO("sequencer.select_inverse")
|
||||
|
||||
|
||||
class SEQUENCER_MT_marker(bpy.types.Menu):
|
||||
bl_label = "Marker (TODO)"
|
||||
|
||||
@@ -147,6 +153,7 @@ class SEQUENCER_MT_marker(bpy.types.Menu):
|
||||
|
||||
#layout.itemO("sequencer.sound_strip_add", text="Transform Markers") # toggle, will be rna - (sseq->flag & SEQ_MARKER_TRANS)
|
||||
|
||||
|
||||
class SEQUENCER_MT_add(bpy.types.Menu):
|
||||
bl_label = "Add"
|
||||
|
||||
@@ -164,6 +171,7 @@ class SEQUENCER_MT_add(bpy.types.Menu):
|
||||
|
||||
layout.itemM("SEQUENCER_MT_add_effect")
|
||||
|
||||
|
||||
class SEQUENCER_MT_add_effect(bpy.types.Menu):
|
||||
bl_label = "Effect Strip..."
|
||||
|
||||
@@ -187,6 +195,7 @@ class SEQUENCER_MT_add_effect(bpy.types.Menu):
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'COLOR')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'SPEED')
|
||||
|
||||
|
||||
class SEQUENCER_MT_strip(bpy.types.Menu):
|
||||
bl_label = "Strip"
|
||||
|
||||
@@ -216,17 +225,17 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
|
||||
if strip:
|
||||
stype = strip.type
|
||||
|
||||
if stype=='EFFECT':
|
||||
if stype == 'EFFECT':
|
||||
layout.itemS()
|
||||
layout.itemO("sequencer.effect_change")
|
||||
layout.itemO("sequencer.effect_reassign_inputs")
|
||||
elif stype=='IMAGE':
|
||||
elif stype == 'IMAGE':
|
||||
layout.itemS()
|
||||
layout.itemO("sequencer.image_change")
|
||||
elif stype=='SCENE':
|
||||
elif stype == 'SCENE':
|
||||
layout.itemS()
|
||||
layout.itemO("sequencer.scene_change", text="Change Scene")
|
||||
elif stype=='MOVIE':
|
||||
elif stype == 'MOVIE':
|
||||
layout.itemS()
|
||||
layout.itemO("sequencer.movie_change")
|
||||
|
||||
@@ -255,7 +264,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
|
||||
layout.itemO("sequencer.swap_right")
|
||||
layout.itemO("sequencer.swap_left")
|
||||
|
||||
# Panels
|
||||
|
||||
class SequencerButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'SEQUENCE_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -263,6 +272,7 @@ class SequencerButtonsPanel(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return context.space_data.display_mode == 'SEQUENCER' and act_strip(context) != None
|
||||
|
||||
|
||||
class SequencerButtonsPanel_Output(bpy.types.Panel):
|
||||
bl_space_type = 'SEQUENCE_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -270,6 +280,7 @@ class SequencerButtonsPanel_Output(bpy.types.Panel):
|
||||
def poll(self, context):
|
||||
return context.space_data.display_mode != 'SEQUENCER'
|
||||
|
||||
|
||||
class SEQUENCER_PT_edit(SequencerButtonsPanel):
|
||||
bl_label = "Edit Strip"
|
||||
|
||||
@@ -321,6 +332,7 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel):
|
||||
col.itemR(strip, "start_still", text="Start")
|
||||
col.itemR(strip, "end_still", text="End")
|
||||
|
||||
|
||||
class SEQUENCER_PT_effect(SequencerButtonsPanel):
|
||||
bl_label = "Effect Strip"
|
||||
|
||||
@@ -408,6 +420,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
|
||||
col.itemR(strip, "rotation_start", text="Start")
|
||||
col.itemR(strip, "rotation_end", text="End")
|
||||
|
||||
|
||||
class SEQUENCER_PT_input(SequencerButtonsPanel):
|
||||
bl_label = "Strip Input"
|
||||
|
||||
@@ -463,6 +476,7 @@ class SEQUENCER_PT_input(SequencerButtonsPanel):
|
||||
col.itemR(strip, "animation_start_offset", text="Start")
|
||||
col.itemR(strip, "animation_end_offset", text="End")
|
||||
|
||||
|
||||
class SEQUENCER_PT_sound(SequencerButtonsPanel):
|
||||
bl_label = "Sound"
|
||||
|
||||
@@ -494,6 +508,7 @@ class SEQUENCER_PT_sound(SequencerButtonsPanel):
|
||||
|
||||
row.itemR(strip.sound, "caching")
|
||||
|
||||
|
||||
class SEQUENCER_PT_filter(SequencerButtonsPanel):
|
||||
bl_label = "Filter"
|
||||
|
||||
@@ -543,6 +558,7 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel):
|
||||
col.itemR(strip.color_balance, "gain")
|
||||
col.itemR(strip.color_balance, "inverse_gain", text="Inverse")
|
||||
|
||||
|
||||
class SEQUENCER_PT_proxy(SequencerButtonsPanel):
|
||||
bl_label = "Proxy"
|
||||
|
||||
@@ -572,6 +588,7 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel):
|
||||
flow.itemR(strip.proxy, "directory")
|
||||
flow.itemR(strip.proxy, "file")
|
||||
|
||||
|
||||
class SEQUENCER_PT_view(SequencerButtonsPanel_Output):
|
||||
bl_label = "View Settings"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class TEXT_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'TEXT_EDITOR'
|
||||
|
||||
@@ -43,7 +44,7 @@ class TEXT_HT_header(bpy.types.Header):
|
||||
if text.dirty:
|
||||
row.itemL(text="File: *%s (unsaved)" % text.filename)
|
||||
else:
|
||||
row.itemL(text="File: %s" % text.filename )
|
||||
row.itemL(text="File: %s" % text.filename)
|
||||
else:
|
||||
if text.library:
|
||||
row.itemL(text="Text: External")
|
||||
@@ -53,6 +54,7 @@ class TEXT_HT_header(bpy.types.Header):
|
||||
row = layout.row()
|
||||
row.itemO("text.run_script")
|
||||
|
||||
|
||||
class TEXT_PT_properties(bpy.types.Panel):
|
||||
bl_space_type = 'TEXT_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -73,6 +75,7 @@ class TEXT_PT_properties(bpy.types.Panel):
|
||||
flow.itemR(st, "font_size")
|
||||
flow.itemR(st, "tab_width")
|
||||
|
||||
|
||||
class TEXT_PT_find(bpy.types.Panel):
|
||||
bl_space_type = 'TEXT_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
@@ -105,6 +108,7 @@ class TEXT_PT_find(bpy.types.Panel):
|
||||
row.itemR(st, "find_wrap", text="Wrap")
|
||||
row.itemR(st, "find_all", text="All")
|
||||
|
||||
|
||||
class TEXT_MT_text(bpy.types.Menu):
|
||||
bl_label = "Text"
|
||||
|
||||
@@ -151,7 +155,6 @@ class TEXT_MT_text(bpy.types.Menu):
|
||||
layout.itemM("TEXT_MT_templates")
|
||||
|
||||
|
||||
|
||||
class TEXT_MT_templates(bpy.types.Menu):
|
||||
'''
|
||||
Creates the menu items by scanning scripts/templates
|
||||
@@ -178,7 +181,6 @@ class TEXT_MT_templates(bpy.types.Menu):
|
||||
layout.item_stringO("text.open", "path", path, text=path_to_name(f))
|
||||
|
||||
|
||||
|
||||
class TEXT_MT_edit_view(bpy.types.Menu):
|
||||
bl_label = "View"
|
||||
|
||||
@@ -188,6 +190,7 @@ class TEXT_MT_edit_view(bpy.types.Menu):
|
||||
layout.item_enumO("text.move", "type", 'FILE_TOP', text="Top of File")
|
||||
layout.item_enumO("text.move", "type", 'FILE_BOTTOM', text="Bottom of File")
|
||||
|
||||
|
||||
class TEXT_MT_edit_select(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -197,6 +200,7 @@ class TEXT_MT_edit_select(bpy.types.Menu):
|
||||
layout.itemO("text.select_all")
|
||||
layout.itemO("text.select_line")
|
||||
|
||||
|
||||
class TEXT_MT_edit_markers(bpy.types.Menu):
|
||||
bl_label = "Markers"
|
||||
|
||||
@@ -207,6 +211,7 @@ class TEXT_MT_edit_markers(bpy.types.Menu):
|
||||
layout.itemO("text.next_marker")
|
||||
layout.itemO("text.previous_marker")
|
||||
|
||||
|
||||
class TEXT_MT_format(bpy.types.Menu):
|
||||
bl_label = "Format"
|
||||
|
||||
@@ -225,14 +230,16 @@ class TEXT_MT_format(bpy.types.Menu):
|
||||
|
||||
layout.item_menu_enumO("text.convert_whitespace", "type")
|
||||
|
||||
|
||||
class TEXT_MT_edit_to3d(bpy.types.Menu):
|
||||
bl_label = "Text To 3D Object"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.item_booleanO("text.to_3d_object", "split_lines", False, text="One Object");
|
||||
layout.item_booleanO("text.to_3d_object", "split_lines", True, text="One Object Per Line");
|
||||
layout.item_booleanO("text.to_3d_object", "split_lines", False, text="One Object")
|
||||
layout.item_booleanO("text.to_3d_object", "split_lines", True, text="One Object Per Line")
|
||||
|
||||
|
||||
class TEXT_MT_edit(bpy.types.Menu):
|
||||
bl_label = "Edit"
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class TIME_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'TIMELINE'
|
||||
|
||||
@@ -68,6 +69,7 @@ class TIME_HT_header(bpy.types.Header):
|
||||
row.itemO("anim.insert_keyframe", text="", icon='ICON_KEY_HLT')
|
||||
row.itemO("anim.delete_keyframe", text="", icon='ICON_KEY_DEHLT')
|
||||
|
||||
|
||||
class TIME_MT_view(bpy.types.Menu):
|
||||
bl_label = "View"
|
||||
|
||||
@@ -82,6 +84,7 @@ class TIME_MT_view(bpy.types.Menu):
|
||||
|
||||
layout.itemR(st, "only_selected")
|
||||
|
||||
|
||||
class TIME_MT_frame(bpy.types.Menu):
|
||||
bl_label = "Frame"
|
||||
|
||||
@@ -106,6 +109,7 @@ class TIME_MT_frame(bpy.types.Menu):
|
||||
#sub.active = tools.enable_auto_key
|
||||
sub.itemM("TIME_MT_autokey")
|
||||
|
||||
|
||||
class TIME_MT_playback(bpy.types.Menu):
|
||||
bl_label = "Playback"
|
||||
|
||||
@@ -133,6 +137,7 @@ class TIME_MT_playback(bpy.types.Menu):
|
||||
layout.itemR(scene, "mute_audio")
|
||||
layout.itemR(scene, "scrub_audio")
|
||||
|
||||
|
||||
class TIME_MT_autokey(bpy.types.Menu):
|
||||
bl_label = "Auto-Keyframing Mode"
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class USERPREF_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'USER_PREFERENCES'
|
||||
|
||||
@@ -22,12 +23,14 @@ class USERPREF_HT_header(bpy.types.Header):
|
||||
layout.operator_context = "INVOKE_DEFAULT"
|
||||
layout.itemO("wm.keyconfig_export", "Export Key Configuration...")
|
||||
|
||||
|
||||
class USERPREF_MT_view(bpy.types.Menu):
|
||||
bl_label = "View"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
|
||||
class USERPREF_PT_tabs(bpy.types.Panel):
|
||||
bl_label = ""
|
||||
bl_space_type = 'USER_PREFERENCES'
|
||||
@@ -41,6 +44,7 @@ class USERPREF_PT_tabs(bpy.types.Panel):
|
||||
|
||||
layout.itemR(userpref, "active_section", expand=True)
|
||||
|
||||
|
||||
class USERPREF_PT_interface(bpy.types.Panel):
|
||||
bl_space_type = 'USER_PREFERENCES'
|
||||
bl_label = "Interface"
|
||||
@@ -126,6 +130,7 @@ class USERPREF_PT_interface(bpy.types.Panel):
|
||||
sub1.itemR(view, "open_toplevel_delay", text="Top Level")
|
||||
sub1.itemR(view, "open_sublevel_delay", text="Sub Level")
|
||||
|
||||
|
||||
class USERPREF_PT_edit(bpy.types.Panel):
|
||||
bl_space_type = 'USER_PREFERENCES'
|
||||
bl_label = "Edit"
|
||||
@@ -230,6 +235,7 @@ class USERPREF_PT_edit(bpy.types.Panel):
|
||||
sub1.itemR(edit, "duplicate_action", text="Action")
|
||||
sub1.itemR(edit, "duplicate_particle", text="Particle")
|
||||
|
||||
|
||||
class USERPREF_PT_system(bpy.types.Panel):
|
||||
bl_space_type = 'USER_PREFERENCES'
|
||||
bl_label = "System"
|
||||
@@ -322,6 +328,7 @@ class USERPREF_PT_system(bpy.types.Panel):
|
||||
sub1.itemR(system, "prefetch_frames")
|
||||
sub1.itemR(system, "memory_cache_limit")
|
||||
|
||||
|
||||
class USERPREF_PT_file(bpy.types.Panel):
|
||||
bl_space_type = 'USER_PREFERENCES'
|
||||
bl_label = "Files"
|
||||
@@ -389,6 +396,7 @@ class USERPREF_PT_file(bpy.types.Panel):
|
||||
sub3.enabled = paths.auto_save_temporary_files
|
||||
sub3.itemR(paths, "auto_save_time", text="Timer (mins)")
|
||||
|
||||
|
||||
class USERPREF_PT_input(bpy.types.Panel):
|
||||
bl_space_type = 'USER_PREFERENCES'
|
||||
bl_label = "Input"
|
||||
@@ -616,7 +624,7 @@ class WM_OT_keyconfig_export(bpy.types.Operator):
|
||||
|
||||
f.write('# Configuration %s\n' % kc.name)
|
||||
|
||||
f.write("wm = bpy.data.windowmanagers[0]\n");
|
||||
f.write("wm = bpy.data.windowmanagers[0]\n")
|
||||
f.write("kc = wm.add_keyconfig(\'%s\')\n\n" % kc.name)
|
||||
|
||||
for km in kc.keymaps:
|
||||
@@ -657,6 +665,7 @@ class WM_OT_keyconfig_export(bpy.types.Operator):
|
||||
wm.add_fileselect(self.__operator__)
|
||||
return ('RUNNING_MODAL',)
|
||||
|
||||
|
||||
class WM_OT_keymap_edit(bpy.types.Operator):
|
||||
"Edit key map."
|
||||
bl_idname = "wm.keymap_edit"
|
||||
@@ -668,6 +677,7 @@ class WM_OT_keymap_edit(bpy.types.Operator):
|
||||
km.copy_to_user()
|
||||
return ('FINISHED',)
|
||||
|
||||
|
||||
class WM_OT_keymap_restore(bpy.types.Operator):
|
||||
"Restore key map"
|
||||
bl_idname = "wm.keymap_restore"
|
||||
@@ -687,6 +697,7 @@ class WM_OT_keymap_restore(bpy.types.Operator):
|
||||
|
||||
return ('FINISHED',)
|
||||
|
||||
|
||||
class WM_OT_keyitem_add(bpy.types.Operator):
|
||||
"Add key map item."
|
||||
bl_idname = "wm.keyitem_add"
|
||||
@@ -698,6 +709,7 @@ class WM_OT_keyitem_add(bpy.types.Operator):
|
||||
kmi = km.add_item("", "A", "PRESS")
|
||||
return ('FINISHED',)
|
||||
|
||||
|
||||
class WM_OT_keyitem_remove(bpy.types.Operator):
|
||||
"Remove key map item."
|
||||
bl_idname = "wm.keyitem_remove"
|
||||
@@ -715,4 +727,3 @@ bpy.ops.add(WM_OT_keymap_edit)
|
||||
bpy.ops.add(WM_OT_keymap_restore)
|
||||
bpy.ops.add(WM_OT_keyitem_add)
|
||||
bpy.ops.add(WM_OT_keyitem_remove)
|
||||
|
||||
|
||||
@@ -3,12 +3,10 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
import dynamic_menu
|
||||
|
||||
# ********** Header **********
|
||||
|
||||
class VIEW3D_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
@@ -50,6 +48,7 @@ class VIEW3D_HT_header(bpy.types.Header):
|
||||
|
||||
# ********** Utilities **********
|
||||
|
||||
|
||||
class VIEW3D_MT_showhide(bpy.types.Menu):
|
||||
bl_label = "Show/Hide"
|
||||
_operator_name = ""
|
||||
@@ -61,6 +60,7 @@ class VIEW3D_MT_showhide(bpy.types.Menu):
|
||||
layout.itemO("%s.hide" % self._operator_name, text="Hide Selected")
|
||||
layout.item_booleanO("%s.hide" % self._operator_name, "unselected", True, text="Hide Unselected")
|
||||
|
||||
|
||||
class VIEW3D_MT_snap(bpy.types.Menu):
|
||||
bl_label = "Snap"
|
||||
|
||||
@@ -79,6 +79,7 @@ class VIEW3D_MT_snap(bpy.types.Menu):
|
||||
|
||||
# ********** View menus **********
|
||||
|
||||
|
||||
class VIEW3D_MT_view(bpy.types.Menu):
|
||||
bl_label = "View"
|
||||
|
||||
@@ -131,6 +132,8 @@ class VIEW3D_MT_view(bpy.types.Menu):
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("screen.animation_play", text="Playback Animation", icon='ICON_PLAY')
|
||||
|
||||
|
||||
class VIEW3D_MT_view_navigation(bpy.types.Menu):
|
||||
bl_label = "Navigation"
|
||||
|
||||
@@ -152,6 +155,7 @@ class VIEW3D_MT_view_navigation(bpy.types.Menu):
|
||||
|
||||
layout.itemO("view3d.fly")
|
||||
|
||||
|
||||
class VIEW3D_MT_view_align(bpy.types.Menu):
|
||||
bl_label = "Align View"
|
||||
|
||||
@@ -162,6 +166,7 @@ class VIEW3D_MT_view_align(bpy.types.Menu):
|
||||
layout.itemO("view3d.camera_to_view", text="Align Active Camera to View")
|
||||
layout.itemO("view3d.view_center")
|
||||
|
||||
|
||||
class VIEW3D_MT_view_cameras(bpy.types.Menu):
|
||||
bl_label = "Cameras"
|
||||
|
||||
@@ -173,6 +178,7 @@ class VIEW3D_MT_view_cameras(bpy.types.Menu):
|
||||
|
||||
# ********** Select menus, suffix from context.mode **********
|
||||
|
||||
|
||||
class VIEW3D_MT_select_object(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -192,6 +198,7 @@ class VIEW3D_MT_select_object(bpy.types.Menu):
|
||||
layout.item_menu_enumO("object.select_grouped", "type", text="Select Grouped...")
|
||||
layout.itemO("object.select_pattern", text="Select Pattern...")
|
||||
|
||||
|
||||
class VIEW3D_MT_select_pose(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -222,6 +229,7 @@ class VIEW3D_MT_select_pose(bpy.types.Menu):
|
||||
props.extend = True
|
||||
props.direction = 'CHILD'
|
||||
|
||||
|
||||
class VIEW3D_MT_select_particle(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -240,6 +248,7 @@ class VIEW3D_MT_select_particle(bpy.types.Menu):
|
||||
layout.itemO("particle.select_more")
|
||||
layout.itemO("particle.select_less")
|
||||
|
||||
|
||||
class VIEW3D_MT_select_edit_mesh(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -285,6 +294,7 @@ class VIEW3D_MT_select_edit_mesh(bpy.types.Menu):
|
||||
layout.itemO("mesh.loop_to_region")
|
||||
layout.itemO("mesh.region_to_loop")
|
||||
|
||||
|
||||
class VIEW3D_MT_select_edit_curve(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -313,6 +323,7 @@ class VIEW3D_MT_select_edit_curve(bpy.types.Menu):
|
||||
layout.itemO("curve.select_more")
|
||||
layout.itemO("curve.select_less")
|
||||
|
||||
|
||||
class VIEW3D_MT_select_edit_surface(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -338,6 +349,7 @@ class VIEW3D_MT_select_edit_surface(bpy.types.Menu):
|
||||
layout.itemO("curve.select_more")
|
||||
layout.itemO("curve.select_less")
|
||||
|
||||
|
||||
class VIEW3D_MT_select_edit_metaball(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -355,6 +367,7 @@ class VIEW3D_MT_select_edit_metaball(bpy.types.Menu):
|
||||
|
||||
layout.itemO("mball.select_random_metaelems")
|
||||
|
||||
|
||||
class VIEW3D_MT_select_edit_lattice(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -367,6 +380,7 @@ class VIEW3D_MT_select_edit_lattice(bpy.types.Menu):
|
||||
|
||||
layout.itemO("lattice.select_all_toggle", text="Select/Deselect All")
|
||||
|
||||
|
||||
class VIEW3D_MT_select_edit_armature(bpy.types.Menu):
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -395,6 +409,7 @@ class VIEW3D_MT_select_edit_armature(bpy.types.Menu):
|
||||
props.extend = True
|
||||
props.direction = 'CHILD'
|
||||
|
||||
|
||||
class VIEW3D_MT_select_face(bpy.types.Menu):# XXX no matching enum
|
||||
bl_label = "Select"
|
||||
|
||||
@@ -405,6 +420,7 @@ class VIEW3D_MT_select_face(bpy.types.Menu):# XXX no matching enum
|
||||
|
||||
# ********** Object menu **********
|
||||
|
||||
|
||||
class VIEW3D_MT_object(bpy.types.Menu):
|
||||
bl_context = "objectmode"
|
||||
bl_label = "Object"
|
||||
@@ -448,6 +464,7 @@ class VIEW3D_MT_object(bpy.types.Menu):
|
||||
|
||||
layout.item_menu_enumO("object.convert", "target")
|
||||
|
||||
|
||||
class VIEW3D_MT_object_clear(bpy.types.Menu):
|
||||
bl_label = "Clear"
|
||||
|
||||
@@ -459,6 +476,7 @@ class VIEW3D_MT_object_clear(bpy.types.Menu):
|
||||
layout.itemO("object.scale_clear", text="Scale")
|
||||
layout.itemO("object.origin_clear", text="Origin")
|
||||
|
||||
|
||||
class VIEW3D_MT_object_apply(bpy.types.Menu):
|
||||
bl_label = "Apply"
|
||||
|
||||
@@ -482,6 +500,7 @@ class VIEW3D_MT_object_parent(bpy.types.Menu):
|
||||
layout.itemO("object.parent_set", text="Set")
|
||||
layout.itemO("object.parent_clear", text="Clear")
|
||||
|
||||
|
||||
class VIEW3D_MT_object_track(bpy.types.Menu):
|
||||
bl_label = "Track"
|
||||
|
||||
@@ -491,6 +510,7 @@ class VIEW3D_MT_object_track(bpy.types.Menu):
|
||||
layout.itemO("object.track_set", text="Set")
|
||||
layout.itemO("object.track_clear", text="Clear")
|
||||
|
||||
|
||||
class VIEW3D_MT_object_group(bpy.types.Menu):
|
||||
bl_label = "Group"
|
||||
|
||||
@@ -505,6 +525,7 @@ class VIEW3D_MT_object_group(bpy.types.Menu):
|
||||
layout.itemO("group.objects_add_active")
|
||||
layout.itemO("group.objects_remove_active")
|
||||
|
||||
|
||||
class VIEW3D_MT_object_constraints(bpy.types.Menu):
|
||||
bl_label = "Constraints"
|
||||
|
||||
@@ -514,6 +535,7 @@ class VIEW3D_MT_object_constraints(bpy.types.Menu):
|
||||
layout.itemO("object.constraint_add_with_targets")
|
||||
layout.itemO("object.constraints_clear")
|
||||
|
||||
|
||||
class VIEW3D_MT_object_showhide(bpy.types.Menu):
|
||||
bl_label = "Show/Hide"
|
||||
|
||||
@@ -524,6 +546,7 @@ class VIEW3D_MT_object_showhide(bpy.types.Menu):
|
||||
layout.itemO("object.restrictview_set", text="Hide Selected")
|
||||
layout.item_booleanO("object.restrictview_set", "unselected", True, text="Hide Unselected")
|
||||
|
||||
|
||||
class VIEW3D_MT_make_single_user(bpy.types.Menu):
|
||||
bl_label = "Make Single User"
|
||||
|
||||
@@ -547,6 +570,7 @@ class VIEW3D_MT_make_single_user(bpy.types.Menu):
|
||||
|
||||
# ********** Vertex paint menu **********
|
||||
|
||||
|
||||
class VIEW3D_MT_paint_vertex(bpy.types.Menu):
|
||||
bl_label = "Paint"
|
||||
|
||||
@@ -561,6 +585,7 @@ class VIEW3D_MT_paint_vertex(bpy.types.Menu):
|
||||
|
||||
# ********** Sculpt menu **********
|
||||
|
||||
|
||||
class VIEW3D_MT_sculpt(bpy.types.Menu):
|
||||
bl_label = "Sculpt"
|
||||
|
||||
@@ -596,6 +621,7 @@ class VIEW3D_MT_sculpt(bpy.types.Menu):
|
||||
|
||||
# ********** Particle menu **********
|
||||
|
||||
|
||||
class VIEW3D_MT_particle(bpy.types.Menu):
|
||||
bl_label = "Particle"
|
||||
|
||||
@@ -620,11 +646,13 @@ class VIEW3D_MT_particle(bpy.types.Menu):
|
||||
|
||||
layout.itemM("VIEW3D_MT_particle_showhide")
|
||||
|
||||
|
||||
class VIEW3D_MT_particle_showhide(VIEW3D_MT_showhide):
|
||||
_operator_name = "particle"
|
||||
|
||||
# ********** Pose Menu **********
|
||||
|
||||
|
||||
class VIEW3D_MT_pose(bpy.types.Menu):
|
||||
bl_label = "Pose"
|
||||
|
||||
@@ -684,6 +712,7 @@ class VIEW3D_MT_pose(bpy.types.Menu):
|
||||
layout.itemM("VIEW3D_MT_pose_showhide")
|
||||
layout.item_menu_enumO("pose.flags_set", 'mode', text="Bone Settings")
|
||||
|
||||
|
||||
class VIEW3D_MT_pose_transform(bpy.types.Menu):
|
||||
bl_label = "Clear Transform"
|
||||
|
||||
@@ -698,6 +727,7 @@ class VIEW3D_MT_pose_transform(bpy.types.Menu):
|
||||
|
||||
layout.itemL(text="Origin")
|
||||
|
||||
|
||||
class VIEW3D_MT_pose_pose(bpy.types.Menu):
|
||||
bl_label = "Pose Library"
|
||||
|
||||
@@ -712,6 +742,7 @@ class VIEW3D_MT_pose_pose(bpy.types.Menu):
|
||||
layout.itemO("poselib.pose_rename", text="Rename Pose...")
|
||||
layout.itemO("poselib.pose_remove", text="Remove Pose...")
|
||||
|
||||
|
||||
class VIEW3D_MT_pose_motion(bpy.types.Menu):
|
||||
bl_label = "Motion Paths"
|
||||
|
||||
@@ -721,6 +752,7 @@ class VIEW3D_MT_pose_motion(bpy.types.Menu):
|
||||
layout.itemO("pose.paths_calculate", text="Calculate")
|
||||
layout.itemO("pose.paths_clear", text="Clear")
|
||||
|
||||
|
||||
class VIEW3D_MT_pose_group(bpy.types.Menu):
|
||||
bl_label = "Bone Groups"
|
||||
|
||||
@@ -744,6 +776,7 @@ class VIEW3D_MT_pose_ik(bpy.types.Menu):
|
||||
layout.itemO("pose.ik_add")
|
||||
layout.itemO("pose.ik_clear")
|
||||
|
||||
|
||||
class VIEW3D_MT_pose_constraints(bpy.types.Menu):
|
||||
bl_label = "Constraints"
|
||||
|
||||
@@ -753,12 +786,13 @@ class VIEW3D_MT_pose_constraints(bpy.types.Menu):
|
||||
layout.itemO("pose.constraint_add_with_targets", text="Add (With Targets)...")
|
||||
layout.itemO("pose.constraints_clear")
|
||||
|
||||
|
||||
class VIEW3D_MT_pose_showhide(VIEW3D_MT_showhide):
|
||||
_operator_name = "pose"
|
||||
|
||||
# ********** Edit Menus, suffix from ob.type **********
|
||||
|
||||
# Edit MESH
|
||||
|
||||
class VIEW3D_MT_edit_mesh(bpy.types.Menu):
|
||||
bl_label = "Mesh"
|
||||
|
||||
@@ -801,7 +835,7 @@ class VIEW3D_MT_edit_mesh(bpy.types.Menu):
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_mesh_showhide")
|
||||
|
||||
# Only used by the menu
|
||||
|
||||
class VIEW3D_MT_edit_mesh_specials(bpy.types.Menu):
|
||||
bl_label = "Specials"
|
||||
|
||||
@@ -826,6 +860,7 @@ class VIEW3D_MT_edit_mesh_specials(bpy.types.Menu):
|
||||
layout.itemO("mesh.shape_propagate_to_all")
|
||||
layout.itemO("mesh.select_vertex_path")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu):
|
||||
bl_label = "Vertices"
|
||||
|
||||
@@ -850,6 +885,7 @@ class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu):
|
||||
layout.itemO("object.vertex_group_blend")
|
||||
layout.itemO("mesh.shape_propagate_to_all")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_mesh_edges(bpy.types.Menu):
|
||||
bl_label = "Edges"
|
||||
|
||||
@@ -943,12 +979,14 @@ class VIEW3D_MT_edit_mesh_normals(bpy.types.Menu):
|
||||
|
||||
layout.itemO("mesh.flip_normals")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_mesh_showhide(VIEW3D_MT_showhide):
|
||||
_operator_name = "mesh"
|
||||
|
||||
# Edit Curve
|
||||
|
||||
# draw_curve is used by VIEW3D_MT_edit_curve and VIEW3D_MT_edit_surface
|
||||
|
||||
|
||||
def draw_curve(self, context):
|
||||
layout = self.layout
|
||||
|
||||
@@ -979,11 +1017,13 @@ def draw_curve(self, context):
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_curve_showhide")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_curve(bpy.types.Menu):
|
||||
bl_label = "Curve"
|
||||
|
||||
draw = draw_curve
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_curve_ctrlpoints(bpy.types.Menu):
|
||||
bl_label = "Control Points"
|
||||
|
||||
@@ -1001,6 +1041,7 @@ class VIEW3D_MT_edit_curve_ctrlpoints(bpy.types.Menu):
|
||||
|
||||
layout.item_menu_enumO("curve.handle_type_set", "type")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_curve_segments(bpy.types.Menu):
|
||||
bl_label = "Segments"
|
||||
|
||||
@@ -1010,16 +1051,17 @@ class VIEW3D_MT_edit_curve_segments(bpy.types.Menu):
|
||||
layout.itemO("curve.subdivide")
|
||||
layout.itemO("curve.switch_direction")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_curve_showhide(VIEW3D_MT_showhide):
|
||||
_operator_name = "curve"
|
||||
|
||||
# Edit SURFACE
|
||||
|
||||
class VIEW3D_MT_edit_surface(bpy.types.Menu):
|
||||
bl_label = "Surface"
|
||||
|
||||
draw = draw_curve
|
||||
|
||||
# Edit TEXT
|
||||
|
||||
class VIEW3D_MT_edit_text(bpy.types.Menu):
|
||||
bl_label = "Text"
|
||||
|
||||
@@ -1032,6 +1074,7 @@ class VIEW3D_MT_edit_text(bpy.types.Menu):
|
||||
|
||||
layout.itemm("view3d_mt_edit_text_chars")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_text_chars(bpy.types.Menu):
|
||||
bl_label = "Special Characters"
|
||||
|
||||
@@ -1065,7 +1108,7 @@ class VIEW3D_MT_edit_text_chars(bpy.types.Menu):
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xBF'.decode(), text="Spanish Question Mark|Alt ?")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xA1'.decode(), text="Spanish Exclamation Mark|Alt !")
|
||||
|
||||
# Edit META
|
||||
|
||||
class VIEW3D_MT_edit_meta(bpy.types.Menu):
|
||||
bl_label = "Metaball"
|
||||
|
||||
@@ -1095,6 +1138,7 @@ class VIEW3D_MT_edit_meta(bpy.types.Menu):
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_meta_showhide")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_meta_showhide(bpy.types.Menu):
|
||||
bl_label = "Show/Hide"
|
||||
|
||||
@@ -1105,7 +1149,7 @@ class VIEW3D_MT_edit_meta_showhide(bpy.types.Menu):
|
||||
layout.itemO("mball.hide_metaelems", text="Hide Selected")
|
||||
layout.item_booleanO("mball.hide_metaelems", "unselected", True, text="Hide Unselected")
|
||||
|
||||
# Edit LATTICE
|
||||
|
||||
class VIEW3D_MT_edit_lattice(bpy.types.Menu):
|
||||
bl_label = "Lattice"
|
||||
|
||||
@@ -1125,7 +1169,7 @@ class VIEW3D_MT_edit_lattice(bpy.types.Menu):
|
||||
layout.itemR(settings, "proportional_editing")
|
||||
layout.item_menu_enumR(settings, "proportional_editing_falloff")
|
||||
|
||||
# Edit ARMATURE
|
||||
|
||||
class VIEW3D_MT_edit_armature(bpy.types.Menu):
|
||||
bl_label = "Armature"
|
||||
|
||||
@@ -1183,6 +1227,7 @@ class VIEW3D_MT_edit_armature(bpy.types.Menu):
|
||||
|
||||
layout.item_menu_enumO("armature.flags_set", "mode", text="Bone Settings")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_armature_parent(bpy.types.Menu):
|
||||
bl_label = "Parent"
|
||||
|
||||
@@ -1192,6 +1237,7 @@ class VIEW3D_MT_edit_armature_parent(bpy.types.Menu):
|
||||
layout.itemO("armature.parent_set", text="Make")
|
||||
layout.itemO("armature.parent_clear", text="Clear")
|
||||
|
||||
|
||||
class VIEW3D_MT_edit_armature_roll(bpy.types.Menu):
|
||||
bl_label = "Bone Roll"
|
||||
|
||||
@@ -1207,6 +1253,7 @@ class VIEW3D_MT_edit_armature_roll(bpy.types.Menu):
|
||||
|
||||
# ********** Panel **********
|
||||
|
||||
|
||||
class VIEW3D_PT_3dview_properties(bpy.types.Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
@@ -1240,6 +1287,7 @@ class VIEW3D_PT_3dview_properties(bpy.types.Panel):
|
||||
|
||||
layout.column().itemR(scene, "cursor_location", text="3D Cursor:")
|
||||
|
||||
|
||||
class VIEW3D_PT_3dview_display(bpy.types.Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
@@ -1265,7 +1313,7 @@ class VIEW3D_PT_3dview_display(bpy.types.Panel):
|
||||
col.itemR(view, "outline_selected")
|
||||
col.itemR(view, "all_object_centers")
|
||||
col.itemR(view, "relationship_lines")
|
||||
if ob and ob.type =='MESH':
|
||||
if ob and ob.type == 'MESH':
|
||||
mesh = context.active_object.data
|
||||
col.itemR(mesh, "all_edges")
|
||||
|
||||
@@ -1283,6 +1331,7 @@ class VIEW3D_PT_3dview_display(bpy.types.Panel):
|
||||
# col.itemR(view, "box_preview")
|
||||
# col.itemR(view, "box_clip")
|
||||
|
||||
|
||||
class VIEW3D_PT_3dview_meshdisplay(bpy.types.Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
@@ -1318,6 +1367,7 @@ class VIEW3D_PT_3dview_meshdisplay(bpy.types.Panel):
|
||||
col.itemR(mesh, "draw_edge_angle")
|
||||
col.itemR(mesh, "draw_face_area")
|
||||
|
||||
|
||||
class VIEW3D_PT_3dview_curvedisplay(bpy.types.Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
@@ -1338,6 +1388,7 @@ class VIEW3D_PT_3dview_curvedisplay(bpy.types.Panel):
|
||||
col.itemR(curve, "draw_normals", text="Normals")
|
||||
col.itemR(context.scene.tool_settings, "normal_size", text="Normal Size")
|
||||
|
||||
|
||||
class VIEW3D_PT_background_image(bpy.types.Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
@@ -1376,6 +1427,7 @@ class VIEW3D_PT_background_image(bpy.types.Panel):
|
||||
col.itemR(bg, "offset_x", text="X")
|
||||
col.itemR(bg, "offset_y", text="Y")
|
||||
|
||||
|
||||
class VIEW3D_PT_transform_orientations(bpy.types.Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
@@ -1402,6 +1454,7 @@ class VIEW3D_PT_transform_orientations(bpy.types.Panel):
|
||||
col.itemR(orientation, "name")
|
||||
col.itemO("tfm.delete_orientation", text="Delete")
|
||||
|
||||
|
||||
class VIEW3D_PT_etch_a_ton(bpy.types.Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
@@ -1455,16 +1508,18 @@ class OBJECT_OT_select_pattern(bpy.types.Operator):
|
||||
bl_register = True
|
||||
bl_undo = True
|
||||
|
||||
pattern = StringProperty(name="Pattern", description="Name filter using '*' and '?' wildcard chars", maxlen= 32, default= "*")
|
||||
case_sensitive = BoolProperty(name="Case Sensitive", description="Do a case sensitive compare", default= False)
|
||||
extend = BoolProperty(name="Extend", description="Extend the existing selection", default= True)
|
||||
|
||||
pattern = StringProperty(name="Pattern", description="Name filter using '*' and '?' wildcard chars", maxlen=32, default="*")
|
||||
case_sensitive = BoolProperty(name="Case Sensitive", description="Do a case sensitive compare", default=False)
|
||||
extend = BoolProperty(name="Extend", description="Extend the existing selection", default=True)
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
import fnmatch
|
||||
if self.case_sensitive: pattern_match = fnmatch.fnmatchcase
|
||||
else: pattern_match = lambda a, b: fnmatch.fnmatchcase(a.upper(), b.upper())
|
||||
|
||||
if self.case_sensitive:
|
||||
pattern_match = fnmatch.fnmatchcase
|
||||
else:
|
||||
pattern_match = lambda a, b: fnmatch.fnmatchcase(a.upper(), b.upper())
|
||||
|
||||
for ob in context.visible_objects:
|
||||
if pattern_match(ob.name, self.pattern):
|
||||
@@ -1565,4 +1620,3 @@ bpy.types.register(VIEW3D_PT_transform_orientations)
|
||||
bpy.types.register(VIEW3D_PT_etch_a_ton)
|
||||
|
||||
bpy.ops.add(OBJECT_OT_select_pattern)
|
||||
|
||||
|
||||
@@ -3,15 +3,18 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html. Installing, importing or otherwise
|
||||
# using this module constitutes acceptance of the terms of this License.
|
||||
|
||||
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'TOOLS'
|
||||
|
||||
|
||||
# ********** default tools for objectmode ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_objectmode(View3DPanel):
|
||||
bl_context = "objectmode"
|
||||
bl_label = "Object Tools"
|
||||
@@ -30,7 +33,7 @@ class VIEW3D_PT_tools_objectmode(View3DPanel):
|
||||
col.itemO("object.duplicate_move")
|
||||
col.itemO("object.delete")
|
||||
|
||||
active_object= context.active_object
|
||||
active_object = context.active_object
|
||||
if active_object and active_object.type == 'MESH':
|
||||
|
||||
col = layout.column(align=True)
|
||||
@@ -57,6 +60,7 @@ class VIEW3D_PT_tools_objectmode(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_mesh ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_meshedit(View3DPanel):
|
||||
bl_context = "mesh_edit"
|
||||
bl_label = "Mesh Tools"
|
||||
@@ -108,6 +112,7 @@ class VIEW3D_PT_tools_meshedit(View3DPanel):
|
||||
col.itemO("screen.repeat_history", text="History...")
|
||||
col.itemO("screen.redo_last", text="Tweak...")
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_meshedit_options(View3DPanel):
|
||||
bl_context = "mesh_edit"
|
||||
bl_label = "Mesh Options"
|
||||
@@ -122,6 +127,7 @@ class VIEW3D_PT_tools_meshedit_options(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_curve ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_curveedit(View3DPanel):
|
||||
bl_context = "curve_edit"
|
||||
bl_label = "Curve Tools"
|
||||
@@ -169,6 +175,7 @@ class VIEW3D_PT_tools_curveedit(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_surface ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_surfaceedit(View3DPanel):
|
||||
bl_context = "surface_edit"
|
||||
bl_label = "Surface Tools"
|
||||
@@ -208,6 +215,7 @@ class VIEW3D_PT_tools_surfaceedit(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_text ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_textedit(View3DPanel):
|
||||
bl_context = "text_edit"
|
||||
bl_label = "Text Tools"
|
||||
@@ -234,6 +242,7 @@ class VIEW3D_PT_tools_textedit(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_armature ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_armatureedit(View3DPanel):
|
||||
bl_context = "armature_edit"
|
||||
bl_label = "Armature Tools"
|
||||
@@ -269,6 +278,7 @@ class VIEW3D_PT_tools_armatureedit(View3DPanel):
|
||||
col.itemO("screen.repeat_history", text="History...")
|
||||
col.itemO("screen.redo_last", text="Tweak...")
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_armatureedit_options(View3DPanel):
|
||||
bl_context = "armature_edit"
|
||||
bl_label = "Armature Options"
|
||||
@@ -283,6 +293,7 @@ class VIEW3D_PT_tools_armatureedit_options(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_mball ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_mballedit(View3DPanel):
|
||||
bl_context = "mball_edit"
|
||||
bl_label = "Meta Tools"
|
||||
@@ -310,6 +321,7 @@ class VIEW3D_PT_tools_mballedit(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_lattice ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_latticeedit(View3DPanel):
|
||||
bl_context = "lattice_edit"
|
||||
bl_label = "Lattice Tools"
|
||||
@@ -337,6 +349,7 @@ class VIEW3D_PT_tools_latticeedit(View3DPanel):
|
||||
|
||||
# ********** default tools for posemode ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_posemode(View3DPanel):
|
||||
bl_context = "posemode"
|
||||
bl_label = "Pose Tools"
|
||||
@@ -385,6 +398,7 @@ class VIEW3D_PT_tools_posemode(View3DPanel):
|
||||
col.itemO("screen.repeat_history", text="History...")
|
||||
col.itemO("screen.redo_last", text="Tweak...")
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_posemode_options(View3DPanel):
|
||||
bl_context = "posemode"
|
||||
bl_label = "Pose Options"
|
||||
@@ -400,6 +414,7 @@ class VIEW3D_PT_tools_posemode_options(View3DPanel):
|
||||
|
||||
# ********** default tools for paint modes ****************
|
||||
|
||||
|
||||
class PaintPanel(bpy.types.Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'TOOLS'
|
||||
@@ -420,6 +435,7 @@ class PaintPanel(bpy.types.Panel):
|
||||
|
||||
return False
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_brush(PaintPanel):
|
||||
bl_label = "Brush"
|
||||
|
||||
@@ -559,6 +575,7 @@ class VIEW3D_PT_tools_brush(PaintPanel):
|
||||
row.itemR(brush, "use_jitter_pressure", toggle=True, text="")
|
||||
'''
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_brush_stroke(PaintPanel):
|
||||
bl_label = "Stroke"
|
||||
bl_default_closed = True
|
||||
@@ -601,6 +618,7 @@ class VIEW3D_PT_tools_brush_stroke(PaintPanel):
|
||||
if texture_paint:
|
||||
row.itemR(brush, "use_spacing_pressure", toggle=True, text="")
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_brush_curve(PaintPanel):
|
||||
bl_label = "Curve"
|
||||
bl_default_closed = True
|
||||
@@ -618,6 +636,7 @@ class VIEW3D_PT_tools_brush_curve(PaintPanel):
|
||||
layout.template_curve_mapping(brush, "curve")
|
||||
layout.item_menu_enumO("brush.curve_preset", property="shape")
|
||||
|
||||
|
||||
class VIEW3D_PT_sculpt_options(PaintPanel):
|
||||
bl_label = "Options"
|
||||
|
||||
@@ -649,6 +668,7 @@ class VIEW3D_PT_sculpt_options(PaintPanel):
|
||||
|
||||
# ********** default tools for weightpaint ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_weightpaint(View3DPanel):
|
||||
bl_context = "weightpaint"
|
||||
bl_label = "Weight Tools"
|
||||
@@ -665,6 +685,7 @@ class VIEW3D_PT_tools_weightpaint(View3DPanel):
|
||||
col.itemO("object.vertex_group_invert", text="Invert")
|
||||
col.itemO("object.vertex_group_clean", text="Clean")
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_weightpaint_options(View3DPanel):
|
||||
bl_context = "weightpaint"
|
||||
bl_label = "Options"
|
||||
@@ -698,6 +719,7 @@ class VIEW3D_PT_tools_weightpaint_options(View3DPanel):
|
||||
|
||||
# ********** default tools for vertexpaint ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_vertexpaint(View3DPanel):
|
||||
bl_context = "vertexpaint"
|
||||
bl_label = "Options"
|
||||
@@ -720,9 +742,9 @@ class VIEW3D_PT_tools_vertexpaint(View3DPanel):
|
||||
# col.itemL(text="Multiply:")
|
||||
# col.itemR(vpaint, "mul", text="")
|
||||
|
||||
|
||||
# ********** default tools for texturepaint ****************
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_projectpaint(View3DPanel):
|
||||
bl_context = "texturepaint"
|
||||
bl_label = "Project Paint"
|
||||
@@ -740,7 +762,7 @@ class VIEW3D_PT_tools_projectpaint(View3DPanel):
|
||||
|
||||
ipaint = context.tool_settings.image_paint
|
||||
settings = context.tool_settings.image_paint
|
||||
use_projection= ipaint.use_projection
|
||||
use_projection = ipaint.use_projection
|
||||
|
||||
col = layout.column()
|
||||
sub = col.column()
|
||||
@@ -776,9 +798,9 @@ class VIEW3D_PT_tools_projectpaint(View3DPanel):
|
||||
sub = col.column()
|
||||
sub.itemR(ipaint, "seam_bleed")
|
||||
|
||||
# ********** default tools for particle mode ****************
|
||||
|
||||
class VIEW3D_PT_tools_particlemode(View3DPanel):
|
||||
'''default tools for particle mode'''
|
||||
bl_context = "particlemode"
|
||||
bl_label = "Options"
|
||||
|
||||
@@ -798,7 +820,7 @@ class VIEW3D_PT_tools_particlemode(View3DPanel):
|
||||
ptcache = ob.particle_systems[ob.active_particle_system_index].point_cache
|
||||
else:
|
||||
for md in ob.modifiers:
|
||||
if md.type==pe.type:
|
||||
if md.type == pe.type:
|
||||
ptcache = md.point_cache
|
||||
|
||||
if ptcache and len(ptcache.point_cache_list) > 1:
|
||||
@@ -837,6 +859,7 @@ class VIEW3D_PT_tools_particlemode(View3DPanel):
|
||||
sub.active = pe.fade_time
|
||||
sub.itemR(pe, "fade_frames", slider=True)
|
||||
|
||||
|
||||
bpy.types.register(VIEW3D_PT_tools_weightpaint)
|
||||
bpy.types.register(VIEW3D_PT_tools_objectmode)
|
||||
bpy.types.register(VIEW3D_PT_tools_meshedit)
|
||||
|
||||
Reference in New Issue
Block a user