[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53801] trunk/blender/source/blender/ editors/transform: vertex slide was using flipped value, wasnt so noticable unless you types in a value.

Campbell Barton ideasman42 at gmail.com
Tue Jan 15 04:35:51 CET 2013


Revision: 53801
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53801
Author:   campbellbarton
Date:     2013-01-15 03:35:31 +0000 (Tue, 15 Jan 2013)
Log Message:
-----------
vertex slide was using flipped value, wasnt so noticable unless you types in a value.

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-14 21:41:21 UTC (rev 53800)
+++ trunk/blender/source/blender/editors/transform/transform.c	2013-01-15 03:35:31 UTC (rev 53801)
@@ -5839,14 +5839,23 @@
 {
 	VertSlideData *sld = t->customData;
 	TransDataVertSlideVert *sv = &sld->sv[sld->curr_sv_index];
-	int start[2] = {UNPACK2(sv->co_orig_2d)};
-	int end[2]   = {UNPACK2(sv->co_link_orig_2d[sv->co_link_curr])};
-	if (sld->flipped_vtx) {
-		setCustomPoints(t, &t->mouse, start, end);
+	float *co_orig = sv->co_orig_2d;
+	float *co_curr = sv->co_link_orig_2d[sv->co_link_curr];
+	float  co_curr_flip[2];
+
+	sub_v2_v2v2(co_curr_flip, co_curr, co_orig);
+	sub_v2_v2v2(co_curr_flip, co_orig, co_curr_flip);
+
+	{
+		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);
+		}
 	}
-	else {
-		setCustomPoints(t, &t->mouse, end, start);
-	}
 }
 static void calcVertSlideMouseMove(struct TransInfo *t, const int mval[2], const bool is_init)
 {
@@ -6200,15 +6209,14 @@
 	sv = svlist;
 
 	if (sld->is_proportional == TRUE) {
-		const float tperc = perc + 1.0f;
 		for (i = 0; i < sld->totsv; i++, sv++) {
-			interp_v3_v3v3(sv->v->co, sv->co_link_orig_3d[sv->co_link_curr], sv->co_orig_3d, tperc);
+			interp_v3_v3v3(sv->v->co, sv->co_orig_3d, sv->co_link_orig_3d[sv->co_link_curr], perc);
 		}
 	}
 	else {
 		TransDataVertSlideVert *sv_curr = &sld->sv[sld->curr_sv_index];
 		const float edge_len_curr = len_v3v3(sv_curr->co_orig_3d, sv_curr->co_link_orig_3d[sv_curr->co_link_curr]);
-		const float tperc = -perc * edge_len_curr;
+		const float tperc = perc * edge_len_curr;
 
 		for (i = 0; i < sld->totsv; i++, sv++) {
 			float edge_len;

Modified: trunk/blender/source/blender/editors/transform/transform.h
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.h	2013-01-14 21:41:21 UTC (rev 53800)
+++ trunk/blender/source/blender/editors/transform/transform.h	2013-01-15 03:35:31 UTC (rev 53801)
@@ -52,12 +52,7 @@
 struct View3D;
 struct ScrArea;
 struct Scene;
-struct bPose;
 struct bConstraint;
-struct BezTriple;
-struct wmOperatorType;
-struct wmOperator;
-struct wmWindowManager;
 struct wmKeyMap;
 struct wmKeyConfig;
 struct bContext;
@@ -65,7 +60,6 @@
 struct wmTimer;
 struct ARegion;
 struct ReportList;
-struct SmallHash;
 
 typedef struct TransSnapPoint {
 	struct TransSnapPoint *next, *prev;
@@ -685,12 +679,12 @@
 	INPUT_CUSTOM_RATIO
 } MouseInputMode;
 
-void initMouseInput(TransInfo *t, MouseInput *mi, int center[2], int mval[2]);
+void initMouseInput(TransInfo *t, MouseInput *mi, const int center[2], const int mval[2]);
 void initMouseInputMode(TransInfo *t, MouseInput *mi, MouseInputMode mode);
 int handleMouseInput(struct TransInfo *t, struct MouseInput *mi, struct wmEvent *event);
 void applyMouseInput(struct TransInfo *t, struct MouseInput *mi, const int mval[2], float output[3]);
 
-void setCustomPoints(TransInfo *t, MouseInput *mi, int start[2], int end[2]);
+void setCustomPoints(TransInfo *t, MouseInput *mi, const int start[2], const int end[2]);
 void setInputPostFct(MouseInput *mi, void	(*post)(struct TransInfo *t, float values[3]));
 
 /*********************** Generics ********************************/

Modified: trunk/blender/source/blender/editors/transform/transform_input.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_input.c	2013-01-14 21:41:21 UTC (rev 53800)
+++ trunk/blender/source/blender/editors/transform/transform_input.c	2013-01-15 03:35:31 UTC (rev 53801)
@@ -164,7 +164,7 @@
 	output[0] = dot_v3v3(t->viewinv[1], vec) * 2.0f;
 }
 
-void setCustomPoints(TransInfo *UNUSED(t), MouseInput *mi, int start[2], int end[2])
+void setCustomPoints(TransInfo *UNUSED(t), MouseInput *mi, const int start[2], const int end[2])
 {
 	int *data;
 
@@ -275,7 +275,7 @@
 	output[0] = *angle;
 }
 
-void initMouseInput(TransInfo *UNUSED(t), MouseInput *mi, int center[2], int mval[2])
+void initMouseInput(TransInfo *UNUSED(t), MouseInput *mi, const int center[2], const int mval[2])
 {
 	mi->factor = 0;
 	mi->precision = 0;




More information about the Bf-blender-cvs mailing list