diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-08-30 19:30:38 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-08-30 19:30:38 +0400 |
commit | 9eb9d9b7d2492b12cf61859597093980b565694c (patch) | |
tree | d56d8a6e59e1ceace394d9e95ac00d863c7a55c8 /source/blender/editors | |
parent | 131c2a3208842f36c1958d6f9ff19dde5c2bd76c (diff) |
Fix #28427: smooth faces flash momentarily when extruded using "extrude and move on normals" tool (E key)
Update normals just after extrude -- topology is changing when extruding
and normals for non-extruded faces should be recalculated after this.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/mesh/editmesh_lib.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index b7ed6ec14ca..0afa2d01702 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -1141,6 +1141,9 @@ short extrudeflag_face_indiv(EditMesh *em, short UNUSED(flag), float *UNUSED(nor EM_select_flush(em); + /* step 5; update normals after extrude */ + recalc_editnormals(em); + return 'n'; } @@ -1206,6 +1209,9 @@ short extrudeflag_edges_indiv(EditMesh *em, short flag, float *nor) if(eed->v1->f & eed->v2->f & flag) eed->f |= flag; } + /* update normals after extrude */ + recalc_editnormals(em); + if(is_zero_v3(nor)) return 'g'; // g is grab return 'n'; // n is for normal constraint } @@ -1485,6 +1491,9 @@ static short extrudeflag_edge(Object *obedit, EditMesh *em, short UNUSED(flag), EM_select_flush(em); + /* step 8; update normals after extrude */ + recalc_editnormals(em); + if(is_zero_v3(nor)) return 'g'; // grab return 'n'; // normal constraint } |