[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59503] trunk/blender/source/blender: replace hashes with sets where possible.

Campbell Barton ideasman42 at gmail.com
Sun Aug 25 22:03:46 CEST 2013


Revision: 59503
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59503
Author:   campbellbarton
Date:     2013-08-25 20:03:45 +0000 (Sun, 25 Aug 2013)
Log Message:
-----------
replace hashes with sets where possible.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_pbvh.h
    trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
    trunk/blender/source/blender/blenkernel/intern/mesh.c
    trunk/blender/source/blender/blenkernel/intern/pbvh.c
    trunk/blender/source/blender/blenkernel/intern/pbvh_bmesh.c
    trunk/blender/source/blender/blenkernel/intern/pbvh_intern.h
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
    trunk/blender/source/blender/blenlib/intern/edgehash.c
    trunk/blender/source/blender/blenloader/intern/readblenentry.c
    trunk/blender/source/blender/bmesh/intern/bmesh_walkers.c
    trunk/blender/source/blender/bmesh/intern/bmesh_walkers.h
    trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c
    trunk/blender/source/blender/bmesh/operators/bmo_beautify.c
    trunk/blender/source/blender/bmesh/operators/bmo_hull.c
    trunk/blender/source/blender/bmesh/operators/bmo_subdivide_edgering.c
    trunk/blender/source/blender/editors/animation/anim_filter.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_hide.c
    trunk/blender/source/blender/gpu/GPU_buffers.h
    trunk/blender/source/blender/gpu/intern/gpu_buffers.c

Modified: trunk/blender/source/blender/blenkernel/BKE_pbvh.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_pbvh.h	2013-08-25 20:00:19 UTC (rev 59502)
+++ trunk/blender/source/blender/blenkernel/BKE_pbvh.h	2013-08-25 20:03:45 UTC (rev 59503)
@@ -172,8 +172,8 @@
 /* test if AABB is at least partially outside the planes' volume */
 int BKE_pbvh_node_planes_exclude_AABB(PBVHNode *node, void *data);
 
-struct GHash *BKE_pbvh_bmesh_node_unique_verts(PBVHNode *node);
-struct GHash *BKE_pbvh_bmesh_node_other_verts(PBVHNode *node); 
+struct GSet *BKE_pbvh_bmesh_node_unique_verts(PBVHNode *node);
+struct GSet *BKE_pbvh_bmesh_node_other_verts(PBVHNode *node);
 void BKE_pbvh_bmesh_node_save_orig(PBVHNode *node);
 void BKE_pbvh_bmesh_after_stroke(PBVH *bvh);
 
@@ -235,8 +235,8 @@
 	float *vmask;
 
 	/* bmesh */
