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-03-07 01:10:33 +0300
committerCampbell Barton <ideasman42@gmail.com>2011-03-07 01:10:33 +0300
commitf1e0ef1d1281cc63d092a144ddbe3b1140104cd5 (patch)
tree12e55bed18280846e31a5960239931e4638cbac8 /source/blender/modifiers
parentd49bafe9572d33ac05a949f78e468267f4d9ecea (diff)
fix [#26368] Solidify breaks EdgeCrease
Make edge crease additive rather then overwriting existing values. There are other problems pointed out in this report but they are unrelated to solidify.
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r--source/blender/modifiers/intern/MOD_solidify.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index 8e44cd1ec37..f7a55720a5e 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -593,11 +593,18 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
mf->mat_nr += mat_ofs_rim;
CLAMP(mf->mat_nr, 0, mat_nr_max);
}
- if(crease_outer)
- ed->crease= crease_outer;
+ if(crease_outer) {
+ /* crease += crease_outer; without wrapping */
+ unsigned char *cr= (unsigned char *)&(ed->crease);
+ int tcr= *cr + crease_outer;
+ *cr= tcr > 255 ? 255 : tcr;
+ }
if(crease_inner) {
- medge[numEdges + eidx].crease= crease_inner;
+ /* crease += crease_inner; without wrapping */
+ unsigned char *cr= (unsigned char *)&(medge[numEdges + eidx].crease);
+ int tcr= *cr + crease_inner;
+ *cr= tcr > 255 ? 255 : tcr;
}
#ifdef SOLIDIFY_SIDE_NORMALS