[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47231] branches/soc-2012-bratwurst/source /blender/editors/transform: UV transform correction tool

Antony Riakiotakis kalast at gmail.com
Wed May 30 17:14:18 CEST 2012


Revision: 47231
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47231
Author:   psy-fi
Date:     2012-05-30 15:14:18 +0000 (Wed, 30 May 2012)
Log Message:
-----------
UV transform correction tool
=============================
* Made transform somewhat better, but still nt correct.
* Added notifier so that uv editor gets refreshed on transform

Modified Paths:
--------------
    branches/soc-2012-bratwurst/source/blender/editors/transform/transform.c
    branches/soc-2012-bratwurst/source/blender/editors/transform/transform_generics.c

Modified: branches/soc-2012-bratwurst/source/blender/editors/transform/transform.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/transform/transform.c	2012-05-30 14:46:30 UTC (rev 47230)
+++ branches/soc-2012-bratwurst/source/blender/editors/transform/transform.c	2012-05-30 15:14:18 UTC (rev 47231)
@@ -340,7 +340,9 @@
 		// XXX: is this notifier a lame duck?
 		if ((t->animtimer) && IS_AUTOKEY_ON(t->scene))
 			WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, NULL);
-		
+
+		if(t->flag & T_IMAGE_PRESERVE_CALC)
+					WM_event_add_notifier(C, NC_GEOM|ND_DATA, t->obedit->data);
 	}
 	else if (t->spacetype == SPACE_ACTION) {
 		//SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first;

Modified: branches/soc-2012-bratwurst/source/blender/editors/transform/transform_generics.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/transform/transform_generics.c	2012-05-30 14:46:30 UTC (rev 47230)
+++ branches/soc-2012-bratwurst/source/blender/editors/transform/transform_generics.c	2012-05-30 15:14:18 UTC (rev 47231)
@@ -1669,7 +1669,7 @@
 			BM_ITER_ELEM(l, &iter, v, BM_LOOPS_OF_VERT) {
 				float edge_len_init;
 				float edge_len_final;
-//				float edge_uv_len_init;
+				float edge_uv_len_init;
 				float edge_vec_init[3];
 				float edge_vec_final[3];
 				float edge_uv_init[2];
@@ -1696,9 +1696,9 @@
 
 				edge_len_init = len_v3(edge_vec_init);
 				edge_len_final = len_v3(edge_vec_final);
-//				edge_uv_len_init = len_v2(edge_uv_init);
+				edge_uv_len_init = len_v2(edge_uv_init);
 
-				mul_v2_v2fl(uvdiff, edge_uv_init, edge_len_final/edge_len_init);
+				mul_v2_v2fl(uvdiff, edge_uv_init, edge_len_init/edge_len_final);
 				add_v2_v2(uv_tot, uvdiff);
 
 				uv_counter++;
@@ -1708,7 +1708,14 @@
 
 			}
 			mul_v2_fl(uv_tot, 1.0/uv_counter);
-			copy_v2_v2(uvtc->initial_uvs[BM_elem_index_get(v)]->uv, uv_tot);
+			add_v2_v2(uv_tot, uvtc->initial_uvs[BM_elem_index_get(v)]->init_uv);
+
+			BM_ITER_ELEM(l, &iter, v, BM_LOOPS_OF_VERT) {
+				MLoopUV *luv;
+
+				luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
+				copy_v2_v2(luv->uv, uv_tot);
+			}
 		}
 	}
 }




More information about the Bf-blender-cvs mailing list