[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1881] moving texture paint to trunk
Luca Bonavita
mindrones at gmail.com
Sat Apr 30 12:43:34 CEST 2011
Revision: 1881
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=1881
Author: mindrones
Date: 2011-04-30 10:43:34 +0000 (Sat, 30 Apr 2011)
Log Message:
-----------
moving texture paint to trunk
- renamed: texpaint_ui.py -> texture_paint_layer_manager.py to follow naming conventions
- fixed the tracker url
Added Paths:
-----------
trunk/py/scripts/addons/texture_paint_layer_manager.py
Removed Paths:
-------------
contrib/py/scripts/addons/texpaint_ui.py
Deleted: contrib/py/scripts/addons/texpaint_ui.py
===================================================================
--- contrib/py/scripts/addons/texpaint_ui.py 2011-04-29 22:51:33 UTC (rev 1880)
+++ contrib/py/scripts/addons/texpaint_ui.py 2011-04-30 10:43:34 UTC (rev 1881)
@@ -1,645 +0,0 @@
-bl_info = {
- "name": "Texture Paint Layer Manager",
- "author": "Michael Wiliamson",
- "version": (1, 0),
- "blender": (2, 5, 6),
- "api": 35964,
- "location": "Texture paint 'nkey' panel",
- "description": "adds a layer manager for image based texture slots in paint and quick add layer tools",
- "warning": "",
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/3D_interaction/Texture_paint_layers",
- "tracker_url": "http://projects.blender.org/tracker/index.php?func=detail&aid=26789&group_id=153&atid=467",
- "category": "Texture"}
-
-
-import bpy
-from bpy.props import*
-import os
-from io_utils import ImportHelper
-
-
-#-------------------------------------------
-
-def load_a_brush(context, filepath):
- if os.path.isdir(filepath):
- return
-
- else:
-
- try:
- fn = bpy.path.display_name_from_filepath(filepath)
- #create image and load...
- img = bpy.data.images.load(filepath)
- img.use_fake_user =True
-
- #create a texture
- tex = bpy.data.textures.new(name =fn, type='IMAGE')
- tex.use_fake_user =True
- #tex.use_calculate_alpha = True
-
- #link the img to the texture
- tex.image = img
-
- except:
- print(f,'is not image?')
-
- return {'FINISHED'}
-
-
-
-
-class load_single_brush(bpy.types.Operator, ImportHelper):
- ''' Load an image as a brush texture'''
- bl_idname = "texture.load_single_brush"
- bl_label = "Load Image as Brush"
-
-
- @classmethod
- def poll(cls, context):
- return context.active_object != None
-
- def execute(self, context):
- return load_a_brush(context, self.filepath)
-
-#-------------------------------------------
-
-def loadbrushes(context, filepath):
- if os.path.isdir(filepath):
- directory = filepath
-
- else:
- #is a file, find parent directory
- li = filepath.split(os.sep)
- directory = filepath.rstrip(li[-1])
-
-
- files = os.listdir(directory)
- for f in files:
- try:
- fn = f[3:]
- #create image and load...
- img = bpy.data.images.load(filepath = directory +os.sep + f)
- img.use_fake_user =True
-
- #create a texture
- tex = bpy.data.textures.new(name =fn, type='IMAGE')
- tex.use_fake_user =True
- #tex.use_calculate_alpha = True
-
- #link the img to the texture
- tex.image = img
-
- except:
- print(f,'is not image?')
- continue
- return {'FINISHED'}
-
-
-
-
-class ImportBrushes(bpy.types.Operator, ImportHelper):
- ''' Load a directory of images as brush textures '''
- bl_idname = "texture.load_brushes"
- bl_label = "Load brushes directory"
-
-
- @classmethod
- def poll(cls, context):
- return context.active_object != None
-
- def execute(self, context):
- return loadbrushes(context, self.filepath)
-
-#-------------------------------------------------------------------
-
-class OBJECT_PT_LoadBrushes(bpy.types.Panel):
- bl_label = "Load Brush images"
- bl_space_type = "VIEW_3D"
- bl_region_type = "TOOLS"
- #bl_context = "texturepaint"
-
- @classmethod
- def poll(cls, context):
- return (context.sculpt_object or context.image_paint_object)
-
- def draw(self, context):
- layout = self.layout
- row = layout.row()
- row.operator('texture.load_brushes')
- row = layout.row()
- row.operator('texture.load_single_brush')
-
-
-#======================================================================
-
-
-
-
-
-class OBJECT_PT_Texture_paint_layers(bpy.types.Panel):
- bl_label = "Texture Paint Layers"
- bl_space_type = "VIEW_3D"
- bl_region_type = "UI"
- #bl_context = "texturepaint"
-
- @classmethod
- def poll(cls, context):
- return (context.image_paint_object)
-
- def draw(self, context):
- layout = self.layout
-
- ob = bpy.context.image_paint_object
- if ob:
- me = ob.data
- mat = ob.active_material
- if not mat:
- row = layout.row()
- row.label(' Add a Material first!', icon = 'ERROR')
- else:
- row = layout.row()
- row.template_list(ob, "material_slots", ob,
- "active_material_index", rows=2 )
-
-
-
- #list Paintable textures
- #TODO add filter for channel type
- i = -1
- for t in mat.texture_slots:
- i+=1
- try:
- if t.texture.type =='IMAGE':
- row = layout.row(align= True)
- if t.texture == mat.active_texture:
- ai = 'BRUSH_DATA'
- else:
- ai = 'BLANK1'
- row.operator('object.set_active_paint_layer',
- text = "", icon = ai).tex_index =i
- row.prop(t.texture,'name', text = "")
-
-
- #Visibility
- if t.use:
- ic = 'RESTRICT_VIEW_OFF'
- else:
- ic = 'RESTRICT_VIEW_ON'
- row.prop(t,'use', text = "",icon = ic)
- except:
- continue
-
-
-
-
-
-
- ts = mat.texture_slots[mat.active_texture_index]
-
- if ts:
- row = layout.row()
-
-
-
-
- col = layout.column(align =True)
- col.label('Active Properties:', icon = 'BRUSH_DATA')
-
- #use if rather than elif... can be mapped to multiple things
- if ts.use_map_diffuse:
- col.prop(ts,'diffuse_factor', slider = True)
- if ts.use_map_color_diffuse:
- col.prop(ts,'diffuse_color_factor', slider = True)
- if ts.use_map_alpha:
- col.prop(ts,'alpha_factor', slider = True)
- if ts.use_map_translucency:
- col.prop(ts,'translucency_factor', slider = True)
- if ts.use_map_specular:
- col.prop(ts,'specular_factor', slider = True)
- if ts.use_map_color_spec:
- col.prop(ts,'specular_color_factor', slider = True)
- if ts.use_map_hardness:
- col.prop(ts,'hardness_factor', slider = True)
-
- if ts.use_map_normal:
- col.prop(ts,'normal_factor', slider = True)
- if ts.use_map_warp:
- col.prop(ts,'warp_factor', slider = True)
- if ts.use_map_displacement:
- col.prop(ts,'displacement_factor', slider = True)
-
- if ts.use_map_ambient:
- col.prop(ts,'ambient_factor', slider = True)
- if ts.use_map_emit:
- col.prop(ts,'emit_factor', slider = True)
- if ts.use_map_mirror:
- col.prop(ts,'mirror_factor', slider = True)
- if ts.use_map_raymir:
- col.prop(ts,'raymir_factor', slider = True)
-
-
- col.prop(ts,'blend_type',text='')
-
- else:
- row=layout.row()
- row.label('No paint layers in material', icon = 'ERROR')
-
-#
-# row = layout.row()
-# row.label('')
-# row = layout.row()
-# row.label('WIP: Use the X to delete!:')
-# row = layout.row()
-# row.template_ID(mat, "active_texture", new="texture.new")
-
-
-class OBJECT_PT_Texture_paint_add(bpy.types.Panel):
- bl_label = "Add Paint Layers"
- bl_space_type = "VIEW_3D"
- bl_region_type = "UI"
- #bl_context = "texturepaint"
-
- @classmethod
- def poll(cls, context):
- return (context.image_paint_object)
-
- def draw(self, context):
- layout = self.layout
-
- ob = bpy.context.image_paint_object
- if ob:
- me = ob.data
- mat = ob.active_material
-
- if mat:
-
- #row = layout.row()
- col = layout.column(align =True)
-
-
- col.operator('object.add_paint_layer',
- text = "Add Color").ttype = 'COLOR'
- col.operator('object.add_paint_layer',
- text = "Add Bump").ttype = 'NORMAL'
-
- col = layout.column(align =True)
- col.operator('object.add_paint_layer',
- text = "Add Specular").ttype = 'SPECULAR'
- col.operator('object.add_paint_layer',
- text = "Add Spec Col").ttype = 'SPEC_COL'
- col.operator('object.add_paint_layer',
- text = "Add Hardness").ttype = 'HARDNESS'
-
- col = layout.column(align =True)
- col.operator('object.add_paint_layer',
- text = "Add Alpha").ttype = 'ALPHA'
- col.operator('object.add_paint_layer',
- text = "Add Translucency").ttype = 'TRANSLUCENCY'
-
-# col = layout.column(align =True)
-# col.operator('object.add_paint_layer',
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list