diff options
author | Geoffrey Bantle <hairbat@yahoo.com> | 2011-06-22 04:34:08 +0400 |
---|---|---|
committer | Geoffrey Bantle <hairbat@yahoo.com> | 2011-06-22 04:34:08 +0400 |
commit | 1bb763922da9a3e82110450550979b080b2d94e3 (patch) | |
tree | d1f1916390fa1b3eddadfb1173ab7c4da0e52c37 /source/blender/modifiers/intern/MOD_decimate.c | |
parent | 4cc347c93c0afa2a28fb5ac932631ec3ac54094b (diff) |
Fix for decimator:
----------------------------------------------
Patch for making faces stop dissapearing when
using the decimator submitted by howardt in IRC.
Also fixed crash for when input mesh had less than
three triangles
Diffstat (limited to 'source/blender/modifiers/intern/MOD_decimate.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_decimate.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c index 22c43d5e46a..408cc479241 100644 --- a/source/blender/modifiers/intern/MOD_decimate.c +++ b/source/blender/modifiers/intern/MOD_decimate.c @@ -98,7 +98,8 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), if(numTris<3) { modifier_setError(md, "Modifier requires more than 3 input faces (triangles)."); - goto exit; + dm = CDDM_copy(dm, 0); + return dm; } lod.vertex_buffer= MEM_mallocN(3*sizeof(float)*totvert, "vertices"); @@ -169,7 +170,6 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), } CDDM_calc_edges(result); - CDDM_calc_normals(result); } else modifier_setError(md, "Out of memory."); @@ -183,9 +183,8 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), MEM_freeN(lod.vertex_normal_buffer); MEM_freeN(lod.triangle_index_buffer); -exit: - dm = CDDM_copy(result, 1); /*builds ngon faces from tess (mface) faces*/ + CDDM_calc_normals(result); result->needsFree = 1; result->release(result); |