[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56238] trunk/blender: Fix missing feature : fit mask stencil to aspect.

Antony Riakiotakis kalast at gmail.com
Tue Apr 23 13:34:24 CEST 2013


Revision: 56238
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56238
Author:   psy-fi
Date:     2013-04-23 11:34:18 +0000 (Tue, 23 Apr 2013)
Log Message:
-----------
Fix missing feature: fit mask stencil to aspect.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/properties_paint_common.py
    trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c

Modified: trunk/blender/release/scripts/startup/bl_ui/properties_paint_common.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/properties_paint_common.py	2013-04-23 11:02:36 UTC (rev 56237)
+++ trunk/blender/release/scripts/startup/bl_ui/properties_paint_common.py	2013-04-23 11:34:18 UTC (rev 56238)
@@ -126,6 +126,9 @@
     layout.row().prop(mask_tex_slot, "mask_map_mode", text="")
     layout.separator()
 
+    if mask_tex_slot.map_mode == 'STENCIL':
+        layout.operator("brush.stencil_fit_image_aspect").mask = True
+
     if brush.mask_texture:
         layout.label(text="Mask Mapping:")
         col = layout.column()

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c	2013-04-23 11:02:36 UTC (rev 56237)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c	2013-04-23 11:34:18 UTC (rev 56238)
@@ -718,9 +718,15 @@
 {
 	Paint *paint = BKE_paint_get_active_from_context(C);
 	Brush *br = BKE_paint_brush(paint);
-	Tex *tex = (br)? br->mtex.tex : NULL;
 	bool use_scale = RNA_boolean_get(op->ptr, "use_scale");
 	bool use_repeat = RNA_boolean_get(op->ptr, "use_repeat");
+	bool do_mask = RNA_boolean_get(op->ptr, "mask");
+	Tex *tex = NULL;
+	MTex *mtex = NULL;
+	if (br) {
+		mtex = do_mask ? &br->mask_mtex : &br->mtex;
+		tex = mtex->tex;
+	}
 
 	if (tex && tex->type == TEX_IMAGE && tex->ima) {
 		float aspx, aspy;
@@ -729,8 +735,8 @@
 		ED_image_get_uv_aspect(ima, NULL, &aspx, &aspy);
 
 		if (use_scale) {
-			aspx *= br->mtex.size[0];
-			aspy *= br->mtex.size[1];
+			aspx *= mtex->size[0];
+			aspy *= mtex->size[1];
 		}
 
 		if (use_repeat && tex->extend == TEX_REPEAT) {
@@ -739,12 +745,25 @@
 		}
 
 		orig_area = aspx * aspy;
-		stencil_area = br->stencil_dimension[0] * br->stencil_dimension[1];
 
+		if (do_mask) {
+			stencil_area = br->mask_stencil_dimension[0] * br->mask_stencil_dimension[1];
+		}
+		else {
+			stencil_area = br->stencil_dimension[0] * br->stencil_dimension[1];
+		}
+
 		factor = sqrt(stencil_area / orig_area);
 
-		br->stencil_dimension[0] = factor * aspx;
-		br->stencil_dimension[1] = factor * aspy;
+		if (do_mask) {
+			br->mask_stencil_dimension[0] = factor * aspx;
+			br->mask_stencil_dimension[1] = factor * aspy;
+
+		}
+		else {
+			br->stencil_dimension[0] = factor * aspx;
+			br->stencil_dimension[1] = factor * aspy;
+		}
 	}
 
 	WM_event_add_notifier(C, NC_WINDOW, NULL);
@@ -769,6 +788,7 @@
 
 	RNA_def_boolean(ot->srna, "use_repeat", 1, "Use Repeat", "Use repeat mapping values");
 	RNA_def_boolean(ot->srna, "use_scale", 1, "Use Scale", "Use texture scale values");
+	RNA_def_boolean(ot->srna, "mask", 0, "Modify Mask Stencil", "Modify either the primary or mask stencil");
 }
 
 




More information about the Bf-blender-cvs mailing list