-	struct GHashIterator bm_unique_verts;
-	struct GHashIterator bm_other_verts;
+	struct GSetIterator bm_unique_verts;
+	struct GSetIterator bm_other_verts;
 	struct CustomData *bm_vdata;
 
 	/* result: these are all computed in the macro, but we assume
@@ -294,13 +294,13 @@
 						vi.mask = &vi.vmask[vi.vert_indices[vi.gx]]; \
 				} \
 				else { \
-					if (!BLI_ghashIterator_done(&vi.bm_unique_verts)) {\
-						vi.bm_vert = BLI_ghashIterator_getKey(&vi.bm_unique_verts); \
-						BLI_ghashIterator_step(&vi.bm_unique_verts); \
+					if (!BLI_gsetIterator_done(&vi.bm_unique_verts)) {\
+						vi.bm_vert = BLI_gsetIterator_getKey(&vi.bm_unique_verts); \
+						BLI_gsetIterator_step(&vi.bm_unique_verts); \
 					} \
 					else { \
-						vi.bm_vert = BLI_ghashIterator_getKey(&vi.bm_other_verts); \
-						BLI_ghashIterator_step(&vi.bm_other_verts); \
+						vi.bm_vert = BLI_gsetIterator_getKey(&vi.bm_other_verts); \
+						BLI_gsetIterator_step(&vi.bm_other_verts); \
 					} \
 					if (mode == PBVH_ITER_UNIQUE && \
 						BM_elem_flag_test(vi.bm_vert, BM_ELEM_HIDDEN)) \

Modified: trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2013-08-25 20:00:19 UTC (rev 59502)
+++ trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2013-08-25 20:03:45 UTC (rev 59503)
@@ -2642,7 +2642,7 @@
 
 	for (ehi = BLI_edgehashIterator_new(eh), i = 0;
 	     BLI_edgehashIterator_isDone(ehi) == FALSE;
-	     BLI_edgehashIterator_step(ehi), ++i, ++med, ++index)
+	     BLI_edgehashIterator_step(ehi), i++, med++, index++)
 	{
 		BLI_edgehashIterator_getKey(ehi, &med->v1, &med->v2);
 

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-08-25 20:00:19 UTC (rev 59502)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-08-25 20:03:45 UTC (rev 59503)
@@ -3852,9 +3852,7 @@
 	ml = &ml_next[i - 1];  /* last loop */
 
 	while (i-- != 0) {
-		if (!BLI_edgehash_haskey(ehash, ml->v, ml_next->v)) {
-			BLI_edgehash_insert(ehash, ml->v, ml_next->v, NULL);
-		}
+		BLI_edgehash_reinsert(ehash, ml->v, ml_next->v, NULL);
 
 		ml = ml_next;
 		ml_next++;

Modified: trunk/blender/source/blender/blenkernel/intern/pbvh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pbvh.c	2013-08-25 20:00:19 UTC (rev 59502)
+++ trunk/blender/source/blender/blenkernel/intern/pbvh.c	2013-08-25 20:03:45 UTC (rev 59503)
@@ -614,9 +614,9 @@
 			if (node->bm_faces)
 				BLI_ghash_free(node->bm_faces, NULL, NULL);
 			if (node->bm_unique_verts)
-				BLI_ghash_free(node->bm_unique_verts, NULL, NULL);
+				BLI_gset_free(node->bm_unique_verts, NULL);
 			if (node->bm_other_verts)
-				BLI_ghash_free(node->bm_other_verts, NULL, NULL);
+				BLI_gset_free(node->bm_other_verts, NULL);
 		}
 	}
 
@@ -1314,8 +1314,8 @@
 			if (uniquevert) *uniquevert = node->uniq_verts;
 			break;
 		case PBVH_BMESH:
-			tot = BLI_ghash_size(node->bm_unique_verts);
-			if (totvert) *totvert = tot + BLI_ghash_size(node->bm_other_verts);
+			tot = BLI_gset_size(node->bm_unique_verts);
+			if (totvert) *totvert = tot + BLI_gset_size(node->bm_other_verts);
 			if (uniquevert) *uniquevert = tot;
 			break;
 	}
@@ -1866,8 +1866,8 @@
 	vi->mverts = verts;
 
 	if (bvh->type == PBVH_BMESH) {
-		BLI_ghashIterator_init(&vi->bm_unique_verts, node->bm_unique_verts);
-		BLI_ghashIterator_init(&vi->bm_other_verts, node->bm_other_verts);
+		BLI_gsetIterator_init(&vi->bm_unique_verts, node->bm_unique_verts);
+		BLI_gsetIterator_init(&vi->bm_other_verts, node->bm_other_verts);
 		vi->bm_vdata = &bvh->bm->vdata;
 	}
 

Modified: trunk/blender/source/blender/blenkernel/intern/pbvh_bmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pbvh_bmesh.c	2013-08-25 20:00:19 UTC (rev 59502)
+++ trunk/blender/source/blender/blenkernel/intern/pbvh_bmesh.c	2013-08-25 20:03:45 UTC (rev 59503)
@@ -48,8 +48,8 @@
 	PBVHNode *n = &bvh->nodes[node_index];
 
 	/* Create vert hash sets */
