From 3152419e7e86fb9fdea0a2b8b6c252f2926100cf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 5 Nov 2015 06:03:26 +1100 Subject: Add missing check for multires interpolation --- source/blender/bmesh/intern/bmesh_interp.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'source/blender/bmesh/intern') diff --git a/source/blender/bmesh/intern/bmesh_interp.c b/source/blender/bmesh/intern/bmesh_interp.c index 287733545f1..a2ae5d15095 100644 --- a/source/blender/bmesh/intern/bmesh_interp.c +++ b/source/blender/bmesh/intern/bmesh_interp.c @@ -473,13 +473,16 @@ void BM_loop_interp_multires_ex( void BM_loop_interp_multires(BMesh *bm, BMLoop *l_dst, const BMFace *f_src) { const int cd_loop_mdisp_offset = CustomData_get_offset(&bm->ldata, CD_MDISPS); - float f_dst_center[3]; - float f_src_center[3]; - BM_face_calc_center_mean(l_dst->f, f_dst_center); - BM_face_calc_center_mean(f_src, f_src_center); + if (cd_loop_mdisp_offset != -1) { + float f_dst_center[3]; + float f_src_center[3]; - BM_loop_interp_multires_ex(bm, l_dst, f_src, f_dst_center, f_src_center, cd_loop_mdisp_offset); + BM_face_calc_center_mean(l_dst->f, f_dst_center); + BM_face_calc_center_mean(f_src, f_src_center); + + BM_loop_interp_multires_ex(bm, l_dst, f_src, f_dst_center, f_src_center, cd_loop_mdisp_offset); + } } void BM_face_interp_multires_ex( @@ -498,13 +501,16 @@ void BM_face_interp_multires_ex( void BM_face_interp_multires(BMesh *bm, BMFace *f_dst, const BMFace *f_src) { const int cd_loop_mdisp_offset = CustomData_get_offset(&bm->ldata, CD_MDISPS); - float f_dst_center[3]; - float f_src_center[3]; - BM_face_calc_center_mean(f_dst, f_dst_center); - BM_face_calc_center_mean(f_src, f_src_center); + if (cd_loop_mdisp_offset != -1) { + float f_dst_center[3]; + float f_src_center[3]; - BM_face_interp_multires_ex(bm, f_dst, f_src, f_dst_center, f_src_center, cd_loop_mdisp_offset); + BM_face_calc_center_mean(f_dst, f_dst_center); + BM_face_calc_center_mean(f_src, f_src_center); + + BM_face_interp_multires_ex(bm, f_dst, f_src, f_dst_center, f_src_center, cd_loop_mdisp_offset); + } } /** -- cgit v1.2.3