[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53948] trunk/blender/source/blender/ blenkernel/intern: fix regression in own recent commit, vertex flags were left uninitialized.

Campbell Barton ideasman42 at gmail.com
Mon Jan 21 10:54:38 CET 2013


Revision: 53948
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53948
Author:   campbellbarton
Date:     2013-01-21 09:54:33 +0000 (Mon, 21 Jan 2013)
Log Message:
-----------
fix regression in own recent commit, vertex flags were left uninitialized.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c

Modified: trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c	2013-01-21 09:05:05 UTC (rev 53947)
+++ trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c	2013-01-21 09:54:33 UTC (rev 53948)
@@ -1410,7 +1410,7 @@
 			normal_float_to_short_v3(vert_r->no, eve->no);
 			vert_r->flag = BM_vert_flag_to_mflag(eve);
 
-			if (cd_vert_bweight_offset != -1) vert_r->bweight = BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eve, cd_vert_bweight_offset);
+			vert_r->bweight = (cd_vert_bweight_offset != -1) ? BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eve, cd_vert_bweight_offset) : 0;
 
 			vert_r++;
 		}
@@ -1421,7 +1421,7 @@
 			normal_float_to_short_v3(vert_r->no, eve->no);
 			vert_r->flag = BM_vert_flag_to_mflag(eve);
 
-			if (cd_vert_bweight_offset != -1) vert_r->bweight = BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eve, cd_vert_bweight_offset);
+			vert_r->bweight = (cd_vert_bweight_offset != -1) ? BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eve, cd_vert_bweight_offset) : 0;
 
 			vert_r++;
 		}
@@ -1445,8 +1445,8 @@
 
 		edge_r->flag = BM_edge_flag_to_mflag(eed);
 
-		if (cd_edge_crease_offset  != -1) edge_r->crease  = BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eed, cd_edge_crease_offset);
-		if (cd_edge_bweight_offset != -1) edge_r->bweight = BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eed, cd_edge_bweight_offset);
+		edge_r->crease  = (cd_edge_crease_offset  != -1) ? BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eed, cd_edge_crease_offset)  : 0;
+		edge_r->bweight = (cd_edge_bweight_offset != -1) ? BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eed, cd_edge_bweight_offset) : 0;
 
 		edge_r++;
 	}
@@ -1469,6 +1469,7 @@
 		face_r->mat_nr = (unsigned char) ef->mat_nr;
 
 		face_r->flag = BM_face_flag_to_mflag(ef);
+		face_r->edcode = 0;
 
 		face_r->v1 = BM_elem_index_get(l[0]->v);
 		face_r->v2 = BM_elem_index_get(l[1]->v);

Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2013-01-21 09:05:05 UTC (rev 53947)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2013-01-21 09:54:33 UTC (rev 53948)
@@ -1013,7 +1013,11 @@
 		mf->flag = faceFlags[i].flag;
 		mf->mat_nr = faceFlags[i].mat_nr;
 	}
-	else mf->flag = ME_SMOOTH;
+	else {
+		mf->flag = ME_SMOOTH;
+	}
+
+	mf->edcode = 0;
 }
 
 /* Translate GridHidden into the ME_HIDE flag for MVerts. Assumes
@@ -1122,6 +1126,7 @@
 				vd = ccgSubSurf_getFaceGridEdgeData(ss, f, S, x);
 				copy_v3_v3(mvert[i].co, CCG_elem_co(&key, vd));
 				normal_float_to_short_v3(mvert[i].no, CCG_elem_no(&key, vd));
+				mvert[i].flag = mvert[i].bweight = 0;
 			}
 		}
 
@@ -1131,6 +1136,7 @@
 					vd = ccgSubSurf_getFaceGridData(ss, f, S, x, y);
 					copy_v3_v3(mvert[i].co, CCG_elem_co(&key, vd));
 					normal_float_to_short_v3(mvert[i].no, CCG_elem_no(&key, vd));
+					mvert[i].flag = mvert[i].bweight = 0;
 				}
 			}
 		}
@@ -1150,6 +1156,7 @@
 			 * faces which are now zerod out, see comment in:
 			 * ccgSubSurf__calcVertNormals(), - campbell */
 			normal_float_to_short_v3(mvert[i].no, CCG_elem_no(&key, vd));
+			mvert[i].flag = mvert[i].bweight = 0;
 		}
 	}
 
@@ -1160,6 +1167,7 @@
 		vd = ccgSubSurf_getVertData(ss, v);
 		copy_v3_v3(mvert[i].co, CCG_elem_co(&key, vd));
 		normal_float_to_short_v3(mvert[i].no, CCG_elem_no(&key, vd));
+		mvert[i].flag = mvert[i].bweight = 0;
 		i++;
 	}
 }
@@ -1174,6 +1182,7 @@
 	int edgeSize = ccgSubSurf_getEdgeSize(ss);
 	int i = 0;
 	short *edgeFlags = ccgdm->edgeFlags;
+	const short ed_interior_flag = ccgdm->drawInteriorEdges ? (ME_EDGEDRAW | ME_EDGERENDER) : 0;
 
 	totface = ccgSubSurf_getNumFaces(ss);
 	for (index = 0; index < totface; index++) {
@@ -1184,10 +1193,10 @@
 			for (x = 0; x < gridSize - 1; x++) {
 				MEdge *med = &medge[i];
 
-				if (ccgdm->drawInteriorEdges)
-					med->flag = ME_EDGEDRAW | ME_EDGERENDER;
 				med->v1 = getFaceIndex(ss, f, S, x, 0, edgeSize, gridSize);
 				med->v2 = getFaceIndex(ss, f, S, x + 1, 0, edgeSize, gridSize);
+				med->crease = med->bweight = 0;
+				med->flag = ed_interior_flag;
 				i++;
 			}
 
@@ -1196,21 +1205,21 @@
 					MEdge *med;
 
 					med = &medge[i];
-					if (ccgdm->drawInteriorEdges)
-						med->flag = ME_EDGEDRAW | ME_EDGERENDER;
 					med->v1 = getFaceIndex(ss, f, S, x, y,
 					                       edgeSize, gridSize);
 					med->v2 = getFaceIndex(ss, f, S, x, y + 1,
 					                       edgeSize, gridSize);
+					med->crease = med->bweight = 0;
+					med->flag = ed_interior_flag;
 					i++;
 
 					med = &medge[i];
-					if (ccgdm->drawInteriorEdges)
-						med->flag = ME_EDGEDRAW | ME_EDGERENDER;
 					med->v1 = getFaceIndex(ss, f, S, y, x,
 					                       edgeSize, gridSize);
 					med->v2 = getFaceIndex(ss, f, S, y + 1, x,
 					                       edgeSize, gridSize);
+					med->crease = med->bweight = 0;
+					med->flag = ed_interior_flag;
 					i++;
 				}
 			}
@@ -1239,6 +1248,7 @@
 			MEdge *med = &medge[i];
 			med->v1 = getEdgeIndex(ss, e, x, edgeSize);
 			med->v2 = getEdgeIndex(ss, e, x + 1, edgeSize);
+			med->crease = med->bweight = 0;
 			med->flag = flags;
 			i++;
 		}
@@ -1278,6 +1288,7 @@
 					                      edgeSize, gridSize);
 					mf->mat_nr = mat_nr;
 					mf->flag = flag;
+					mf->edcode = 0;
 
 					i++;
 				}




More information about the Bf-blender-cvs mailing list