[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