[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41580] trunk/blender/source/blender/ blenlib: use BLI math functions for kdopbvh (no functional change)

Campbell Barton ideasman42 at gmail.com
Sun Nov 6 13:11:54 CET 2011


Revision: 41580
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41580
Author:   campbellbarton
Date:     2011-11-06 12:11:50 +0000 (Sun, 06 Nov 2011)
Log Message:
-----------
use BLI math functions for kdopbvh (no functional change)

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/BLI_kdopbvh.h
    trunk/blender/source/blender/blenlib/intern/BLI_kdopbvh.c

Modified: trunk/blender/source/blender/blenlib/BLI_kdopbvh.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_kdopbvh.h	2011-11-06 11:07:42 UTC (rev 41579)
+++ trunk/blender/source/blender/blenlib/BLI_kdopbvh.h	2011-11-06 12:11:50 UTC (rev 41580)
@@ -85,11 +85,11 @@
 void BLI_bvhtree_free(BVHTree *tree);
 
 /* construct: first insert points, then call balance */
-int BLI_bvhtree_insert(BVHTree *tree, int index, float *co, int numpoints);
+int BLI_bvhtree_insert(BVHTree *tree, int index, const float *co, int numpoints);
 void BLI_bvhtree_balance(BVHTree *tree);
 
 /* update: first update points/nodes, then call update_tree to refit the bounding volumes */
-int BLI_bvhtree_update_node(BVHTree *tree, int index, float *co, float *co_moving, int numpoints);
+int BLI_bvhtree_update_node(BVHTree *tree, int index, const float *co, const float *co_moving, int numpoints);
 void BLI_bvhtree_update_tree(BVHTree *tree);
 
 /* collision/overlap: check two trees if they overlap, alloc's *overlap with length of the int return value */
@@ -98,14 +98,14 @@
 float BLI_bvhtree_getepsilon(BVHTree *tree);
 
 /* find nearest node to the given coordinates (if nearest is given it will only search nodes where square distance is smaller than nearest->dist) */
-int BLI_bvhtree_find_nearest(BVHTree *tree, const float *co, BVHTreeNearest *nearest, BVHTree_NearestPointCallback callback, void *userdata);
+int BLI_bvhtree_find_nearest(BVHTree *tree, const float co[3], BVHTreeNearest *nearest, BVHTree_NearestPointCallback callback, void *userdata);
 
-int BLI_bvhtree_ray_cast(BVHTree *tree, const float *co, const float *dir, float radius, BVHTreeRayHit *hit, BVHTree_RayCastCallback callback, void *userdata);
+int BLI_bvhtree_ray_cast(BVHTree *tree, const float co[3], const float *dir, float radius, BVHTreeRayHit *hit, BVHTree_RayCastCallback callback, void *userdata);
 
-float BLI_bvhtree_bb_raycast(float *bv, float *light_start, float *light_end, float *pos);
+float BLI_bvhtree_bb_raycast(float *bv, const float light_start[3], const float light_end[3], float pos[3]);
 
 /* range query */
-int BLI_bvhtree_range_query(BVHTree *tree, const float *co, float radius, BVHTree_RangeQuery callback, void *userdata);
+int BLI_bvhtree_range_query(BVHTree *tree, const float co[3], float radius, BVHTree_RangeQuery callback, void *userdata);
 
 #ifdef __cplusplus
 }

Modified: trunk/blender/source/blender/blenlib/intern/BLI_kdopbvh.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/BLI_kdopbvh.c	2011-11-06 11:07:42 UTC (rev 41579)
+++ trunk/blender/source/blender/blenlib/intern/BLI_kdopbvh.c	2011-11-06 12:11:50 UTC (rev 41580)
@@ -387,7 +387,7 @@
 /*
  * BVHTree bounding volumes functions
  */
-static void create_kdop_hull(BVHTree *tree, BVHNode *node, float *co, int numpoints, int moving)
+static void create_kdop_hull(BVHTree *tree, BVHNode *node, const float *co, int numpoints, int moving)
 {
 	float newminmax;
 	float *bv = node->bv;
@@ -973,7 +973,7 @@
 	//bvhtree_info(tree);
 }
 
