[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53692] trunk/blender/source/blender/ editors/transform/transform_conversions.c: transforming verts was getting the bevel weight for each vertex even if bevel-weight wasnt being transformed .

Campbell Barton ideasman42 at gmail.com
Thu Jan 10 06:35:16 CET 2013


Revision: 53692
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53692
Author:   campbellbarton
Date:     2013-01-10 05:35:10 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
transforming verts was getting the bevel weight for each vertex even if bevel-weight wasnt being transformed.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform_conversions.c

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-01-10 04:46:51 UTC (rev 53691)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-01-10 05:35:10 UTC (rev 53692)
@@ -1915,8 +1915,8 @@
 	td->val = NULL;
 	td->extra = NULL;
 	if (t->mode == TFM_BWEIGHT) {
-		td->val = bweight;
-		td->ival = bweight ? *(bweight) : 1.0f;
+		td->val  =  bweight;
+		td->ival = *bweight;
 	}
 	else if (t->mode == TFM_SKIN_RESIZE) {
 		MVertSkin *vs = CustomData_bmesh_get(&em->bm->vdata,
@@ -1952,6 +1952,7 @@
 	int mirror = 0;
 	char *selstate = NULL;
 	short selectmode = ts->selectmode;
+	int cd_vert_bweight_offset = -1;
 
 	if (t->flag & T_MIRROR) {
 		EDBM_verts_mirror_cache_begin(em, TRUE);
@@ -2033,6 +2034,10 @@
 		}
 	}
 
+	if (t->mode == TFM_BWEIGHT) {
+		BM_mesh_cd_flag_ensure(bm, BKE_mesh_from_object(t->obedit), ME_CDFLAG_VERT_BWEIGHT);
+		cd_vert_bweight_offset = CustomData_get_offset(&bm->vdata, CD_BWEIGHT);
+	}
 
 	if (propmode) {
 		t->total = count;
@@ -2099,11 +2104,10 @@
 		}
 	}
 
-	eve = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL);
-	for (a = 0; eve; eve = BM_iter_step(&iter), a++) {
+	BM_ITER_MESH_INDEX (eve, &iter, bm, BM_VERTS_OF_MESH, a) {
 		if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
 			if (propmode || selstate[a]) {
-				float *bweight = CustomData_bmesh_get(&bm->vdata, eve->head.data, CD_BWEIGHT);
+				float *bweight = (cd_vert_bweight_offset != -1) ? BM_ELEM_CD_GET_VOID_P(eve, cd_vert_bweight_offset) : NULL;
 				
 				VertsToTransData(t, tob, tx, em, eve, bweight);
 				if (tx)




More information about the Bf-blender-cvs mailing list