diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2012-05-15 16:26:29 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2012-05-15 16:26:29 +0400 |
commit | 8242f624a1d10649946f9db6994dc8b07a1c8218 (patch) | |
tree | 2a8ede52bd7234063484d4cb17e0529624b8e08d /source/blender/blenkernel/intern/particle_system.c | |
parent | 7050633c6716b7f28aef906f47ec2793119d0a49 (diff) |
Cloth: Revert triangulation after talking with brecht.
People: Better use subsurf after cloth since you can get failing collisions otherwise!
Diffstat (limited to 'source/blender/blenkernel/intern/particle_system.c')
-rw-r--r-- | source/blender/blenkernel/intern/particle_system.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index af8382d5ce1..5397b1729f9 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3555,7 +3555,6 @@ static void do_hair_dynamics(ParticleSimulationData *sim) { ParticleSystem *psys = sim->psys; DerivedMesh *dm = psys->hair_in_dm; - DerivedMesh *result = NULL; MVert *mvert = NULL; MEdge *medge = NULL; MDeformVert *dvert = NULL; @@ -3660,15 +3659,14 @@ static void do_hair_dynamics(ParticleSimulationData *sim) psys->clmd->sim_parms->effector_weights = psys->part->effector_weights; deformedVerts = MEM_callocN(sizeof(*deformedVerts)*dm->getNumVerts(dm), "do_hair_dynamics vertexCos"); + psys->hair_out_dm = CDDM_copy(dm); + psys->hair_out_dm->getVertCos(psys->hair_out_dm, deformedVerts); - result = clothModifier_do(psys->clmd, sim->scene, sim->ob, dm); + clothModifier_do(psys->clmd, sim->scene, sim->ob, dm, deformedVerts); - if (result) { - CDDM_calc_normals(result); - psys->hair_out_dm = result; - } - else - psys->hair_out_dm = CDDM_copy(dm); + CDDM_apply_vert_coords(psys->hair_out_dm, deformedVerts); + + MEM_freeN(deformedVerts); psys->clmd->sim_parms->effector_weights = NULL; } |