[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42907] branches/bmesh/blender/source/ blender: set mloop edge and vertex as unsigned ints since face/ edge reference verts as unsigned ints too

Campbell Barton ideasman42 at gmail.com
Wed Dec 28 05:43:37 CET 2011


Revision: 42907
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42907
Author:   campbellbarton
Date:     2011-12-28 04:43:29 +0000 (Wed, 28 Dec 2011)
Log Message:
-----------
set mloop edge and vertex as unsigned ints since face/edge reference verts as unsigned ints too

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
    branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c
    branches/bmesh/blender/source/blender/makesdna/DNA_meshdata_types.h
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_solidify.c

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2011-12-28 04:25:46 UTC (rev 42906)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2011-12-28 04:43:29 UTC (rev 42907)
@@ -1980,9 +1980,10 @@
 	MPoly *mpoly = cddm->mpoly;
 	int numCol = CustomData_number_of_layers(&em->bm->ldata, CD_MLOOPCOL);
 	int numTex = CustomData_number_of_layers(&em->bm->pdata, CD_MTEXPOLY);
-	int i, j, *index, *polyindex, add_orig;
+	int *index, *polyindex, add_orig;
 	int has_crease, has_edge_bweight, has_vert_bweight;
 	int flag;
+	unsigned int i, j;
 	
 	has_edge_bweight = CustomData_has_layer(&em->bm->edata, CD_BWEIGHT);
 	has_vert_bweight = CustomData_has_layer(&em->bm->vdata, CD_BWEIGHT);
@@ -2324,7 +2325,7 @@
 	ml = cddm->mloop;
 	c = 0;
 	for (i=0; i<totloop; i++, ml++) {
-		if (ml->v == -1)
+		if (ml->v == ME_LOOP_INVALID_INDEX)
 			continue;
 		
 		if (vtargetmap[ml->v] != -1)
@@ -2371,7 +2372,7 @@
 		
 		c = 0;
 		for (j=0; j<mp->totloop; j++, ml++) {
-			if (ml->v == -1)
+			if (ml->v == ME_LOOP_INVALID_INDEX)
 				continue;
 			
 			me = cddm->medge + ml->e;

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2011-12-28 04:25:46 UTC (rev 42906)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2011-12-28 04:43:29 UTC (rev 42907)
@@ -304,8 +304,8 @@
 
 	/* create faces */
 	for (i=0; i<totface; i++) {
-		MPoly *mp = &((MPoly*) mpoly)[i];
-		MLoop *ml= mloop + mp->loopstart;
+		MPoly *mp = &mpoly[i];
+		MLoop *ml= &mloop[mp->loopstart];
 		int nverts= mp->totloop;
 		CCGFace *f;
 

Modified: branches/bmesh/blender/source/blender/makesdna/DNA_meshdata_types.h
===================================================================
--- branches/bmesh/blender/source/blender/makesdna/DNA_meshdata_types.h	2011-12-28 04:25:46 UTC (rev 42906)
+++ branches/bmesh/blender/source/blender/makesdna/DNA_meshdata_types.h	2011-12-28 04:43:29 UTC (rev 42907)
@@ -77,8 +77,9 @@
 /*new face structure, replaces MFace, which is now
   only used for storing tesselations.*/
 typedef struct MPoly {
-	/*offset into loop array and number of loops in the face*/
-	int loopstart, totloop;
+	/* offset into loop array and number of loops in the face */
+	int loopstart;
+	int totloop; /* keep signed since we need to subtract when getting the previous loop */
 	short mat_nr;
 	char flag, pad;
 } MPoly;
@@ -86,8 +87,8 @@
 /*the e here is because we want to move away from
   relying on edge hashes.*/
 typedef struct MLoop {
-	int v; /*vertex index*/
-	int e; /*edge index*/
+	unsigned int v; /*vertex index*/
+	unsigned int e; /*edge index*/
 } MLoop;
 
 typedef struct MTexPoly{
@@ -243,6 +244,9 @@
 #define ME_ESEL 1
 #define ME_FSEL 2
 
+/* mloop->v */
+#define ME_LOOP_INVALID_INDEX ((unsigned int) -1)
+
 /* mtface->flag */
 #define TF_SELECT	1 /* use MFace hide flag (after 2.43), should be able to reuse after 2.44 */
 #define TF_ACTIVE	2 /* deprecated! */

Modified: branches/bmesh/blender/source/blender/modifiers/intern/MOD_solidify.c
===================================================================
--- branches/bmesh/blender/source/blender/modifiers/intern/MOD_solidify.c	2011-12-28 04:25:46 UTC (rev 42906)
+++ branches/bmesh/blender/source/blender/modifiers/intern/MOD_solidify.c	2011-12-28 04:43:29 UTC (rev 42907)
@@ -451,13 +451,13 @@
 		}
 
 		for (i=0, mp=mpoly; i<numFaces; i++, mp++) {
-			mesh_calc_poly_normal(mp, mloop+mp->loopstart, mvert, face_nors[i]);
+			mesh_calc_poly_normal(mp, &mloop[mp->loopstart], mvert, face_nors[i]);
 			
 			/* just added, calc the normal */
 			BLI_array_empty(face_angles);
 			for (j=0, ml=mloop+mp->loopstart; j<mp->totloop; j++, ml++) {
-				MLoop *ml2 = mloop + mp->loopstart + (j+1)%mp->totloop; //next
-				MLoop *ml3 = mloop + mp->loopstart + (j+mp->totloop-1)%mp->totloop; //previous
+				MLoop *ml2 = &mloop[mp->loopstart + (j + 1) % mp->totloop]; //next
+				MLoop *ml3 = &mloop[mp->loopstart + (j + mp->totloop - 1) % mp->totloop]; //previous
 				float e1[3], e2[3], angle;
 				
 				sub_v3_v3v3(e1, mvert[ml2->v].co, mvert[ml->v].co);




More information about the Bf-blender-cvs mailing list