[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54243] trunk/blender/source/blender/ editors/transform: fix error with flipped vertex slide failing, also fix bug where you could be flipped and in proportional vertex slide mode .

Campbell Barton ideasman42 at gmail.com
Thu Jan 31 23:18:39 CET 2013


Revision: 54243
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54243
Author:   campbellbarton
Date:     2013-01-31 22:18:37 +0000 (Thu, 31 Jan 2013)
Log Message:
-----------
fix error with flipped vertex slide failing, also fix bug where you could be flipped and in proportional vertex slide mode.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform.c
    trunk/blender/source/blender/editors/transform/transform.h
    trunk/blender/source/blender/editors/transform/transform_input.c

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c	2013-01-31 21:56:14 UTC (rev 54242)
+++ trunk/blender/source/blender/editors/transform/transform.c	2013-01-31 22:18:37 UTC (rev 54243)
@@ -5625,7 +5625,7 @@
 
 	/* set custom point first if you want value to be initialized by init */
 	setCustomPoints(t, &t->mouse, sld->end, sld->start);
-	initMouseInputMode(t, &t->mouse, INPUT_CUSTOM_RATIO);
+	initMouseInputMode(t, &t->mouse, INPUT_CUSTOM_RATIO_FLIP);
 	
 	t->idx_max = 0;
 	t->num.idx_max = 0;
@@ -5876,20 +5876,15 @@
 	TransDataVertSlideVert *sv = &sld->sv[sld->curr_sv_index];
 	float *co_orig = sv->co_orig_2d;
 	float *co_curr = sv->co_link_orig_2d[sv->co_link_curr];
-	float  co_curr_flip[2];
+	const int start[2] = {co_orig[0], co_orig[1]};
+	const int end[2]   = {co_curr[0], co_curr[1]};
 
-	flip_v2_v2v2(co_curr_flip, co_orig, co_curr);
-
-	{
-		const int start[2] = {co_orig[0], co_orig[1]};
-		const int end[2]   = {co_curr_flip[0], co_curr_flip[1]};
-		if (!sld->flipped_vtx) {
-			setCustomPoints(t, &t->mouse, end, start);
-		}
-		else {
-			setCustomPoints(t, &t->mouse, start, end);
-		}
+	if (sld->flipped_vtx && sld->is_proportional == false) {
+		setCustomPoints(t, &t->mouse, start, end);
 	}
+	else {
+		setCustomPoints(t, &t->mouse, end, start);
+	}
 }
 
 /**
@@ -6144,16 +6139,17 @@
 				case EKEY:
 					if (event->val == KM_PRESS) {
 						sld->is_proportional = !sld->is_proportional;
+						if (sld->flipped_vtx) {
+							calcVertSlideCustomPoints(t);
+						}
 						return 1;
 					}
 					break;
 				case FKEY:
 				{
 					if (event->val == KM_PRESS) {
-						if (sld->is_proportional == FALSE) {
-							sld->flipped_vtx = !sld->flipped_vtx;
-							calcVertSlideCustomPoints(t);
-						}
+						sld->flipped_vtx = !sld->flipped_vtx;
+						calcVertSlideCustomPoints(t);
 						return 1;
 					}
 					break;

Modified: trunk/blender/source/blender/editors/transform/transform.h
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.h	2013-01-31 21:56:14 UTC (rev 54242)
+++ trunk/blender/source/blender/editors/transform/transform.h	2013-01-31 22:18:37 UTC (rev 54243)
@@ -677,7 +677,8 @@
 	INPUT_HORIZONTAL_ABSOLUTE,
 	INPUT_VERTICAL_RATIO,
 	INPUT_VERTICAL_ABSOLUTE,
-	INPUT_CUSTOM_RATIO
+	INPUT_CUSTOM_RATIO,
+	INPUT_CUSTOM_RATIO_FLIP
 } MouseInputMode;
 
 void initMouseInput(TransInfo *t, MouseInput *mi, const int center[2], const int mval[2]);

Modified: trunk/blender/source/blender/editors/transform/transform_input.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_input.c	2013-01-31 21:56:14 UTC (rev 54242)
+++ trunk/blender/source/blender/editors/transform/transform_input.c	2013-01-31 22:18:37 UTC (rev 54243)
@@ -180,7 +180,7 @@
 	data[3] = end[1];
 }
 
-static void InputCustomRatio(TransInfo *UNUSED(t), MouseInput *mi, const int mval[2], float output[3])
+static void InputCustomRatioFlip(TransInfo *UNUSED(t), MouseInput *mi, const int mval[2], float output[3])
 {
 	double length;
 	double distance;
@@ -213,6 +213,12 @@
 	}
 }
 
+static void InputCustomRatio(TransInfo *t, MouseInput *mi, const int mval[2], float output[3])
+{
+	InputCustomRatioFlip(t, mi, mval, output);
+	output[0] = -output[0];
+}
+
 static void InputAngle(TransInfo *UNUSED(t), MouseInput *mi, const int mval[2], float output[3])
 {
 	double dx2 = mval[0] - mi->center[0];
@@ -358,6 +364,10 @@
 			mi->apply = InputCustomRatio;
 			t->helpline = HLP_NONE;
 			break;
+		case INPUT_CUSTOM_RATIO_FLIP:
+			mi->apply = InputCustomRatioFlip;
+			t->helpline = HLP_NONE;
+			break;
 		case INPUT_NONE:
 		default:
 			mi->apply = NULL;




More information about the Bf-blender-cvs mailing list