[Bf-blender-cvs] [3152419] master: Add missing check for multires interpolation

Campbell Barton noreply at git.blender.org
Wed Nov 4 22:27:52 CET 2015


Commit: 3152419e7e86fb9fdea0a2b8b6c252f2926100cf
Author: Campbell Barton
Date:   Thu Nov 5 06:03:26 2015 +1100
Branches: master
https://developer.blender.org/rB3152419e7e86fb9fdea0a2b8b6c252f2926100cf

Add missing check for multires interpolation

===================================================================

M	source/blender/bmesh/intern/bmesh_interp.c

===================================================================

diff --git a/source/blender/bmesh/intern/bmesh_interp.c b/source/blender/bmesh/intern/bmesh_interp.c
index 2877335..a2ae5d1 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);
+	}
 }
 
 /**




More information about the Bf-blender-cvs mailing list