-	n->bm_unique_verts = BLI_ghash_ptr_new("bm_unique_verts");
-	n->bm_other_verts = BLI_ghash_ptr_new("bm_other_verts");
+	n->bm_unique_verts = BLI_gset_ptr_new("bm_unique_verts");
+	n->bm_other_verts = BLI_gset_ptr_new("bm_other_verts");
 
 	BB_reset(&n->vb);
 
@@ -67,13 +67,12 @@
 		l_iter = l_first = BM_FACE_FIRST_LOOP(f);
 		do {
 			v = l_iter->v;
-			if (!BLI_ghash_haskey(n->bm_unique_verts, v)) {
+			if (!BLI_gset_haskey(n->bm_unique_verts, v)) {
 				if (BLI_ghash_haskey(bvh->bm_vert_to_node, v)) {
-					if (!BLI_ghash_haskey(n->bm_other_verts, v))
-						BLI_ghash_insert(n->bm_other_verts, v, NULL);
+					BLI_gset_reinsert(n->bm_other_verts, v, NULL);
 				}
 				else {
-					BLI_ghash_insert(n->bm_unique_verts, v, NULL);
+					BLI_gset_insert(n->bm_unique_verts, v);
 					BLI_ghash_insert(bvh->bm_vert_to_node, v, node_val);
 				}
 			}
@@ -101,6 +100,7 @@
 {
 	GHash *empty, *other;
 	GHashIterator gh_iter;
+	GSetIterator gs_iter;
 	PBVHNode *n, *c1, *c2;
 	BB cb;
 	float mid;
@@ -177,11 +177,11 @@
 
 	/* Mark this node's unique verts as unclaimed */
 	if (n->bm_unique_verts) {
-		GHASH_ITER (gh_iter, n->bm_unique_verts) {
-			BMVert *v = BLI_ghashIterator_getKey(&gh_iter);
+		GSET_ITER (gs_iter, n->bm_unique_verts) {
+			BMVert *v = BLI_gsetIterator_getKey(&gs_iter);
 			BLI_ghash_remove(bvh->bm_vert_to_node, v, NULL, NULL);
 		}
-		BLI_ghash_free(n->bm_unique_verts, NULL, NULL);
+		BLI_gset_free(n->bm_unique_verts, NULL);
 	}
 
 	/* Unclaim faces */
@@ -192,7 +192,7 @@
 	BLI_ghash_free(n->bm_faces, NULL, NULL);
 
 	if (n->bm_other_verts)
-		BLI_ghash_free(n->bm_other_verts, NULL, NULL);
+		BLI_gset_free(n->bm_other_verts, NULL);
 
 	if (n->layer_disp)
 		MEM_freeN(n->layer_disp);
@@ -291,7 +291,7 @@
 
 	BLI_assert((bvh->totnode == 1 || node_index) && node_index <= bvh->totnode);
 
-	BLI_ghash_insert(bvh->nodes[node_index].bm_unique_verts, v, NULL);
+	BLI_gset_insert(bvh->nodes[node_index].bm_unique_verts, v);
 	BLI_ghash_insert(bvh->bm_vert_to_node, v, val);
 
 	/* Log the new vertex */
@@ -373,14 +373,14 @@
 	BLI_assert(current_owner != new_owner);
 
 	/* Remove current ownership */
-	BLI_ghash_remove(current_owner->bm_unique_verts, v, NULL, NULL);
+	BLI_gset_remove(current_owner->bm_unique_verts, v, NULL);
 
 	/* Set new ownership */
 	BLI_ghash_reinsert(bvh->bm_vert_to_node, v,
-	                 SET_INT_IN_POINTER(new_owner - bvh->nodes), NULL, NULL);
-	BLI_ghash_insert(new_owner->bm_unique_verts, v, NULL);
-	BLI_ghash_remove(new_owner->bm_other_verts, v, NULL, NULL);
-	BLI_assert(!BLI_ghash_haskey(new_owner->bm_other_verts, v));
+	                   SET_INT_IN_POINTER(new_owner - bvh->nodes), NULL, NULL);
+	BLI_gset_insert(new_owner->bm_unique_verts, v);
+	BLI_gset_remove(new_owner->bm_other_verts, v, NULL);
+	BLI_assert(!BLI_gset_haskey(new_owner->bm_other_verts, v));
 }
 
 static void pbvh_bmesh_vert_remove(PBVH *bvh, BMVert *v)
@@ -391,7 +391,7 @@
 
 	BLI_assert(BLI_ghash_haskey(bvh->bm_vert_to_node, v));
 	v_node = pbvh_bmesh_node_lookup(bvh, bvh->bm_vert_to_node, v);
-	BLI_ghash_remove(v_node->bm_unique_verts, v, NULL, NULL);
+	BLI_gset_remove(v_node->bm_unique_verts, v, NULL);
 	BLI_ghash_remove(bvh->bm_vert_to_node, v, NULL, NULL);
 
 	/* Have to check each neighboring face's node */
@@ -401,10 +401,10 @@
 		/* Remove current ownership */
 		/* Should be handled above by vert_to_node removal, leaving just in case - psy-fi */
 		//BLI_ghash_remove(f_node->bm_unique_verts, v, NULL, NULL);
-		BLI_ghash_remove(f_node->bm_other_verts, v, NULL, NULL);
+		BLI_gset_remove(f_node->bm_other_verts, v, NULL);
 
-		BLI_assert(!BLI_ghash_haskey(f_node->bm_unique_verts, v));
-		BLI_assert(!BLI_ghash_haskey(f_node->bm_other_verts, v));
+		BLI_assert(!BLI_gset_haskey(f_node->bm_unique_verts, v));
+		BLI_assert(!BLI_gset_haskey(f_node->bm_other_verts, v));
 	}
 }
 
