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.
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user