[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60416] trunk/blender/source/blender/ blenkernel/intern/mesh.c: Fix [#36841] UV-Maps cannot be renamed in EditMode

Bastien Montagne montagne29 at wanadoo.fr
Sun Sep 29 08:47:08 CEST 2013


Revision: 60416
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60416
Author:   mont29
Date:     2013-09-29 06:47:07 +0000 (Sun, 29 Sep 2013)
Log Message:
-----------
Fix [#36841] UV-Maps cannot be renamed in EditMode

Own error in r60260, in edit mode we need to use bmesh's cdata!

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60260

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mesh.c

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-09-29 02:07:48 UTC (rev 60415)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-09-29 06:47:07 UTC (rev 60416)
@@ -628,13 +628,25 @@
 bool BKE_mesh_uv_cdlayer_rename_index(Mesh *me, const int poly_index, const int loop_index, const int face_index,
                                       const char *new_name, const bool do_tessface)
 {
-	CustomData *pdata = &me->pdata, *ldata = &me->ldata, *fdata = &me->fdata;
-	CustomDataLayer *cdlp = &pdata->layers[poly_index];
-	CustomDataLayer *cdlu = &ldata->layers[loop_index];
-	CustomDataLayer *cdlf = do_tessface ? &fdata->layers[face_index] : NULL;
+	CustomData *pdata, *ldata, *fdata;
+	CustomDataLayer *cdlp, *cdlu, *cdlf;
 	const int step = do_tessface ? 3 : 2;
 	int i;
 
+	if (me->edit_btmesh) {
+		pdata = &me->edit_btmesh->bm->pdata;
+		ldata = &me->edit_btmesh->bm->ldata;
+		fdata = NULL;  /* No tessellated data in BMesh! */
+	}
+	else {
+		pdata = &me->pdata;
+		ldata = &me->ldata;
+		fdata = &me->fdata;
+	}
+	cdlp = &pdata->layers[poly_index];
+	cdlu = &ldata->layers[loop_index];
+	cdlf = do_tessface ? &fdata->layers[face_index] : NULL;
+
 	BLI_strncpy(cdlp->name, new_name, sizeof(cdlp->name));
 	CustomData_set_layer_unique_name(pdata, cdlp - pdata->layers);
 
@@ -667,7 +679,7 @@
 	const int fidx_start = do_tessface ? CustomData_get_layer_index(fdata, CD_MTFACE) : -1;
 	int pidx, lidx, fidx;
 
-	do_tessface = (do_tessface && fdata->totlayer);
+	do_tessface = (do_tessface && fdata->totlayer && !me->edit_btmesh);
 	pidx = CustomData_get_named_layer(pdata, CD_MTEXPOLY, old_name);
 	lidx = CustomData_get_named_layer(ldata, CD_MLOOPUV, old_name);
 	fidx = do_tessface ? CustomData_get_named_layer(fdata, CD_MTFACE, old_name) : -1;




More information about the Bf-blender-cvs mailing list