[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21906] branches/blender2.5/blender: 2.5: Painting
Brecht Van Lommel
brecht at blender.org
Sun Jul 26 00:31:02 CEST 2009
Revision: 21906
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21906
Author: blendix
Date: 2009-07-26 00:31:02 +0200 (Sun, 26 Jul 2009)
Log Message:
-----------
2.5: Painting
Various fixes for painting, sculpting and particle edit, still
much to be done...
* Move RNA paint and sculpt structs into rna_sculpt_paint.c,
* Added Particle Edit RNA.
* Some tweaks to existing Paint RNA.
* Put texture paint and particle edit object in context.
* Fix some errors in the brush layout, properly doing None
checks, fixing some wrong property identifiers.
* Added tool enum for texture paint and particle edit in panels.
* Allow editing brush textures in the texture buttons, still with
a stupid toggle, ideas for how to make the connection better are
welcome.
Modified Paths:
--------------
branches/blender2.5/blender/release/ui/buttons_texture.py
branches/blender2.5/blender/release/ui/space_view3d_toolbar.py
branches/blender2.5/blender/source/blender/blenkernel/intern/image.c
branches/blender2.5/blender/source/blender/blenlib/BLI_arithb.h
branches/blender2.5/blender/source/blender/blenlib/intern/arithb.c
branches/blender2.5/blender/source/blender/editors/physics/editparticle.c
branches/blender2.5/blender/source/blender/editors/screen/screen_context.c
branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_toolbar.c
branches/blender2.5/blender/source/blender/makesdna/DNA_brush_types.h
branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h
branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_brush.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_define.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_internal.h
branches/blender2.5/blender/source/blender/makesrna/intern/rna_scene.c
Added Paths:
-----------
branches/blender2.5/blender/source/blender/makesrna/intern/rna_sculpt_paint.c
Removed Paths:
-------------
branches/blender2.5/blender/source/blender/makesrna/intern/rna_vpaint.c
Modified: branches/blender2.5/blender/release/ui/buttons_texture.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_texture.py 2009-07-25 22:22:47 UTC (rev 21905)
+++ branches/blender2.5/blender/release/ui/buttons_texture.py 2009-07-25 22:31:02 UTC (rev 21906)
@@ -19,6 +19,7 @@
ma = context.material
la = context.lamp
wo = context.world
+ br = context.brush
if ma:
layout.template_preview(tex, parent=ma)
@@ -26,6 +27,8 @@
layout.template_preview(tex, parent=la)
elif wo:
layout.template_preview(tex, parent=wo)
+ elif br:
+ layout.template_preview(tex, parent=br)
else:
layout.template_preview(tex)
@@ -34,7 +37,7 @@
__no_header__ = True
def poll(self, context):
- return (context.material or context.world or context.lamp or context.texture)
+ return (context.material or context.world or context.lamp or context.brush or context.texture)
def draw(self, context):
layout = self.layout
@@ -43,10 +46,11 @@
ma = context.material
la = context.lamp
wo = context.world
+ br = context.brush
space = context.space_data
slot = context.texture_slot
- if ma or la or wo:
+ if ma or la or wo or br:
row = layout.row()
if ma:
row.template_list(ma, "textures", ma, "active_texture_index", type="ICONS")
@@ -54,21 +58,28 @@
row.template_list(la, "textures", la, "active_texture_index", type="ICONS")
elif wo:
row.template_list(wo, "textures", wo, "active_texture_index", type="ICONS")
+ elif br:
+ row.template_list(br, "textures", br, "active_texture_index", type="ICONS")
split = layout.split(percentage=0.65)
- if ma or la or wo:
+ if ma or la or wo or br:
if slot:
split.template_ID(slot, "texture", new="texture.new")
else:
split.itemS()
-
elif tex:
split.template_ID(space, "pin_id")
+
+ if not space.pin_id and \
+ (context.sculpt_object or context.vertex_paint_object or \
+ context.weight_paint_object or context.texture_paint_object):
+ split.itemR(space, "brush_texture", text="Brush", toggle=True)
+ else:
split.itemS()
-
- layout.itemS()
+ layout.itemS()
+
if tex:
split = layout.split(percentage=0.2)
@@ -89,32 +100,34 @@
ma = context.material
la = context.lamp
wo = context.world
+ br = context.brush
tex = context.texture_slot
textype = context.texture
- split = layout.split(percentage=0.3)
- col = split.column()
- col.itemL(text="Coordinates:")
- col = split.column()
- col.itemR(tex, "texture_coordinates", text="")
+ if not br:
+ split = layout.split(percentage=0.3)
+ 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':
+ 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="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="")
-
+ 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="")
+
if ma:
split = layout.split(percentage=0.3)
col = split.column()
@@ -147,7 +160,7 @@
__label__ = "Influence"
def poll(self, context):
- return (context.texture_slot and context.texture and context.texture.type != 'NONE')
+ return (context.texture_slot and context.texture and context.texture.type != 'NONE' and (not context.brush))
def draw(self, context):
layout = self.layout
@@ -155,6 +168,7 @@
ma = context.material
la = context.lamp
wo = context.world
+ br = context.brush
textype = context.texture
tex = context.texture_slot
Modified: branches/blender2.5/blender/release/ui/space_view3d_toolbar.py
===================================================================
--- branches/blender2.5/blender/release/ui/space_view3d_toolbar.py 2009-07-25 22:22:47 UTC (rev 21905)
+++ branches/blender2.5/blender/release/ui/space_view3d_toolbar.py 2009-07-25 22:31:02 UTC (rev 21906)
@@ -9,7 +9,6 @@
__context__ = "objectmode"
class VIEW3D_PT_tools_objectmode(View3DPanel):
- __idname__ = "VIEW3D_PT_tools_objectmode"
__label__ = "Object Tools"
def draw(self, context):
@@ -49,7 +48,6 @@
__context__ = "editmode_mesh"
class VIEW3D_PT_tools_editmode_mesh(View3DPanel):
- __idname__ = "VIEW3D_PT_tools_editmode_mesh"
__label__ = "Mesh Tools"
def draw(self, context):
@@ -97,7 +95,6 @@
__context__ = "editmode_curve"
class VIEW3D_PT_tools_editmode_curve(View3DPanel):
- __idname__ = "VIEW3D_PT_tools_editmode_curve"
__label__ = "Curve Tools"
def draw(self, context):
@@ -132,7 +129,6 @@
__context__ = "editmode_surface"
class VIEW3D_PT_tools_editmode_surface(View3DPanel):
- __idname__ = "VIEW3D_PT_tools_editmode_surface"
__label__ = "Surface Tools"
def draw(self, context):
@@ -167,7 +163,6 @@
__context__ = "editmode_text"
class VIEW3D_PT_tools_editmode_text(View3DPanel):
- __idname__ = "VIEW3D_PT_tools_editmode_text"
__label__ = "Text Tools"
def draw(self, context):
@@ -189,7 +184,6 @@
__context__ = "editmode_armature"
class VIEW3D_PT_tools_editmode_armature(View3DPanel):
- __idname__ = "VIEW3D_PT_tools_editmode_armature"
__label__ = "Armature Tools"
def draw(self, context):
@@ -220,7 +214,6 @@
__context__ = "editmode_mball"
class VIEW3D_PT_tools_editmode_mball(View3DPanel):
- __idname__ = "VIEW3D_PT_tools_editmode_mball"
__label__ = "Meta Tools"
def draw(self, context):
@@ -241,7 +234,6 @@
__context__ = "editmode_lattice"
class VIEW3D_PT_tools_editmode_lattice(View3DPanel):
- __idname__ = "VIEW3D_PT_tools_editmode_lattice"
__label__ = "Lattice Tools"
def draw(self, context):
@@ -262,7 +254,6 @@
__context__ = "posemode"
class VIEW3D_PT_tools_posemode(View3DPanel):
- __idname__ = "VIEW3D_PT_tools_posemode"
__label__ = "Pose Tools"
def draw(self, context):
@@ -301,102 +292,104 @@
# ********** default tools for paint modes ****************
-class VIEW3D_PT_tools_brush(bpy.types.Panel):
+class PaintPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
- __label__ = "Brush"
- def brush_src(self, context):
+ def paint_settings(self, context):
ts = context.tool_settings
+
if context.sculpt_object:
return ts.sculpt
- elif context.vpaint_object:
- return ts.vpaint
- elif context.wpaint_object:
- return ts.wpaint
- elif context.tpaint_object:
- return ts.tpaint
+ elif context.vertex_paint_object:
+ return ts.vertex_paint
+ elif context.weight_paint_object:
+ return ts.weight_paint
+ elif context.texture_paint_object:
+ return ts.image_paint
+ elif context.particle_edit_object:
+ return ts.particle_edit
+
return False
+class VIEW3D_PT_tools_brush(PaintPanel):
+ __label__ = "Brush"
+
def poll(self, context):
- return self.brush_src(context)
+ return self.paint_settings(context)
def draw(self, context):
- src = self.brush_src(context)
- brush = src.brush
+ settings = self.paint_settings(context)
+ brush = settings.brush
layout = self.layout
- layout.split().row().template_ID(src, "brush")
+ if context.particle_edit_object:
+ layout.column().itemR(settings, "tool", expand=True)
+ else:
+ layout.split().row().template_ID(settings, "brush")
- if context.sculpt_object:
- layout.column().itemR(brush, "sculpt_tool", expand=True)
+ if brush and not context.particle_edit_object:
+ if context.sculpt_object:
+ layout.column().itemR(brush, "sculpt_tool", expand=True)
- split = layout.split()
-
- col = split.column()
- row = col.row(align=True)
- row.itemR(brush, "size", slider=True)
- row.itemR(brush, "size_pressure", toggle=True, icon='ICON_BRUSH_DATA', text="")
-
- if context.wpaint_object:
- col.itemR(context.tool_settings, "vertex_group_weight", text="Weight", slider=True)
+ elif context.texture_paint_object:
+ col = layout.column(align=True)
+ col.item_enumR(settings, "tool", "DRAW")
+ col.item_enumR(settings, "tool", "SOFTEN")
+ if settings.use_projection:
+ col.item_enumR(settings, "tool", "CLONE")
+ else:
+ col.item_enumR(settings, "tool", "SMEAR")
+
+ split = layout.split()
- col.itemR(brush, "strength", slider=True)
- row = col.row(align=True)
- row.itemR(brush, "falloff", slider=True)
- row.itemR(brush, "falloff_pressure", toggle=True, icon='ICON_BRUSH_DATA', text="")
-
- if context.vpaint_object:
- col.itemR(brush, "color", text="")
- if context.tpaint_object:
+ col = split.column()
row = col.row(align=True)
- row.itemR(brush, "clone_opacity", slider=True, text=Opacity)
- row.itemR(brush, "opacity_pressure", toggle=True, icon='ICON_BRUSH_DATA', text="")
-
- row = col.row(align=True)
- row.itemR(brush, "space", text="")
- rowsub = row.row(align=True)
- rowsub.active = brush.space
- rowsub.itemR(brush, "spacing", text="Spacing", slider=True)
- rowsub.itemR(brush, "spacing_pressure", toggle=True, icon='ICON_BRUSH_DATA', text="")
+ row.itemR(brush, "size", slider=True)
+ row.itemR(brush, "size_pressure", toggle=True, icon='ICON_BRUSH_DATA', text="")
+ if context.weight_paint_object:
+ col.itemR(context.tool_settings, "vertex_group_weight", text="Weight", slider=True)
+
+ col.itemR(brush, "strength", slider=True)
+ row = col.row(align=True)
+ row.itemR(brush, "falloff", slider=True)
+ row.itemR(brush, "falloff_pressure", toggle=True, icon='ICON_BRUSH_DATA', text="")
+ if context.vertex_paint_object:
+ col.itemR(brush, "color", text="")
+ if context.texture_paint_object:
+ row = col.row(align=True)
+ row.itemR(brush, "clone_opacity", slider=True, text="Opacity")
+ row.itemR(brush, "opacity_pressure", toggle=True, icon='ICON_BRUSH_DATA', text="")
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list