Revision: 44066
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44066
Author:   mont29
Date:     2012-02-12 18:17:30 +0000 (Sun, 12 Feb 2012)
Log Message:
-----------
Fix for bevel weights not being set in toolbar buttons (edit mode).

Code simply mimics crease one...

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

Modified: 
branches/bmesh/blender/source/blender/editors/space_view3d/view3d_buttons.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/space_view3d/view3d_buttons.c 
2012-02-12 17:44:10 UTC (rev 44065)
+++ branches/bmesh/blender/source/blender/editors/space_view3d/view3d_buttons.c 
2012-02-12 18:17:30 UTC (rev 44066)
@@ -436,7 +436,7 @@
 
                                        BM_ITER(eed, &iter, em->bm, 
BM_EDGES_OF_MESH, NULL) {
                                                if(BM_elem_flag_test(eed, 
BM_ELEM_SELECT)) {
-                                                       float *crease = 
CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_CREASE);
+                                                       float *crease = 
bm_get_cd_float(&em->bm->edata, eed->head.data, CD_CREASE);
                                                        if (!crease) break;
                                                        
                                                        *crease= fixed_crease;
@@ -458,7 +458,7 @@
                                                
                                                BM_ITER(eed, &iter, em->bm, 
BM_EDGES_OF_MESH, NULL) {
                                                        
if(BM_elem_flag_test(eed, BM_ELEM_SELECT) && !BM_elem_flag_test(eed, 
BM_ELEM_HIDDEN)) {
-                                                               float *crease = 
CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_CREASE);
+                                                               float *crease = 
bm_get_cd_float(&em->bm->edata, eed->head.data, CD_CREASE);
                                                                
                                                                if (!crease) 
break;
                                                                
@@ -473,7 +473,7 @@
 
                                                BM_ITER(eed, &iter, em->bm, 
BM_EDGES_OF_MESH, NULL) {
                                                        
if(BM_elem_flag_test(eed, BM_ELEM_SELECT) && !BM_elem_flag_test(eed, 
BM_ELEM_HIDDEN)) {
-                                                               float *crease = 
CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_CREASE);
+                                                               float *crease = 
bm_get_cd_float(&em->bm->edata, eed->head.data, CD_CREASE);
                                                                if (!crease) 
break;
 
                                                                *crease = 1.0f 
- ((1.0f - *crease) * sca);
@@ -483,24 +483,27 @@
                                        }
                                }
                        }
-                       if (median[6] != 0.0f) {
-#if 0 // BMESH_TODO
-                               EditEdge *eed;
-                               const float fixed_bweight= (ve_median[6] <= 
0.0f ? 0.0f : (ve_median[6] >= 1.0f ? 1.0f : FLT_MAX));
 
+                       if(median[6] != 0.0f) {
+                               BMEdge *eed;
+                               const float fixed_bweight = (ve_median[6] <= 
0.0f ? 0.0f : (ve_median[6] >= 1.0f ? 1.0f : FLT_MAX));
+
                                if(fixed_bweight != FLT_MAX) {
                                        /* simple case */
 
-                                       for(eed= em->edges.first; eed; eed= 
eed->next) {
-                                               if(eed->f & SELECT) {
-                                                       eed->bweight= 
fixed_bweight;
+                                       BM_ITER(eed, &iter, em->bm, 
BM_EDGES_OF_MESH, NULL) {
+                                               if(BM_elem_flag_test(eed, 
BM_ELEM_SELECT)) {
+                                                       float *bweight = 
bm_get_cd_float(&em->bm->edata, eed->head.data, CD_BWEIGHT);
+                                                       if(!bweight) break;
+                                                       
+                                                       *bweight = 
fixed_bweight;
                                                }
                                        }
                                }
                                else {
                                        /* scale crease to target median */
-                                       float median_new= ve_median[6];
-                                       float median_orig= ve_median[6] - 
median[6]; /* previous median value */
+                                       float median_new = ve_median[6];
+                                       float median_orig = ve_median[6] - 
median[6]; /* previous median value */
 
                                        /* incase of floating point error */
                                        CLAMP(median_orig, 0.0f, 1.0f);
@@ -508,28 +511,33 @@
 
                                        if(median_new < median_orig) {
                                                /* scale down */
-                                               const float sca= median_new / 
median_orig;
-
-                                               for(eed= em->edges.first; eed; 
eed= eed->next) {
-                                                       if(eed->f & SELECT) {
-                                                               eed->bweight *= 
sca;
-                                                               
CLAMP(eed->bweight, 0.0f, 1.0f);
+                                               const float sca = median_new / 
median_orig;
+                                               
+                                               BM_ITER(eed, &iter, em->bm, 
BM_EDGES_OF_MESH, NULL) {
+                                                       
if(BM_elem_flag_test(eed, BM_ELEM_SELECT) && !BM_elem_flag_test(eed, 
BM_ELEM_HIDDEN)) {
+                                                               float *bweight 
= bm_get_cd_float(&em->bm->edata, eed->head.data, CD_BWEIGHT);
+                                                               if(!bweight) 
break;
+                                                               
+                                                               *bweight *= sca;
+                                                               CLAMP(*bweight, 
0.0f, 1.0f);
                                                        }
                                                }
                                        }
                                        else {
                                                /* scale up */
-                                               const float sca= (1.0f - 
median_new) / (1.0f - median_orig);
+                                               const float sca = (1.0f - 
median_new) / (1.0f - median_orig);
 
-                                               for(eed= em->edges.first; eed; 
eed= eed->next) {
-                                                       if(eed->f & SELECT) {
-                                                               eed->bweight = 
1.0f - ((1.0f - eed->bweight) * sca);
-                                                               
CLAMP(eed->bweight, 0.0f, 1.0f);
+                                               BM_ITER(eed, &iter, em->bm, 
BM_EDGES_OF_MESH, NULL) {
+                                                       
if(BM_elem_flag_test(eed, BM_ELEM_SELECT) && !BM_elem_flag_test(eed, 
BM_ELEM_HIDDEN)) {
+                                                               float *bweight 
= bm_get_cd_float(&em->bm->edata, eed->head.data, CD_BWEIGHT);
+                                                               if(!bweight) 
break;
+
+                                                               *bweight = 1.0f 
- ((1.0f - *bweight) * sca);
+                                                               CLAMP(*bweight, 
0.0f, 1.0f);
                                                        }
                                                }
                                        }
                                }
-#endif // BMESH_TODO
                        }
                        EDBM_RecalcNormals(em);
                }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to