@@ -424,7 +424,7 @@
 	do {
 		v = l_iter->v;
 		if (pbvh_bmesh_node_vert_use_count(bvh, f_node, v) == 1) {
-			if (BLI_ghash_haskey(f_node->bm_unique_verts, v)) {
+			if (BLI_gset_haskey(f_node->bm_unique_verts, v)) {
 				/* Find a different node that uses 'v' */
 				PBVHNode *new_node;
 
@@ -435,13 +435,13 @@
 					pbvh_bmesh_vert_ownership_transfer(bvh, new_node, v);
 				}
 				else {
-					BLI_ghash_remove(f_node->bm_unique_verts, v, NULL, NULL);
+					BLI_gset_remove(f_node->bm_unique_verts, v, NULL);
 					BLI_ghash_remove(bvh->bm_vert_to_node, v, NULL, NULL);
 				}
 			}
 			else {
 				/* Remove from other verts */
-				BLI_ghash_remove(f_node->bm_other_verts, v, NULL, NULL);
+				BLI_gset_remove(f_node->bm_other_verts, v, NULL);
 			}
 		}
 	} while ((l_iter = l_iter->next) != l_first);
@@ -733,10 +733,10 @@
 		BM_face_kill(bvh->bm, f_adj);
 
 		/* Ensure new vertex is in the node */
-		if (!BLI_ghash_haskey(bvh->nodes[ni].bm_unique_verts, v_new) &&
-			!BLI_ghash_haskey(bvh->nodes[ni].bm_other_verts, v_new))
+		if (!BLI_gset_haskey(bvh->nodes[ni].bm_unique_verts, v_new) &&
+			!BLI_gset_haskey(bvh->nodes[ni].bm_other_verts, v_new))
 		{
-			BLI_ghash_insert(bvh->nodes[ni].bm_other_verts, v_new, NULL);
+			BLI_gset_insert(bvh->nodes[ni].bm_other_verts, v_new);
 		}
 
 		if (BM_vert_edge_count(v_opp) >= 9) {
@@ -857,10 +857,10 @@
 			pbvh_bmesh_face_create(bvh, ni, v_tri, e_tri, f);
 
 			/* Ensure that v1 is in the new face's node */

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list