2009-06-09 16:52:02 +00:00
2009-05-22 12:07:03 +00:00
import bpy
class TextureButtonsPanel ( bpy . types . Panel ) :
2009-08-22 08:48:01 +00:00
__space_type__ = ' PROPERTIES '
__region_type__ = ' WINDOW '
2009-05-22 12:07:03 +00:00
__context__ = " texture "
def poll ( self , context ) :
2009-08-17 18:37:58 +00:00
tex = context . texture
return ( tex and ( tex . type != ' NONE ' or tex . use_nodes ) )
2009-06-13 21:22:21 +00:00
2009-05-28 23:45:50 +00:00
class TEXTURE_PT_preview ( TextureButtonsPanel ) :
__label__ = " Preview "
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-08-18 19:58:27 +00:00
slot = context . texture_slot
2009-07-21 12:57:55 +00:00
ma = context . material
la = context . lamp
wo = context . world
2009-07-25 22:31:02 +00:00
br = context . brush
2009-06-13 21:22:21 +00:00
2009-07-21 12:57:55 +00:00
if ma :
2009-08-18 19:58:27 +00:00
layout . template_preview ( tex , parent = ma , slot = slot )
2009-07-21 12:57:55 +00:00
elif la :
2009-08-18 19:58:27 +00:00
layout . template_preview ( tex , parent = la , slot = slot )
2009-07-21 12:57:55 +00:00
elif wo :
2009-08-18 19:58:27 +00:00
layout . template_preview ( tex , parent = wo , slot = slot )
2009-07-25 22:31:02 +00:00
elif br :
2009-08-18 19:58:27 +00:00
layout . template_preview ( tex , parent = br , slot = slot )
2009-07-21 01:57:46 +00:00
else :
2009-08-18 19:58:27 +00:00
layout . template_preview ( tex , slot = slot )
2009-08-17 18:37:58 +00:00
2009-07-09 09:42:34 +00:00
class TEXTURE_PT_context_texture ( TextureButtonsPanel ) :
2009-07-26 03:54:17 +00:00
__show_header__ = False
2009-05-22 12:07:03 +00:00
2009-06-07 13:36:12 +00:00
def poll ( self , context ) :
2009-07-25 22:31:02 +00:00
return ( context . material or context . world or context . lamp or context . brush or context . texture )
2009-06-07 13:36:12 +00:00
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-07-09 09:07:25 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-08-06 13:15:23 +00:00
2009-08-08 17:21:34 +00:00
id = context . material
2009-08-06 13:15:23 +00:00
if not id : id = context . lamp
if not id : id = context . world
if not id : id = context . brush
2009-06-07 13:36:12 +00:00
space = context . space_data
2009-07-28 18:54:02 +00:00
if id :
2009-07-09 19:45:27 +00:00
row = layout . row ( )
2009-07-31 16:19:26 +00:00
row . template_list ( id , " textures " , id , " active_texture_index " , rows = 2 )
2009-06-07 13:36:12 +00:00
split = layout . split ( percentage = 0.65 )
2009-07-28 18:54:02 +00:00
if id :
split . template_ID ( id , " active_texture " , new = " texture.new " )
2009-06-07 13:36:12 +00:00
elif tex :
2009-06-23 00:19:10 +00:00
split . template_ID ( space , " pin_id " )
2009-07-25 22:31:02 +00:00
2009-08-17 18:37:58 +00:00
if ( not space . pin_id ) and (
context . sculpt_object or
context . vertex_paint_object or
context . weight_paint_object or
context . texture_paint_object
) :
2009-07-25 22:31:02 +00:00
split . itemR ( space , " brush_texture " , text = " Brush " , toggle = True )
2009-06-07 13:36:12 +00:00
if tex :
2009-08-17 18:37:58 +00:00
layout . itemR ( tex , " use_nodes " )
2009-06-08 12:01:17 +00:00
split = layout . split ( percentage = 0.2 )
2009-08-17 18:37:58 +00:00
if tex . use_nodes :
slot = context . texture_slot
split . itemL ( text = " Output: " )
split . itemR ( slot , " output_node " , text = " " )
else :
split . itemL ( text = " Type: " )
split . itemR ( tex , " type " , text = " " )
class TEXTURE_PT_colors ( TextureButtonsPanel ) :
__label__ = " Colors "
__default_closed__ = True
def draw ( self , context ) :
layout = self . layout
tex = context . texture
layout . itemR ( tex , " use_color_ramp " , text = " Ramp " )
if tex . use_color_ramp :
layout . template_color_ramp ( tex . color_ramp , expand = True )
split = layout . split ( )
2009-06-08 12:01:17 +00:00
2009-08-17 18:37:58 +00:00
split . itemR ( tex , " rgb_factor " , text = " Multiply RGB " )
2009-05-22 12:07:03 +00:00
2009-08-17 18:37:58 +00:00
col = split . column ( )
col . itemL ( text = " Adjust: " )
col . itemR ( tex , " brightness " )
col . itemR ( tex , " contrast " )
# Texture Slot Panels #
class TextureSlotPanel ( TextureButtonsPanel ) :
def poll ( self , context ) :
return (
context . texture_slot and
TextureButtonsPanel . poll ( self , context )
)
class TEXTURE_PT_mapping ( TextureSlotPanel ) :
2009-06-09 16:52:02 +00:00
__label__ = " Mapping "
2009-06-16 01:25:49 +00:00
2009-06-08 19:44:07 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-07-15 19:20:59 +00:00
ma = context . material
la = context . lamp
wo = context . world
2009-07-25 22:31:02 +00:00
br = context . brush
2009-06-08 19:44:07 +00:00
tex = context . texture_slot
2009-06-10 20:50:23 +00:00
textype = context . texture
2009-06-08 19:44:07 +00:00
2009-07-25 22:31:02 +00:00
if not br :
2009-07-21 12:57:55 +00:00
split = layout . split ( percentage = 0.3 )
2009-07-25 22:31:02 +00:00
col = split . column ( )
col . itemL ( text = " Coordinates: " )
col = split . column ( )
col . itemR ( tex , " texture_coordinates " , text = " " )
if tex . texture_coordinates == ' ORCO ' :
"""
ob = context . object
if ob and ob . type == ' MESH ' :
split = layout . split ( percentage = 0.3 )
split . itemL ( text = " Mesh: " )
split . itemR ( ob . data , " texco_mesh " , text = " " )
"""
elif tex . texture_coordinates == ' UV ' :
split = layout . split ( percentage = 0.3 )
split . itemL ( text = " Layer: " )
split . itemR ( tex , " uv_layer " , text = " " )
elif tex . texture_coordinates == ' OBJECT ' :
split = layout . split ( percentage = 0.3 )
split . itemL ( text = " Object: " )
split . itemR ( tex , " object " , text = " " )
2009-07-21 12:57:55 +00:00
if ma :
2009-06-10 20:50:23 +00:00
split = layout . split ( percentage = 0.3 )
2009-08-08 17:21:34 +00:00
split . itemL ( text = " Projection: " )
split . itemR ( tex , " mapping " , text = " " )
2009-06-10 20:50:23 +00:00
2009-07-15 19:20:59 +00:00
split = layout . split ( )
col = split . column ( )
if tex . texture_coordinates in ( ' ORCO ' , ' UV ' ) :
col . itemR ( tex , " from_dupli " )
elif tex . texture_coordinates == ' OBJECT ' :
col . itemR ( tex , " from_original " )
else :
col . itemL ( )
col = split . column ( )
row = col . row ( )
row . itemR ( tex , " x_mapping " , text = " " )
row . itemR ( tex , " y_mapping " , text = " " )
row . itemR ( tex , " z_mapping " , text = " " )
2009-06-09 16:04:07 +00:00
2009-08-13 20:05:36 +00:00
if br :
layout . itemR ( tex , " brush_map_mode " , expand = True )
row = layout . row ( )
row . active = tex . brush_map_mode in ( ' FIXED ' , ' TILED ' )
row . itemR ( tex , " angle " )
row = layout . row ( )
row . active = tex . brush_map_mode in ( ' TILED ' , ' 3D ' )
row . column ( ) . itemR ( tex , " size " )
else :
row = layout . row ( )
row . column ( ) . itemR ( tex , " offset " )
row . column ( ) . itemR ( tex , " size " )
2009-06-09 16:04:07 +00:00
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_influence ( TextureSlotPanel ) :
2009-06-09 16:52:02 +00:00
__label__ = " Influence "
2009-06-16 01:25:49 +00:00
2009-06-09 16:52:02 +00:00
def draw ( self , context ) :
layout = self . layout
2009-06-13 21:22:21 +00:00
2009-07-15 19:20:59 +00:00
ma = context . material
la = context . lamp
wo = context . world
2009-07-25 22:31:02 +00:00
br = context . brush
2009-06-09 16:52:02 +00:00
textype = context . texture
tex = context . texture_slot
2009-07-21 12:57:55 +00:00
def factor_but ( layout , active , toggle , factor , name ) :
row = layout . row ( align = True )
row . itemR ( tex , toggle , text = " " )
sub = row . row ( )
sub . active = active
sub . itemR ( tex , factor , text = name , slider = True )
2009-06-08 19:44:07 +00:00
2009-07-15 19:20:59 +00:00
if ma :
2009-08-16 06:10:31 +00:00
if ma . type in [ ' SURFACE ' , ' HALO ' , ' WIRE ' ] :
split = layout . split ( )
col = split . column ( )
col . itemL ( text = " Diffuse: " )
factor_but ( col , tex . map_diffuse , " map_diffuse " , " diffuse_factor " , " Intensity " )
factor_but ( col , tex . map_colordiff , " map_colordiff " , " colordiff_factor " , " Color " )
factor_but ( col , tex . map_alpha , " map_alpha " , " alpha_factor " , " Alpha " )
factor_but ( col , tex . map_translucency , " map_translucency " , " translucency_factor " , " Translucency " )
col . itemL ( text = " Specular: " )
factor_but ( col , tex . map_specular , " map_specular " , " specular_factor " , " Intensity " )
factor_but ( col , tex . map_colorspec , " map_colorspec " , " colorspec_factor " , " Color " )
factor_but ( col , tex . map_hardness , " map_hardness " , " hardness_factor " , " Hardness " )
col = split . column ( )
col . itemL ( text = " Shading: " )
factor_but ( col , tex . map_ambient , " map_ambient " , " ambient_factor " , " Ambient " )
factor_but ( col , tex . map_emit , " map_emit " , " emit_factor " , " Emit " )
factor_but ( col , tex . map_mirror , " map_mirror " , " mirror_factor " , " Mirror " )
factor_but ( col , tex . map_raymir , " map_raymir " , " raymir_factor " , " Ray Mirror " )
col . itemL ( text = " Geometry: " )
factor_but ( col , tex . map_normal , " map_normal " , " normal_factor " , " Normal " )
factor_but ( col , tex . map_warp , " map_warp " , " warp_factor " , " Warp " )
factor_but ( col , tex . map_displacement , " map_displacement " , " displacement_factor " , " Displace " )
#sub = col.column()
#sub.active = tex.map_translucency or tex.map_emit or tex.map_alpha or tex.map_raymir or tex.map_hardness or tex.map_ambient or tex.map_specularity or tex.map_reflection or tex.map_mirror
#sub.itemR(tex, "default_value", text="Amount", slider=True)
elif ma . type == ' VOLUME ' :
split = layout . split ( )
col = split . column ( )
factor_but ( col , tex . map_density , " map_density " , " density_factor " , " Density " )
factor_but ( col , tex . map_emission , " map_emission " , " emission_factor " , " Emission " )
factor_but ( col , tex . map_absorption , " map_absorption " , " absorption_factor " , " Absorption " )
factor_but ( col , tex . map_scattering , " map_scattering " , " scattering_factor " , " Scattering " )
col = split . column ( )
col . itemL ( text = " " )
factor_but ( col , tex . map_alpha , " map_coloremission " , " coloremission_factor " , " Emission Color " )
factor_but ( col , tex . map_colorabsorption , " map_colorabsorption " , " colorabsorption_factor " , " Absorption Color " )
2009-07-21 12:57:55 +00:00
2009-07-15 19:20:59 +00:00
elif la :
row = layout . row ( )
2009-07-21 12:57:55 +00:00
factor_but ( row , tex . map_color , " map_color " , " color_factor " , " Color " )
factor_but ( row , tex . map_shadow , " map_shadow " , " shadow_factor " , " Shadow " )
elif wo :
2009-07-15 19:20:59 +00:00
split = layout . split ( )
2009-08-08 17:21:34 +00:00
2009-07-15 19:20:59 +00:00
col = split . column ( )
2009-07-21 12:57:55 +00:00
factor_but ( col , tex . map_blend , " map_blend " , " blend_factor " , " Blend " )
factor_but ( col , tex . map_horizon , " map_horizon " , " horizon_factor " , " Horizon " )
2009-07-15 19:20:59 +00:00
col = split . column ( )
2009-07-21 12:57:55 +00:00
factor_but ( col , tex . map_zenith_up , " map_zenith_up " , " zenith_up_factor " , " Zenith Up " )
factor_but ( col , tex . map_zenith_down , " map_zenith_down " , " zenith_down_factor " , " Zenith Down " )
2009-07-15 19:20:59 +00:00
2009-07-21 12:57:55 +00:00
layout . itemS ( )
2009-08-08 17:21:34 +00:00
2009-07-21 12:57:55 +00:00
split = layout . split ( )
2009-07-15 19:20:59 +00:00
2009-07-21 12:57:55 +00:00
col = split . column ( )
col . itemR ( tex , " blend_type " , text = " Blend " )
col . itemR ( tex , " rgb_to_intensity " )
2009-08-08 17:21:34 +00:00
sub = col . column ( )
sub . active = tex . rgb_to_intensity
sub . itemR ( tex , " color " , text = " " )
2009-07-15 19:20:59 +00:00
2009-07-21 12:57:55 +00:00
col = split . column ( )
col . itemR ( tex , " negate " , text = " Negative " )
col . itemR ( tex , " stencil " )
if ma or wo :
col . itemR ( tex , " default_value " , text = " DVar " , slider = True )
2009-06-08 19:44:07 +00:00
2009-08-08 17:21:34 +00:00
# Texture Type Panels #
2009-06-03 00:17:35 +00:00
2009-08-17 18:37:58 +00:00
class TextureTypePanel ( TextureButtonsPanel ) :
2009-05-22 12:07:03 +00:00
def poll ( self , context ) :
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-08-17 18:37:58 +00:00
return ( tex and tex . type == self . tex_type and not tex . use_nodes )
class TEXTURE_PT_clouds ( TextureTypePanel ) :
__label__ = " Clouds "
tex_type = ' CLOUDS '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
layout . itemR ( tex , " stype " , expand = True )
layout . itemL ( text = " Noise: " )
layout . itemR ( tex , " noise_type " , text = " Type " , expand = True )
2009-05-26 02:49:46 +00:00
layout . itemR ( tex , " noise_basis " , text = " Basis " )
2009-05-22 12:07:03 +00:00
2009-08-08 17:21:34 +00:00
flow = layout . column_flow ( )
flow . itemR ( tex , " noise_size " , text = " Size " )
flow . itemR ( tex , " noise_depth " , text = " Depth " )
flow . itemR ( tex , " nabla " , text = " Nabla " )
2009-05-22 12:07:03 +00:00
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_wood ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Wood "
2009-08-17 18:37:58 +00:00
tex_type = ' WOOD '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
2009-05-26 02:49:46 +00:00
layout . itemR ( tex , " noisebasis2 " , expand = True )
2009-06-08 12:01:17 +00:00
layout . itemR ( tex , " stype " , expand = True )
col = layout . column ( )
col . active = tex . stype in ( ' RINGNOISE ' , ' BANDNOISE ' )
col . itemL ( text = " Noise: " )
col . row ( ) . itemR ( tex , " noise_type " , text = " Type " , expand = True )
col . itemR ( tex , " noise_basis " , text = " Basis " )
2009-05-22 12:07:03 +00:00
2009-08-08 17:21:34 +00:00
flow = layout . column_flow ( )
flow . active = tex . stype in ( ' RINGNOISE ' , ' BANDNOISE ' )
flow . itemR ( tex , " noise_size " , text = " Size " )
flow . itemR ( tex , " turbulence " )
flow . itemR ( tex , " nabla " )
2009-05-22 12:07:03 +00:00
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_marble ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Marble "
2009-08-17 18:37:58 +00:00
tex_type = ' MARBLE '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
layout . itemR ( tex , " stype " , expand = True )
layout . itemR ( tex , " noisebasis2 " , expand = True )
layout . itemL ( text = " Noise: " )
layout . itemR ( tex , " noise_type " , text = " Type " , expand = True )
2009-05-26 02:49:46 +00:00
layout . itemR ( tex , " noise_basis " , text = " Basis " )
2009-05-22 12:07:03 +00:00
2009-08-08 17:21:34 +00:00
flow = layout . column_flow ( )
flow . itemR ( tex , " noise_size " , text = " Size " )
flow . itemR ( tex , " noise_depth " , text = " Depth " )
flow . itemR ( tex , " turbulence " )
flow . itemR ( tex , " nabla " )
2009-05-22 12:07:03 +00:00
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_magic ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Magic "
2009-08-17 18:37:58 +00:00
tex_type = ' MAGIC '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
row = layout . row ( )
row . itemR ( tex , " noise_depth " , text = " Depth " )
row . itemR ( tex , " turbulence " )
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_blend ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Blend "
2009-08-17 18:37:58 +00:00
tex_type = ' BLEND '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
layout . itemR ( tex , " progression " )
layout . itemR ( tex , " flip_axis " )
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_stucci ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Stucci "
2009-08-17 18:37:58 +00:00
tex_type = ' STUCCI '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
layout . itemR ( tex , " stype " , expand = True )
layout . itemL ( text = " Noise: " )
layout . itemR ( tex , " noise_type " , text = " Type " , expand = True )
2009-05-26 02:49:46 +00:00
layout . itemR ( tex , " noise_basis " , text = " Basis " )
2009-05-22 12:07:03 +00:00
row = layout . row ( )
row . itemR ( tex , " noise_size " , text = " Size " )
row . itemR ( tex , " turbulence " )
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_image ( TextureTypePanel ) :
2009-07-21 12:57:55 +00:00
__label__ = " Image "
2009-08-17 18:37:58 +00:00
tex_type = ' IMAGE '
2009-07-21 12:57:55 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-07-21 12:57:55 +00:00
tex = context . texture
layout . template_texture_image ( tex )
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_image_sampling ( TextureTypePanel ) :
2009-07-21 12:57:55 +00:00
__label__ = " Image Sampling "
__default_closed__ = True
2009-08-17 18:37:58 +00:00
tex_type = ' IMAGE '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-07-21 12:57:55 +00:00
slot = context . texture_slot
2009-05-22 12:07:03 +00:00
split = layout . split ( )
2009-07-21 12:57:55 +00:00
"""
2009-08-08 17:21:34 +00:00
col = split . column ( )
col . itemR ( tex , " flip_axis " )
col . itemR ( tex , " normal_map " )
2009-07-21 12:57:55 +00:00
if slot :
2009-08-08 17:21:34 +00:00
row = col . row ( )
2009-07-21 12:57:55 +00:00
row . active = tex . normal_map
row . itemR ( slot , " normal_map_space " , text = " " )
"""
2009-08-08 17:21:34 +00:00
col = split . column ( )
col . itemL ( text = " Alpha: " )
col . itemR ( tex , " use_alpha " , text = " Use " )
col . itemR ( tex , " calculate_alpha " , text = " Calculate " )
col . itemR ( tex , " invert_alpha " , text = " Invert " )
2009-07-21 12:57:55 +00:00
2009-08-08 17:21:34 +00:00
col . itemL ( text = " Flip: " )
col . itemR ( tex , " flip_axis " , text = " X/Y Axis " )
2009-07-21 12:57:55 +00:00
2009-08-08 17:21:34 +00:00
col = split . column ( )
col . itemL ( text = " Filter: " )
col . itemR ( tex , " filter " , text = " " )
col . itemR ( tex , " mipmap " )
row = col . row ( )
2009-07-21 12:57:55 +00:00
row . active = tex . mipmap
2009-08-08 17:21:34 +00:00
row . itemR ( tex , " mipmap_gauss " , text = " Gauss " )
col . itemR ( tex , " interpolation " )
2009-07-21 12:57:55 +00:00
if tex . mipmap and tex . filter != ' DEFAULT ' :
if tex . filter == ' FELINE ' :
2009-08-08 17:21:34 +00:00
col . itemR ( tex , " filter_probes " , text = " Probes " )
2009-07-21 12:57:55 +00:00
else :
2009-08-08 17:21:34 +00:00
col . itemR ( tex , " filter_eccentricity " , text = " Eccentricity " )
2009-05-22 12:07:03 +00:00
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_image_mapping ( TextureTypePanel ) :
2009-07-21 12:57:55 +00:00
__label__ = " Image Mapping "
__default_closed__ = True
2009-08-17 18:37:58 +00:00
tex_type = ' IMAGE '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
layout . itemR ( tex , " extension " )
split = layout . split ( )
if tex . extension == ' REPEAT ' :
2009-08-08 17:21:34 +00:00
col = split . column ( align = True )
col . itemL ( text = " Repeat: " )
col . itemR ( tex , " repeat_x " , text = " X " )
col . itemR ( tex , " repeat_y " , text = " Y " )
col = split . column ( align = True )
col . itemL ( text = " Mirror: " )
col . itemR ( tex , " mirror_x " , text = " X " )
col . itemR ( tex , " mirror_y " , text = " Y " )
2009-05-22 12:07:03 +00:00
elif tex . extension == ' CHECKER ' :
2009-08-08 17:21:34 +00:00
col = split . column ( align = True )
row = col . row ( )
2009-07-21 12:57:55 +00:00
row . itemR ( tex , " checker_even " , text = " Even " )
row . itemR ( tex , " checker_odd " , text = " Odd " )
2009-08-08 17:21:34 +00:00
split . itemR ( tex , " checker_distance " , text = " Distance " )
2009-07-21 12:57:55 +00:00
layout . itemS ( )
split = layout . split ( )
2009-08-08 17:21:34 +00:00
col = split . column ( align = True )
#col.itemR(tex, "crop_rectangle")
col . itemL ( text = " Crop Minimum: " )
col . itemR ( tex , " crop_min_x " , text = " X " )
col . itemR ( tex , " crop_min_y " , text = " Y " )
col = split . column ( align = True )
col . itemL ( text = " Crop Maximum: " )
col . itemR ( tex , " crop_max_x " , text = " X " )
col . itemR ( tex , " crop_max_y " , text = " Y " )
2009-05-22 12:07:03 +00:00
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_plugin ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Plugin "
2009-08-17 18:37:58 +00:00
tex_type = ' PLUGIN '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
layout . itemL ( text = " Nothing yet " )
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_envmap ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Environment Map "
2009-08-17 18:37:58 +00:00
tex_type = ' ENVIRONMENT_MAP '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
layout . itemL ( text = " Nothing yet " )
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_musgrave ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Musgrave "
2009-08-17 18:37:58 +00:00
tex_type = ' MUSGRAVE '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
2009-05-26 02:49:46 +00:00
layout . itemR ( tex , " musgrave_type " )
2009-05-22 12:07:03 +00:00
split = layout . split ( )
2009-08-08 17:21:34 +00:00
col = split . column ( )
col . itemR ( tex , " highest_dimension " , text = " Dimension " )
col . itemR ( tex , " lacunarity " )
col . itemR ( tex , " octaves " )
col = split . column ( )
2009-05-22 12:07:03 +00:00
if ( tex . musgrave_type in ( ' HETERO_TERRAIN ' , ' RIDGED_MULTIFRACTAL ' , ' HYBRID_MULTIFRACTAL ' ) ) :
2009-08-08 17:21:34 +00:00
col . itemR ( tex , " offset " )
2009-05-22 12:07:03 +00:00
if ( tex . musgrave_type in ( ' RIDGED_MULTIFRACTAL ' , ' HYBRID_MULTIFRACTAL ' ) ) :
2009-08-08 17:21:34 +00:00
col . itemR ( tex , " gain " )
col . itemR ( tex , " noise_intensity " , text = " Intensity " )
2009-05-22 12:07:03 +00:00
layout . itemL ( text = " Noise: " )
2009-05-26 02:49:46 +00:00
2009-05-22 12:07:03 +00:00
layout . itemR ( tex , " noise_basis " , text = " Basis " )
row = layout . row ( )
row . itemR ( tex , " noise_size " , text = " Size " )
row . itemR ( tex , " nabla " )
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_voronoi ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Voronoi "
2009-08-17 18:37:58 +00:00
tex_type = ' VORONOI '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-22 12:07:03 +00:00
split = layout . split ( )
2009-08-08 17:21:34 +00:00
col = split . column ( )
col . itemL ( text = " Distance Metric: " )
col . itemR ( tex , " distance_metric " , text = " " )
sub = col . column ( )
sub . active = tex . distance_metric == ' MINKOVSKY '
sub . itemR ( tex , " minkovsky_exponent " , text = " Exponent " )
col . itemL ( text = " Coloring: " )
col . itemR ( tex , " coloring " , text = " " )
col . itemR ( tex , " noise_intensity " , text = " Intensity " )
col = split . column ( align = True )
col . itemL ( text = " Feature Weights: " )
col . itemR ( tex , " weight_1 " , text = " 1 " , slider = True )
col . itemR ( tex , " weight_2 " , text = " 2 " , slider = True )
col . itemR ( tex , " weight_3 " , text = " 3 " , slider = True )
col . itemR ( tex , " weight_4 " , text = " 4 " , slider = True )
2009-05-22 12:07:03 +00:00
layout . itemL ( text = " Noise: " )
row = layout . row ( )
row . itemR ( tex , " noise_size " , text = " Size " )
row . itemR ( tex , " nabla " )
2009-08-17 18:37:58 +00:00
class TEXTURE_PT_distortednoise ( TextureTypePanel ) :
2009-05-22 12:07:03 +00:00
__label__ = " Distorted Noise "
2009-08-17 18:37:58 +00:00
tex_type = ' DISTORTED_NOISE '
2009-05-22 12:07:03 +00:00
def draw ( self , context ) :
layout = self . layout
2009-08-08 17:21:34 +00:00
2009-06-03 00:17:35 +00:00
tex = context . texture
2009-05-25 14:58:10 +00:00
2009-05-22 12:07:03 +00:00
layout . itemR ( tex , " noise_distortion " )
layout . itemR ( tex , " noise_basis " , text = " Basis " )
2009-08-08 17:21:34 +00:00
flow = layout . column_flow ( )
flow . itemR ( tex , " distortion_amount " , text = " Distortion " )
flow . itemR ( tex , " noise_size " , text = " Size " )
flow . itemR ( tex , " nabla " )
2009-08-13 05:21:25 +00:00
class TEXTURE_PT_voxeldata ( TextureButtonsPanel ) :
__idname__ = " TEXTURE_PT_voxeldata "
__label__ = " Voxel Data "
def poll ( self , context ) :
tex = context . texture
return ( tex and tex . type == ' VOXEL_DATA ' )
def draw ( self , context ) :
layout = self . layout
2009-08-27 18:24:12 +00:00
2009-08-13 05:21:25 +00:00
tex = context . texture
vd = tex . voxeldata
layout . itemR ( vd , " file_format " )
if vd . file_format in [ ' BLENDER_VOXEL ' , ' RAW_8BIT ' ] :
layout . itemR ( vd , " source_path " )
if vd . file_format == ' RAW_8BIT ' :
layout . itemR ( vd , " resolution " )
2009-08-27 18:24:12 +00:00
elif vd . file_format == ' SMOKE ' :
2009-08-16 06:10:31 +00:00
layout . itemR ( vd , " domain_object " )
2009-08-13 05:21:25 +00:00
layout . itemR ( vd , " still " )
2009-08-27 18:24:12 +00:00
row = layout . row ( )
row . active = vd . still
row . itemR ( vd , " still_frame_number " )
2009-08-13 05:21:25 +00:00
layout . itemR ( vd , " interpolation " )
layout . itemR ( vd , " intensity " )
class TEXTURE_PT_pointdensity ( TextureButtonsPanel ) :
__idname__ = " TEXTURE_PT_pointdensity "
__label__ = " Point Density "
def poll ( self , context ) :
tex = context . texture
return ( tex and tex . type == ' POINT_DENSITY ' )
def draw ( self , context ) :
layout = self . layout
2009-08-27 18:24:12 +00:00
2009-08-13 05:21:25 +00:00
tex = context . texture
pd = tex . pointdensity
2009-08-27 19:10:53 +00:00
2009-08-27 18:24:12 +00:00
layout . itemR ( pd , " point_source " , expand = True )
2009-08-27 19:10:53 +00:00
split = layout . split ( )
col = split . column ( )
2009-08-17 22:09:36 +00:00
if pd . point_source == ' PARTICLE_SYSTEM ' :
2009-08-29 00:41:14 +00:00
col . itemL ( text = " Object: " )
col . itemR ( pd , " object " , text = " " )
col = col . column ( )
col . enabled = pd . object
2009-08-27 19:10:53 +00:00
col . itemL ( text = " System: " )
2009-08-29 00:41:14 +00:00
col . item_pointerR ( pd , " particle_system " , pd . object , " particle_systems " , text = " " )
2009-08-27 19:10:53 +00:00
col . itemL ( text = " Cache: " )
col . itemR ( pd , " particle_cache " , text = " " )
2009-08-27 18:24:12 +00:00
else :
2009-08-27 19:10:53 +00:00
col . itemL ( text = " Object: " )
col . itemR ( pd , " object " , text = " " )
col . itemL ( text = " Cache: " )
col . itemR ( pd , " vertices_cache " , text = " " )
2009-08-27 18:24:12 +00:00
2009-08-27 19:10:53 +00:00
sub = split . column ( )
2009-08-27 18:24:12 +00:00
2009-08-27 19:10:53 +00:00
sub . itemL ( )
sub . itemR ( pd , " radius " )
2009-08-27 18:24:12 +00:00
2009-08-27 19:10:53 +00:00
sub . itemL ( text = " Falloff: " )
sub . itemR ( pd , " falloff " , text = " " )
if pd . falloff == ' SOFT ' :
sub . itemR ( pd , " falloff_softness " )
2009-08-27 18:24:12 +00:00
2009-08-27 19:10:53 +00:00
col . itemL ( text = " Color Source: " )
col . itemR ( pd , " color_source " , text = " " )
2009-08-27 18:24:12 +00:00
if pd . color_source in ( ' PARTICLE_SPEED ' , ' PARTICLE_VELOCITY ' ) :
2009-08-27 19:10:53 +00:00
col . itemR ( pd , " speed_scale " )
2009-08-27 18:24:12 +00:00
if pd . color_source in ( ' PARTICLE_SPEED ' , ' PARTICLE_AGE ' ) :
layout . template_color_ramp ( pd . color_ramp , expand = True )
2009-05-22 12:07:03 +00:00
2009-08-27 19:10:53 +00:00
class TEXTURE_PT_pointdensity_turbulence ( TextureButtonsPanel ) :
__label__ = " Turbulence "
def poll ( self , context ) :
tex = context . texture
return ( tex and tex . type == ' POINT_DENSITY ' )
def draw_header ( self , context ) :
layout = self . layout
tex = context . texture
pd = tex . pointdensity
layout . itemR ( pd , " turbulence " , text = " " )
def draw ( self , context ) :
layout = self . layout
tex = context . texture
pd = tex . pointdensity
layout . active = pd . turbulence
split = layout . split ( )
col = split . column ( )
col . itemL ( text = " Influence: " )
col . itemR ( pd , " turbulence_influence " , text = " " )
col . itemL ( text = " Noise Basis: " )
col . itemR ( pd , " noise_basis " , text = " " )
col = split . column ( )
col . itemL ( )
col . itemR ( pd , " turbulence_size " )
col . itemR ( pd , " turbulence_depth " )
col . itemR ( pd , " turbulence_strength " )
2009-07-09 09:42:34 +00:00
bpy . types . register ( TEXTURE_PT_context_texture )
2009-05-28 23:45:50 +00:00
bpy . types . register ( TEXTURE_PT_preview )
2009-08-27 18:24:12 +00:00
bpy . types . register ( TEXTURE_PT_clouds ) # Texture Type Panels
2009-05-22 12:07:03 +00:00
bpy . types . register ( TEXTURE_PT_wood )
bpy . types . register ( TEXTURE_PT_marble )
bpy . types . register ( TEXTURE_PT_magic )
bpy . types . register ( TEXTURE_PT_blend )
bpy . types . register ( TEXTURE_PT_stucci )
bpy . types . register ( TEXTURE_PT_image )
2009-07-21 12:57:55 +00:00
bpy . types . register ( TEXTURE_PT_image_sampling )
bpy . types . register ( TEXTURE_PT_image_mapping )
2009-05-22 12:07:03 +00:00
bpy . types . register ( TEXTURE_PT_plugin )
bpy . types . register ( TEXTURE_PT_envmap )
bpy . types . register ( TEXTURE_PT_musgrave )
bpy . types . register ( TEXTURE_PT_voronoi )
2009-05-25 14:58:10 +00:00
bpy . types . register ( TEXTURE_PT_distortednoise )
2009-08-13 05:21:25 +00:00
bpy . types . register ( TEXTURE_PT_voxeldata )
bpy . types . register ( TEXTURE_PT_pointdensity )
2009-08-27 19:10:53 +00:00
bpy . types . register ( TEXTURE_PT_pointdensity_turbulence )
2009-08-27 18:24:12 +00:00
2009-06-08 19:44:07 +00:00
bpy . types . register ( TEXTURE_PT_colors )
2009-06-09 16:52:02 +00:00
bpy . types . register ( TEXTURE_PT_mapping )
2009-06-16 01:25:49 +00:00
bpy . types . register ( TEXTURE_PT_influence )