[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46797] branches/soc-2011-tomato/source/ blender/editors/transform/transform.c: Fix aspect ratio correction for translating motion tracking data

Sergey Sharybin sergey.vfx at gmail.com
Sat May 19 18:55:21 CEST 2012


Revision: 46797
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46797
Author:   nazgul
Date:     2012-05-19 16:55:20 +0000 (Sat, 19 May 2012)
Log Message:
-----------
Fix aspect ratio correction for translating motion tracking data

Still has got some issues when translating masks.

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/editors/transform/transform.c

Modified: branches/soc-2011-tomato/source/blender/editors/transform/transform.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/transform/transform.c	2012-05-19 13:55:54 UTC (rev 46796)
+++ branches/soc-2011-tomato/source/blender/editors/transform/transform.c	2012-05-19 16:55:20 UTC (rev 46797)
@@ -164,6 +164,7 @@
 		View2D *v2d = t->view;
 		float divx, divy;
 		float mulx, muly;
+		float aspx = 1.0f, aspy = 1.0f;
 
 		divx = v2d->mask.xmax-v2d->mask.xmin;
 		divy = v2d->mask.ymax-v2d->mask.ymin;
@@ -181,13 +182,16 @@
 		r_vec[1] = muly * (dy) / divy;
 		r_vec[2] = 0.0f;
 
-		/* TODO - NOT WORKING, this isnt so bad since its only display aspect */
-		if (t->options & CTX_MASK) {
-			float aspx, aspy;
+		if (t->options & CTX_MOVIECLIP) {
+			ED_space_clip_aspect_dimension_aware(t->sa->spacedata.first, &aspx, &aspy);
+		}
+		else if (t->options & CTX_MASK) {
+			/* TODO - NOT WORKING, this isnt so bad since its only display aspect */
 			ED_space_clip_mask_aspect(t->sa->spacedata.first, &aspx, &aspy);
-			r_vec[0] *= aspx;
-			r_vec[1] *= aspy;
 		}
+
+		r_vec[0] *= aspx;
+		r_vec[1] *= aspy;
 	}
 	else {
 		printf("%s: called in an invalid context\n", __func__);
@@ -349,21 +353,17 @@
 	else if ((t->spacetype==SPACE_CLIP) && (t->mode==TFM_TRANSLATION)) {
 		if (t->options & (CTX_MOVIECLIP | CTX_MASK)) {
 			SpaceClip *sc = t->sa->spacedata.first;
-			float aspx, aspy;
+			float aspx = 1.0f, aspy = 1.0f;
 
 			if (t->options & CTX_MOVIECLIP) {
 				ED_space_clip_aspect_dimension_aware(sc, &aspx, &aspy);
-
-				vec[0] *= aspx;
-				vec[1] *= aspy;
 			}
 			else if (t->options & CTX_MASK) {
-				ED_space_clip_aspect(sc, &aspx, &aspy);
 				ED_space_clip_mask_aspect(sc, &aspx, &aspy);
+			}
 
-				vec[0] *= aspx;
-				vec[1] *= aspy;
-			}
+			vec[0] *= aspx;
+			vec[1] *= aspy;
 		}
 	}
 }




More information about the Bf-blender-cvs mailing list