forked from bartvdbraak/blender
transforming verts was getting the bevel weight for each vertex even if bevel-weight wasnt being transformed.
This commit is contained in:
parent
7083350913
commit
0ce1be552e
@ -1915,8 +1915,8 @@ static void VertsToTransData(TransInfo *t, TransData *td, TransDataExtension *tx
|
|||||||
td->val = NULL;
|
td->val = NULL;
|
||||||
td->extra = NULL;
|
td->extra = NULL;
|
||||||
if (t->mode == TFM_BWEIGHT) {
|
if (t->mode == TFM_BWEIGHT) {
|
||||||
td->val = bweight;
|
td->val = bweight;
|
||||||
td->ival = bweight ? *(bweight) : 1.0f;
|
td->ival = *bweight;
|
||||||
}
|
}
|
||||||
else if (t->mode == TFM_SKIN_RESIZE) {
|
else if (t->mode == TFM_SKIN_RESIZE) {
|
||||||
MVertSkin *vs = CustomData_bmesh_get(&em->bm->vdata,
|
MVertSkin *vs = CustomData_bmesh_get(&em->bm->vdata,
|
||||||
@ -1952,6 +1952,7 @@ static void createTransEditVerts(TransInfo *t)
|
|||||||
int mirror = 0;
|
int mirror = 0;
|
||||||
char *selstate = NULL;
|
char *selstate = NULL;
|
||||||
short selectmode = ts->selectmode;
|
short selectmode = ts->selectmode;
|
||||||
|
int cd_vert_bweight_offset = -1;
|
||||||
|
|
||||||
if (t->flag & T_MIRROR) {
|
if (t->flag & T_MIRROR) {
|
||||||
EDBM_verts_mirror_cache_begin(em, TRUE);
|
EDBM_verts_mirror_cache_begin(em, TRUE);
|
||||||
@ -2033,6 +2034,10 @@ static void createTransEditVerts(TransInfo *t)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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) {
|
if (propmode) {
|
||||||
t->total = count;
|
t->total = count;
|
||||||
@ -2099,11 +2104,10 @@ static void createTransEditVerts(TransInfo *t)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
eve = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL);
|
BM_ITER_MESH_INDEX (eve, &iter, bm, BM_VERTS_OF_MESH, a) {
|
||||||
for (a = 0; eve; eve = BM_iter_step(&iter), a++) {
|
|
||||||
if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
|
if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
|
||||||
if (propmode || selstate[a]) {
|
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);
|
VertsToTransData(t, tob, tx, em, eve, bweight);
|
||||||
if (tx)
|
if (tx)
|
||||||
|
Loading…
Reference in New Issue
Block a user