-int BLI_bvhtree_insert(BVHTree *tree, int index, float *co, int numpoints)
+int BLI_bvhtree_insert(BVHTree *tree, int index, const float *co, int numpoints)
 {
 	int i;
 	BVHNode *node = NULL;
@@ -1005,7 +1005,7 @@
 
 
 // call before BLI_bvhtree_update_tree()
-int BLI_bvhtree_update_node(BVHTree *tree, int index, float *co, float *co_moving, int numpoints)
+int BLI_bvhtree_update_node(BVHTree *tree, int index, const float *co, const float *co_moving, int numpoints)
 {
 	int i;
 	BVHNode *node= NULL;
@@ -1194,7 +1194,7 @@
 }
 
 //Determines the nearest point of the given node BV. Returns the squared distance to that point.
-static float calc_nearest_point(const float *proj, BVHNode *node, float *nearest)
+static float calc_nearest_point(const float proj[3], BVHNode *node, float *nearest)
 {
 	int i;
 	const float *bv = node->bv;
@@ -1212,7 +1212,7 @@
 
 /*
 	//nearest on a general hull
-	VECCOPY(nearest, data->co);
+	copy_v3_v3(nearest, data->co);
 	for(i = data->tree->start_axis; i != data->tree->stop_axis; i++, bv+=2)
 	{
 		float proj = dot_v3v3( nearest, KDOP_AXES[i]);
@@ -1221,11 +1221,11 @@
 
 		if(dl > 0)
 		{
-			VECADDFAC(nearest, nearest, KDOP_AXES[i], dl);
+			madd_v3_v3fl(nearest, KDOP_AXES[i], dl);
 		}
 		else if(du < 0)
 		{
-			VECADDFAC(nearest, nearest, KDOP_AXES[i], du);
+			madd_v3_v3fl(nearest, KDOP_AXES[i], du);
 		}
 	}
 */
@@ -1377,7 +1377,7 @@
 #endif
 
 
-int BLI_bvhtree_find_nearest(BVHTree *tree, const float *co, BVHTreeNearest *nearest, BVHTree_NearestPointCallback callback, void *userdata)
+int BLI_bvhtree_find_nearest(BVHTree *tree, const float co[3], BVHTreeNearest *nearest, BVHTree_NearestPointCallback callback, void *userdata)
 {
 	int i;
 
@@ -1510,7 +1510,7 @@
 		{
 			data->hit.index	= node->index;
 			data->hit.dist  = dist;
-			VECADDFAC(data->hit.co, data->ray.origin, data->ray.direction, dist);
+			madd_v3_v3v3fl(data->hit.co, data->ray.origin, data->ray.direction, dist);
 		}
 	}
 	else
@@ -1553,7 +1553,7 @@
 			{
 				data->hit.index	= node->index;
 				data->hit.dist  = dist;
-				VECADDFAC(data->hit.co, data->ray.origin, data->ray.direction, dist);
+				madd_v3_v3v3fl(data->hit.co, data->ray.origin, data->ray.direction, dist);
 			}
 			
 			node = node->skip[1];
@@ -1566,7 +1566,7 @@
 }
 #endif
 
-int BLI_bvhtree_ray_cast(BVHTree *tree, const float *co, const float *dir, float radius, BVHTreeRayHit *hit, BVHTree_RayCastCallback callback, void *userdata)
+int BLI_bvhtree_ray_cast(BVHTree *tree, const float co[3], const float dir[3], float radius, BVHTreeRayHit *hit, BVHTree_RayCastCallback callback, void *userdata)
 {
 	int i;
 	BVHRayCastData data;
@@ -1577,8 +1577,8 @@
 	data.callback = callback;
 	data.userdata = userdata;
 
-	VECCOPY(data.ray.origin,    co);
-	VECCOPY(data.ray.direction, dir);
+	copy_v3_v3(data.ray.origin,    co);
+	copy_v3_v3(data.ray.direction, dir);
 	data.ray.radius = radius;
 
 	normalize_v3(data.ray.direction);
@@ -1620,7 +1620,7 @@
 	return data.hit.index;
 }
 
-float BLI_bvhtree_bb_raycast(float *bv, float *light_start, float *light_end, float *pos)
+float BLI_bvhtree_bb_raycast(float *bv, const float light_start[3], const float light_end[3], float pos[3])
 {
 	BVHRayCastData data;
 	float dist = 0.0;
@@ -1639,13 +1639,13 @@
 	data.ray.origin[2] = light_start[2];
 	
 	normalize_v3(data.ray.direction);
-	VECCOPY(data.ray_dot_axis, data.ray.direction);
+	copy_v3_v3(data.ray_dot_axis, data.ray.direction);
 	
 	dist = ray_nearest_hit(&data, bv);
 	
 	if(dist > 0.0f)
 	{
-		VECADDFAC(pos, light_start, data.ray.direction, dist);
+		madd_v3_v3v3fl(pos, light_start, data.ray.direction, dist);
 	}
 	return dist;
 	
@@ -1706,7 +1706,7 @@
 	}
 }
 
-int BLI_bvhtree_range_query(BVHTree *tree, const float *co, float radius, BVHTree_RangeQuery callback, void *userdata)
+int BLI_bvhtree_range_query(BVHTree *tree, const float co[3], float radius, BVHTree_RangeQuery callback, void *userdata)
 {
 	BVHNode * root = tree->nodes[tree->totleaf];
 




More information about the Bf-blender-cvs mailing list