Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco De La Cruz <dlcs.frank@gmail.com>2012-04-06 15:24:42 +0400
committerFrancisco De La Cruz <dlcs.frank@gmail.com>2012-04-06 15:24:42 +0400
commit6408813f6fbb30db62567c1b1b5a9206904106c1 (patch)
treecd4ed1491c8928f1c49ff4a7415b2fa56c86a4ee /source/blender/blenkernel/intern/modifiers_bmesh.c
parent3d893a926ec9db9b985e794cbf47fd39a26e1a1a (diff)
Fix [#30832] Weight on Bevel modifier has no effect for edges with weight.
Added missing CD_BWEIGHT layer for the modifier's DerivedMesh.
Diffstat (limited to 'source/blender/blenkernel/intern/modifiers_bmesh.c')
-rw-r--r--source/blender/blenkernel/intern/modifiers_bmesh.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/modifiers_bmesh.c b/source/blender/blenkernel/intern/modifiers_bmesh.c
index 52b76eabc6c..573b8a725b3 100644
--- a/source/blender/blenkernel/intern/modifiers_bmesh.c
+++ b/source/blender/blenkernel/intern/modifiers_bmesh.c
@@ -68,6 +68,9 @@ void DM_to_bmesh_ex(DerivedMesh *dm, BMesh *bm)
/* add crease layer */
BM_data_layer_add(bm, &bm->edata, CD_CREASE);
+ /* add bevel weight layers */
+ BM_data_layer_add(bm, &bm->edata, CD_BWEIGHT);
+ BM_data_layer_add(bm, &bm->vdata, CD_BWEIGHT);
vtable = MEM_callocN(sizeof(void**) * totvert, "vert table in BMDM_Copy");
etable = MEM_callocN(sizeof(void**) * totedge, "edge table in BMDM_Copy");
@@ -80,6 +83,9 @@ void DM_to_bmesh_ex(DerivedMesh *dm, BMesh *bm)
v->head.hflag = BM_vert_flag_from_mflag(mv->flag);
CustomData_to_bmesh_block(&dm->vertData, &bm->vdata, i, &v->head.data);
+
+ /* add bevel weight */
+ BM_elem_float_data_set(&bm->vdata, v, CD_BWEIGHT, (float)mv->bweight / 255.0f);
vtable[i] = v;
}
MEM_freeN(mvert);
@@ -96,6 +102,8 @@ void DM_to_bmesh_ex(DerivedMesh *dm, BMesh *bm)
/* add crease */
BM_elem_float_data_set(&bm->edata, e, CD_CREASE, (float)me->crease / 255.0f);
+ /* add bevel weight */
+ BM_elem_float_data_set(&bm->edata, e, CD_BWEIGHT, (float)me->bweight / 255.0f);
}
MEM_freeN(medge);