[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42969] branches/bmesh/blender/source/ blender/modifiers/intern/MOD_mirror.c: bmesh mirror modifier wasn' t doing UV mirror at all.
Campbell Barton
ideasman42 at gmail.com
Thu Dec 29 08:29:55 CET 2011
Revision: 42969
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42969
Author: campbellbarton
Date: 2011-12-29 07:29:44 +0000 (Thu, 29 Dec 2011)
Log Message:
-----------
bmesh mirror modifier wasn't doing UV mirror at all.
Modified Paths:
--------------
branches/bmesh/blender/source/blender/modifiers/intern/MOD_mirror.c
Modified: branches/bmesh/blender/source/blender/modifiers/intern/MOD_mirror.c
===================================================================
--- branches/bmesh/blender/source/blender/modifiers/intern/MOD_mirror.c 2011-12-29 06:44:51 UTC (rev 42968)
+++ branches/bmesh/blender/source/blender/modifiers/intern/MOD_mirror.c 2011-12-29 07:29:44 UTC (rev 42969)
@@ -231,6 +231,25 @@
ml->e += dm->numEdgeData;
}
+ /* handle uvs,
+ * let tessface recalc handle updating the MTFace data */
+ if (mmd->flag & (MOD_MIR_MIRROR_U | MOD_MIR_MIRROR_V)) {
+ const int do_mirr_u= (mmd->flag & MOD_MIR_MIRROR_U) != 0;
+ const int do_mirr_v= (mmd->flag & MOD_MIR_MIRROR_V) != 0;
+
+ const int totuv = CustomData_number_of_layers(&cddm->loopData, CD_MLOOPUV);
+
+ for (a=0; a<totuv; a++) {
+ MLoopUV *dmloopuv = CustomData_get_layer_n(&cddm->loopData, CD_MLOOPUV, a);
+ int j = dm->numLoopData;
+ dmloopuv += j; /* second set of loops only */
+ for ( ; i-- > 0; dmloopuv++) {
+ if(do_mirr_u) dmloopuv->uv[0] = 1.0f - dmloopuv->uv[0];
+ if(do_mirr_v) dmloopuv->uv[1] = 1.0f - dmloopuv->uv[1];
+ }
+ }
+ }
+
CDDM_recalc_tesselation(cddm);
/*handle vgroup stuff*/
More information about the Bf-blender-cvs
mailing list