diff options
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_polygon.c')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_polygon.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/bmesh/intern/bmesh_polygon.c b/source/blender/bmesh/intern/bmesh_polygon.c index 40f6078dc0b..62b29e61d08 100644 --- a/source/blender/bmesh/intern/bmesh_polygon.c +++ b/source/blender/bmesh/intern/bmesh_polygon.c @@ -702,12 +702,20 @@ void BM_face_calc_center_mean_vcos( * Reverses the winding of a face. * \note This updates the calculated normal. */ -void BM_face_normal_flip(BMesh *bm, BMFace *f) +void BM_face_normal_flip_ex( + BMesh *bm, BMFace *f, + const int cd_loop_mdisp_offset, const bool use_loop_mdisp_flip) { - bmesh_loop_reverse(bm, f); + bmesh_loop_reverse(bm, f, cd_loop_mdisp_offset, use_loop_mdisp_flip); negate_v3(f->no); } +void BM_face_normal_flip(BMesh *bm, BMFace *f) +{ + const int cd_loop_mdisp_offset = CustomData_get_offset(&bm->ldata, CD_MDISPS); + BM_face_normal_flip_ex(bm, f, cd_loop_mdisp_offset, true); +} + /* detects if two line segments cross each other (intersects). * note, there could be more winding cases then there needs to be. */ static bool line_crosses_v2f(const float v1[2], const float v2[2], const float v3[2], const float v4[2]) |