[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54667] trunk/blender/source/blender/ editors/space_view3d/view3d_buttons.c: fix [#34033] Mesh customdata settings are missing

Campbell Barton ideasman42 at gmail.com
Tue Feb 19 15:36:26 CET 2013


Revision: 54667
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54667
Author:   campbellbarton
Date:     2013-02-19 14:36:26 +0000 (Tue, 19 Feb 2013)
Log Message:
-----------
fix [#34033] Mesh customdata settings are missing
Mesh edge number buttons were removed when the custom-data layers weren't present.

More of a usability regression than a bug.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c	2013-02-19 14:19:53 UTC (rev 54666)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c	2013-02-19 14:36:26 UTC (rev 54667)
@@ -222,6 +222,9 @@
 				}
 			}
 		}
+		else {
+			totedgedata = bm->totedgesel;
+		}
 
 		/* check for defgroups */
 		if (evedef)
@@ -427,26 +430,16 @@
 		/* Meshes... */
 		if (meshdata) {
 			if (totedgedata) {
-				Mesh *me = ob->data;
-				BMEditMesh *em = me->edit_btmesh;
-				BMesh *bm = em->bm;
-
-				const int cd_edge_bweight_offset = CustomData_get_offset(&bm->edata, CD_BWEIGHT);
-				const int cd_edge_crease_offset  = CustomData_get_offset(&bm->edata, CD_CREASE);
-
-				if (cd_edge_crease_offset != -1) {
-					uiDefButF(block, NUM, B_OBJECTPANELMEDIAN,
-					          totedgedata == 1 ? IFACE_("Crease:") : IFACE_("Mean Crease:"),
-					          0, yi -= buth + but_margin, 200, buth,
-					          &(tfp->ve_median[M_CREASE]), 0.0, 1.0, 1, 3, TIP_("Weight used by SubSurf modifier"));
-				}
-
-				if (cd_edge_bweight_offset != -1) {
-					uiDefButF(block, NUM, B_OBJECTPANELMEDIAN,
-					          totedgedata == 1 ? IFACE_("Bevel Weight:") : IFACE_("Mean Bevel Weight:"),
-					          0, yi -= buth + but_margin, 200, buth,
-					          &(tfp->ve_median[M_WEIGHT]), 0.0, 1.0, 1, 3, TIP_("Weight used by Bevel modifier"));
-				}
+				/* customdata layer added on demand */
+				uiDefButF(block, NUM, B_OBJECTPANELMEDIAN,
+				          totedgedata == 1 ? IFACE_("Crease:") : IFACE_("Mean Crease:"),
+				          0, yi -= buth + but_margin, 200, buth,
+				          &(tfp->ve_median[M_CREASE]), 0.0, 1.0, 1, 3, TIP_("Weight used by SubSurf modifier"));
+				/* customdata layer added on demand */
+				uiDefButF(block, NUM, B_OBJECTPANELMEDIAN,
+				          totedgedata == 1 ? IFACE_("Bevel Weight:") : IFACE_("Mean Bevel Weight:"),
+				          0, yi -= buth + but_margin, 200, buth,
+				          &(tfp->ve_median[M_WEIGHT]), 0.0, 1.0, 1, 3, TIP_("Weight used by Bevel modifier"));
 			}
 			if (totskinradius) {
 				uiDefButF(block, NUM, B_OBJECTPANELMEDIAN,
@@ -529,7 +522,8 @@
 			}
 
 			if (median[M_CREASE] != 0.0f) {
-				const int cd_edge_crease_offset  = CustomData_get_offset(&bm->edata, CD_CREASE);
+				const int cd_edge_crease_offset  = (BM_mesh_cd_flag_ensure(bm, me, ME_CDFLAG_EDGE_CREASE),
+				                                    CustomData_get_offset(&bm->edata, CD_CREASE));
 				const float sca = compute_scale_factor(ve_median[M_CREASE], median[M_CREASE]);
 				BMEdge *eed;
 
@@ -561,7 +555,8 @@
 			}
 
 			if (median[M_WEIGHT] != 0.0f) {
-				const int cd_edge_bweight_offset  = CustomData_get_offset(&bm->edata, CD_BWEIGHT);
+				const int cd_edge_bweight_offset = (BM_mesh_cd_flag_ensure(bm, me, ME_CDFLAG_EDGE_BWEIGHT),
+				                                    CustomData_get_offset(&bm->edata, CD_BWEIGHT));
 				const float sca = compute_scale_factor(ve_median[M_WEIGHT], median[M_WEIGHT]);
 				BMEdge *eed;
 




More information about the Bf-blender-cvs mailing list