[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47465] trunk/blender: shrink/ fatten transform for mask - adjusts the feather weight.

Campbell Barton ideasman42 at gmail.com
Tue Jun 5 16:13:29 CEST 2012


Revision: 47465
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47465
Author:   campbellbarton
Date:     2012-06-05 14:13:14 +0000 (Tue, 05 Jun 2012)
Log Message:
-----------
shrink/fatten transform for mask - adjusts the feather weight.
works in proportional editmode too.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_clip.py
    trunk/blender/source/blender/editors/include/ED_transform.h
    trunk/blender/source/blender/editors/mask/mask_edit.c
    trunk/blender/source/blender/editors/transform/transform.c
    trunk/blender/source/blender/editors/transform/transform.h
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/editors/transform/transform_ops.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_clip.py	2012-06-05 13:13:17 UTC (rev 47464)
+++ trunk/blender/release/scripts/startup/bl_ui/space_clip.py	2012-06-05 14:13:14 UTC (rev 47465)
@@ -403,6 +403,8 @@
         col.operator("transform.translate")
         col.operator("transform.rotate")
         col.operator("transform.resize", text="Scale")
+        props = col.operator("transform.transform", text="Shrink/Fatten")
+        props.mode = 'MASK_SHRINKFATTEN'
 
         col = layout.column(align=True)
         col.label(text="Spline:")
@@ -1253,6 +1255,8 @@
         layout.operator("transform.translate")
         layout.operator("transform.rotate")
         layout.operator("transform.resize")
+        props = layout.operator("transform.transform", text="Shrink/Fatten")
+        props.mode = 'MASK_SHRINKFATTEN'
 
 
 class CLIP_MT_camera_presets(Menu):

Modified: trunk/blender/source/blender/editors/include/ED_transform.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_transform.h	2012-06-05 13:13:17 UTC (rev 47464)
+++ trunk/blender/source/blender/editors/include/ED_transform.h	2012-06-05 14:13:14 UTC (rev 47465)
@@ -71,6 +71,7 @@
 	TFM_BONESIZE,
 	TFM_BONE_ENVELOPE,
 	TFM_CURVE_SHRINKFATTEN,
+	TFM_MASK_SHRINKFATTEN,
 	TFM_BONE_ROLL,
 	TFM_TIME_TRANSLATE,
 	TFM_TIME_SLIDE,

Modified: trunk/blender/source/blender/editors/mask/mask_edit.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_edit.c	2012-06-05 13:13:17 UTC (rev 47464)
+++ trunk/blender/source/blender/editors/mask/mask_edit.c	2012-06-05 14:13:14 UTC (rev 47465)
@@ -296,7 +296,9 @@
 	WM_keymap_add_item(keymap, "MASK_OT_cyclic_toggle", CKEY, KM_PRESS, KM_ALT, 0);
 	WM_keymap_add_item(keymap, "MASK_OT_slide_point", LEFTMOUSE, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "MASK_OT_handle_type_set", VKEY, KM_PRESS, 0, 0);
-	WM_keymap_add_item(keymap, "MASK_OT_feather_weight_clear", SKEY, KM_PRESS, KM_ALT, 0);
+	// WM_keymap_add_item(keymap, "MASK_OT_feather_weight_clear", SKEY, KM_PRESS, KM_ALT, 0);
+	/* ... matches curve editmode */
+	RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", TFM_MASK_SHRINKFATTEN);
 
 	/* relationships */
 	WM_keymap_add_item(keymap, "MASK_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c	2012-06-05 13:13:17 UTC (rev 47464)
+++ trunk/blender/source/blender/editors/transform/transform.c	2012-06-05 14:13:14 UTC (rev 47465)
@@ -1720,6 +1720,9 @@
 	case TFM_CURVE_SHRINKFATTEN:
 		initCurveShrinkFatten(t);
 		break;
+	case TFM_MASK_SHRINKFATTEN:
+		initMaskShrinkFatten(t);
+		break;
 	case TFM_TRACKBALL:
 		initTrackball(t);
 		break;
@@ -3925,6 +3928,75 @@
 	return 1;
 }
 
