[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56205] trunk/blender/source/blender/ blenkernel/intern/mesh.c: missed setting loop edges in previous commit.

Campbell Barton ideasman42 at gmail.com
Mon Apr 22 14:28:59 CEST 2013


Revision: 56205
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56205
Author:   campbellbarton
Date:     2013-04-22 12:28:54 +0000 (Mon, 22 Apr 2013)
Log Message:
-----------
missed setting loop edges in previous commit.

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

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-04-22 12:00:37 UTC (rev 56204)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-04-22 12:28:54 UTC (rev 56205)
@@ -1206,18 +1206,19 @@
  * Specialized function to use when we _know_ existing edges don't overlap with poly edges.
  */
 static void make_edges_mdata_extend(MEdge **r_alledge, int *r_totedge,
-                                    const MPoly *mpoly, const MLoop *mloop,
+                                    const MPoly *mpoly, MLoop *mloop,
                                     const int totpoly)
 {
 	int totedge = *r_totedge;
 	int totedge_new;
 	EdgeHash *eh;
+	const MPoly *mp;
 	int i;
 
 	eh = BLI_edgehash_new();
 
-	for (i = 0; i < totpoly; i++, mpoly++) {
-		BKE_mesh_poly_edgehash_insert(eh, mpoly, mloop + mpoly->loopstart);
+	for (i = 0, mp = mpoly; i < totpoly; i++, mp++) {
+		BKE_mesh_poly_edgehash_insert(eh, mp, mloop + mp->loopstart);
 	}
 
 	totedge_new = BLI_edgehash_size(eh);
@@ -1235,6 +1236,7 @@
 	if (totedge_new) {
 		EdgeHashIterator *ehi;
 		MEdge *medge;
+		unsigned int e_index = totedge;
 
 		*r_alledge = medge = (*r_alledge ? MEM_reallocN(*r_alledge, sizeof(MEdge) * (totedge + totedge_new)) :
 		                                   MEM_callocN(sizeof(MEdge) * totedge_new, __func__));
@@ -1245,9 +1247,10 @@
 		/* --- */
 		for (ehi = BLI_edgehashIterator_new(eh);
 		     BLI_edgehashIterator_isDone(ehi) == FALSE;
-		     BLI_edgehashIterator_step(ehi), ++medge)
+		     BLI_edgehashIterator_step(ehi), ++medge, e_index++)
 		{
 			BLI_edgehashIterator_getKey(ehi, &medge->v1, &medge->v2);
+			BLI_edgehashIterator_setValue(ehi, SET_UINT_IN_POINTER(e_index));
 
 			medge->crease = medge->bweight = 0;
 			medge->flag = ME_EDGEDRAW | ME_EDGERENDER;
@@ -1255,6 +1258,18 @@
 		BLI_edgehashIterator_free(ehi);
 
 		*r_totedge = totedge;
+
+
+		for (i = 0, mp = mpoly; i < totpoly; i++, mp++) {
+			MLoop *l = &mloop[mp->loopstart];
+			MLoop *l_prev = (l + (mp->totloop - 1));
+			int j;
+			for (j = 0; j < mp->totloop; j++, l++) {
+				/* lookup hashed edge index */
+				l_prev->e = GET_UINT_FROM_POINTER(BLI_edgehash_lookup(eh, l_prev->v, l->v));
+				l_prev = l;
+			}
+		}
 	}
 
 	BLI_edgehash_free(eh, NULL);




More information about the Bf-blender-cvs mailing list