[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44066] branches/bmesh/blender/source/ blender/editors/space_view3d/view3d_buttons.c: Fix for bevel weights not being set in toolbar buttons (edit mode).
Bastien Montagne
montagne29 at wanadoo.fr
Sun Feb 12 19:17:30 CET 2012
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);
}
More information about the Bf-blender-cvs
mailing list