+
+void initMaskShrinkFatten(TransInfo *t)
+{
+	t->mode = TFM_MASK_SHRINKFATTEN;
+	t->transform = MaskShrinkFatten;
+
+	initMouseInputMode(t, &t->mouse, INPUT_SPRING);
+
+	t->idx_max = 0;
+	t->num.idx_max = 0;
+	t->snap[0] = 0.0f;
+	t->snap[1] = 0.1f;
+	t->snap[2] = t->snap[1] * 0.1f;
+
+	t->num.increment = t->snap[1];
+
+	t->flag |= T_NO_ZERO;
+	t->num.flag |= NUM_NO_ZERO;
+
+	t->flag |= T_NO_CONSTRAINT;
+}
+
+int MaskShrinkFatten(TransInfo *t, const int UNUSED(mval[2]))
+{
+	TransData *td = t->data;
+	float ratio;
+	int i;
+	char str[50];
+
+	ratio = t->values[0];
+
+	snapGrid(t, &ratio);
+
+	applyNumInput(&t->num, &ratio);
+
+	/* header print for NumInput */
+	if (hasNumInput(&t->num)) {
+		char c[20];
+
+		outputNumInput(&(t->num), c);
+		sprintf(str, "Shrink/Fatten: %s", c);
+	}
+	else {
+		sprintf(str, "Shrink/Fatten: %3f", ratio);
+	}
+
+	for (i = 0 ; i < t->total; i++, td++) {
+		if (td->flag & TD_NOACTION)
+			break;
+
+		if (td->flag & TD_SKIP)
+			continue;
+
+		if (td->val) {
+			*td->val = td->ival * ratio;
+			/* apply PET */
+			*td->val = (*td->val * td->factor) + ((1.0f - td->factor) * td->ival);
+
+			if (*td->val <= 0.0f) *td->val = 0.001f;
+		}
+	}
+
+	recalcData(t);
+
+	ED_area_headerprint(t->sa, str);
+
+	return 1;
+}
+
 /* ************************** PUSH/PULL *************************** */
 
 void initPushPull(TransInfo *t)

Modified: trunk/blender/source/blender/editors/transform/transform.h
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.h	2012-06-05 13:13:17 UTC (rev 47464)
+++ trunk/blender/source/blender/editors/transform/transform.h	2012-06-05 14:13:14 UTC (rev 47465)
@@ -494,6 +494,9 @@
 void initCurveShrinkFatten(TransInfo *t);
 int CurveShrinkFatten(TransInfo *t, const int mval[2]);
 
+void initMaskShrinkFatten(TransInfo *t);
+int MaskShrinkFatten(TransInfo *t, const int mval[2]);
+
 void initTrackball(TransInfo *t);
 int Trackball(TransInfo *t, const int mval[2]);
 

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2012-06-05 13:13:17 UTC (rev 47464)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2012-06-05 14:13:14 UTC (rev 47465)
@@ -5887,9 +5887,17 @@
 			memset(td->axismtx, 0, sizeof(td->axismtx));
 			td->axismtx[2][2] = 1.0f;
 
-			td->ext= NULL;
-			td->val= NULL;
+			td->ext = NULL;
 
+			if (i == 1) {
+				/* scaling weights */
+				td->val = &bezt->weight;
+				td->ival = *td->val;
+			}
+			else {
+				td->val = NULL;
+			}
+
 			if (is_sel_any) {
 				td->flag |= TD_SELECTED;
 			}

Modified: trunk/blender/source/blender/editors/transform/transform_ops.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_ops.c	2012-06-05 13:13:17 UTC (rev 47464)
+++ trunk/blender/source/blender/editors/transform/transform_ops.c	2012-06-05 14:13:14 UTC (rev 47465)
@@ -135,6 +135,7 @@
 	{TFM_BONESIZE, "BONE_SIZE", 0, "Bonesize", ""},
 	{TFM_BONE_ENVELOPE, "BONE_ENVELOPE", 0, "Bone_Envelope", ""},
 	{TFM_CURVE_SHRINKFATTEN, "CURVE_SHRINKFATTEN", 0, "Curve_Shrinkfatten", ""},
+	{TFM_MASK_SHRINKFATTEN, "MASK_SHRINKFATTEN", 0, "Mask_Shrinkfatten", ""},
 	{TFM_BONE_ROLL, "BONE_ROLL", 0, "Bone_Roll", ""},
 	{TFM_TIME_TRANSLATE, "TIME_TRANSLATE", 0, "Time_Translate", ""},
 	{TFM_TIME_SLIDE, "TIME_SLIDE", 0, "Time_Slide", ""},




More information about the Bf-blender-cvs mailing list