[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36687] trunk/blender/source/blender/ editors/sculpt_paint/sculpt.c: Fix #27390: Shift for activating Smooth Brush broken in sculpt

Sergey Sharybin g.ulairi at gmail.com
Sat May 14 14:32:15 CEST 2011


Revision: 36687
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36687
Author:   nazgul
Date:     2011-05-14 12:32:15 +0000 (Sat, 14 May 2011)
Log Message:
-----------
Fix #27390: Shift for activating Smooth Brush broken in sculpt

Smooth brushes at requires face map which haven't used to be created for
simple meshes (without modifiers).

Use corrected need_fmap flag at stroke initialization, so face map
is created properly for "temporary" smooth brushes and simple meshes.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/sculpt_paint/sculpt.c

Modified: trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/sculpt.c	2011-05-14 10:35:11 UTC (rev 36686)
+++ trunk/blender/source/blender/editors/sculpt_paint/sculpt.c	2011-05-14 12:32:15 UTC (rev 36687)
@@ -3287,19 +3287,24 @@
 	sculpt_update_tex(sd, ss);
 }
 
-static int sculpt_brush_stroke_init(bContext *C, ReportList *UNUSED(reports))
+static int sculpt_brush_stroke_init(bContext *C, wmOperator *op)
 {
 	Scene *scene= CTX_data_scene(C);
 	Object *ob= CTX_data_active_object(C);
 	Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
 	SculptSession *ss = CTX_data_active_object(C)->sculpt;
 	Brush *brush = paint_brush(&sd->paint);
+	int mode= RNA_enum_get(op->ptr, "mode");
+	int is_smooth= 0;
 
 	view3d_operator_needs_opengl(C);
 	sculpt_brush_init_tex(sd, ss);
 
-	sculpt_update_mesh_elements(scene, sd, ob, brush->sculpt_tool == SCULPT_TOOL_SMOOTH);
+	is_smooth|= mode == BRUSH_STROKE_SMOOTH;
+	is_smooth|= brush->sculpt_tool == SCULPT_TOOL_SMOOTH;
 
+	sculpt_update_mesh_elements(scene, sd, ob, is_smooth);
+
 	return 1;
 }
 
@@ -3514,7 +3519,7 @@
 	struct PaintStroke *stroke;
 	int ignore_background_click;
 
-	if(!sculpt_brush_stroke_init(C, op->reports))
+	if(!sculpt_brush_stroke_init(C, op))
 		return OPERATOR_CANCELLED;
 
 	stroke = paint_stroke_new(C, sculpt_stroke_get_location,
@@ -3543,7 +3548,7 @@
 
 static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op)
 {
-	if(!sculpt_brush_stroke_init(C, op->reports))
+	if(!sculpt_brush_stroke_init(C, op))
 		return OPERATOR_CANCELLED;
 
 	op->customdata = paint_stroke_new(C, sculpt_stroke_get_location, sculpt_stroke_test_start,




More information about the Bf-blender-cvs mailing list