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:
authorCampbell Barton <ideasman42@gmail.com>2011-11-30 14:07:04 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-11-30 14:07:04 +0400
commitdf5af02dec6f35081e7b3baa24f42b5bc3c57111 (patch)
treeb2daa24cd37850b1277b2fc77a1a14a29934692f /source/blender/blenkernel/intern/dynamicpaint.c
parent9e5b28cd42a3cf87ac76e3b27b52dce08071d244 (diff)
parentd24bbba150e5359a8b4c876fb387b3f7d69897d0 (diff)
svn merge ^/trunk/blender -r42290:42292
Diffstat (limited to 'source/blender/blenkernel/intern/dynamicpaint.c')
-rw-r--r--source/blender/blenkernel/intern/dynamicpaint.c31
1 files changed, 9 insertions, 22 deletions
diff --git a/source/blender/blenkernel/intern/dynamicpaint.c b/source/blender/blenkernel/intern/dynamicpaint.c
index 75b6cb10e7e..08e5f65f380 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 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 ((def_weight != NULL) || (weight[i] != 0.0f)) {
+
+ /* 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; i<sData->total_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);
}