[Bf-blender-cvs] [98b3cf7] temp-mball-refactor: cleanup: minor edits to BVH code

Campbell Barton noreply at git.blender.org
Fri Feb 27 16:52:20 CET 2015


Commit: 98b3cf72b09e92dda445029effe76d6037bc9979
Author: Campbell Barton
Date:   Sat Feb 28 02:50:28 2015 +1100
Branches: temp-mball-refactor
https://developer.blender.org/rB98b3cf72b09e92dda445029effe76d6037bc9979

cleanup: minor edits to BVH code

===================================================================

M	source/blender/blenkernel/intern/mball_tessellate.c

===================================================================

diff --git a/source/blender/blenkernel/intern/mball_tessellate.c b/source/blender/blenkernel/intern/mball_tessellate.c
index c6416ab..4d893e4 100644
--- a/source/blender/blenkernel/intern/mball_tessellate.c
+++ b/source/blender/blenkernel/intern/mball_tessellate.c
@@ -166,23 +166,26 @@ static void make_box_from_ml(Box *r, MetaElem *ml)
  * where centroids of elements in the [start, i) segment lie "on the right side" of div,
  * and elements in the [i, end) segment lie "on the left"
  */
-static unsigned int partition_mainb(PROCESS *process, unsigned int start, unsigned int end, unsigned int s, float div)
+static unsigned int partition_mainb(MetaElem **mainb, unsigned int start, unsigned int end, unsigned int s, float div)
 {
 	unsigned int i = start, j = end - 1;
 	div *= 2.0f;
 
 	while (1) {
-		while (i < j && process->mainb[i]->bb->vec[6][s] + process->mainb[i]->bb->vec[0][s] < div) i++;
-		while (j > i && div < process->mainb[j]->bb->vec[6][s] + process->mainb[j]->bb->vec[0][s]) j--;
+		while (i < j && div > (mainb[i]->bb->vec[6][s] + mainb[i]->bb->vec[0][s])) i++;
+		while (j > i && div < (mainb[j]->bb->vec[6][s] + mainb[j]->bb->vec[0][s])) j--;
 
 		if (i >= j)
 			break;
 
-		SWAP(MetaElem *, process->mainb[i], process->mainb[j]);
-		i++; j--;
+		SWAP(MetaElem *, mainb[i], mainb[j]);
+		i++;
+		j--;
 	}
 
-	if (i == start) i++;
+	if (i == start) {
+		i++;
+	}
 
 	return i;
 }
@@ -210,7 +213,7 @@ static void build_bvh_spatial(
 
 	div = allbox->min[s] + (dim[s] / 2.0f);
 
-	part = partition_mainb(process, start, end, s, div);
+	part = partition_mainb(process->mainb, start, end, s, div);
 
 	make_box_from_ml(&node->bb[0], process->mainb[start]);
 	node->child[0] = NULL;
@@ -235,7 +238,9 @@ static void build_bvh_spatial(
 			build_bvh_spatial(process, node->child[1], part, end, &node->bb[1]);
 		}
 	}
-	else INIT_MINMAX(node->bb[1].min, node->bb[1].max);
+	else {
+		INIT_MINMAX(node->bb[1].min, node->bb[1].max);
+	}
 }
 
 /* ******************** ARITH ************************* */




More information about the Bf-blender-cvs mailing list