From d24bbba150e5359a8b4c876fb387b3f7d69897d0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 30 Nov 2011 10:04:14 +0000 Subject: [PATCH] dynamic paint - replace inline code with existig defvert_find_index() - use madd_v3_v3fl() func and remove redundant normalize call. --- .../blender/blenkernel/intern/dynamicpaint.c | 29 +++++-------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/source/blender/blenkernel/intern/dynamicpaint.c b/source/blender/blenkernel/intern/dynamicpaint.c index a6ca7fcab36..9a5bbf8e6b8 100644 --- a/source/blender/blenkernel/intern/dynamicpaint.c +++ b/source/blender/blenkernel/intern/dynamicpaint.c @@ -1703,25 +1703,16 @@ static struct DerivedMesh *dynamicPaint_Modifier_apply(DynamicPaintModifierData MDeformWeight *def_weight = defvert_find_index(dv, defgrp_index); /* skip if weight value is 0 and no existing weight is found */ - if (!def_weight && !weight[i]) - continue; + if ((def_weight != NULL) || (weight[i] != 0.0f)) { - /* if not found, add a weight for it */ - if (!def_weight) { - MDeformWeight *newdw = MEM_callocN(sizeof(MDeformWeight)*(dv->totweight+1), - "deformWeight"); - if(dv->dw){ - memcpy(newdw, dv->dw, sizeof(MDeformWeight)*dv->totweight); - MEM_freeN(dv->dw); + /* if not found, add a weight for it */ + if (def_weight == NULL) { + def_weight= defvert_verify_index(dv, defgrp_index); } - dv->dw=newdw; - dv->dw[dv->totweight].def_nr=defgrp_index; - def_weight = &dv->dw[dv->totweight]; - dv->totweight++; - } - /* set weight value */ - def_weight->weight = weight[i]; + /* set weight value */ + def_weight->weight = weight[i]; + } } } } @@ -1735,11 +1726,7 @@ static struct DerivedMesh *dynamicPaint_Modifier_apply(DynamicPaintModifierData for (i=0; itotal_points; i++) { float normal[3]; normal_short_to_float_v3(normal, mvert[i].no); - normalize_v3(normal); - - mvert[i].co[0] += normal[0]*wPoint[i].height; - mvert[i].co[1] += normal[1]*wPoint[i].height; - mvert[i].co[2] += normal[2]*wPoint[i].height; + madd_v3_v3fl(mvert[i].co, normal, wPoint[i].height); } CDDM_calc_normals(result); }