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++;
                                }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to