diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-03-19 09:16:50 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-03-19 10:31:56 +0300 |
commit | 1a7596951aafcd0f9c0f112a79c9b6e79d6ac323 (patch) | |
tree | 0621c6f79127f9216b481e8df137be14b11699d4 /source/blender/blenlib | |
parent | 6aeb1f7f5609dc1e82b9b2d915e2ee54b3c467de (diff) |
BLI_kdopbvh: Pass center to to range callback
Useful when BLI_bvhtree_range_query callback calculates a new position to measure from.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r-- | source/blender/blenlib/BLI_kdopbvh.h | 2 | ||||
-rw-r--r-- | source/blender/blenlib/intern/BLI_kdopbvh.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/blenlib/BLI_kdopbvh.h b/source/blender/blenlib/BLI_kdopbvh.h index f1ef1d9f9b9..be792669ef1 100644 --- a/source/blender/blenlib/BLI_kdopbvh.h +++ b/source/blender/blenlib/BLI_kdopbvh.h @@ -102,7 +102,7 @@ typedef void (*BVHTree_NearestToRayCallback)(void *userdata, int index, const BV typedef bool (*BVHTree_OverlapCallback)(void *userdata, int index_a, int index_b, int thread); /* callback to range search query */ -typedef void (*BVHTree_RangeQuery)(void *userdata, int index, float dist_sq); +typedef void (*BVHTree_RangeQuery)(void *userdata, int index, const float co[3], float dist_sq); /* callbacks to BLI_bvhtree_walk_dfs */ diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index 22862b8e0d7..bba3fdb37bc 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -2009,7 +2009,7 @@ static void dfs_range_query(RangeQueryData *data, BVHNode *node) /* Its a leaf.. call the callback */ if (node->children[i]->totnode == 0) { data->hits++; - data->callback(data->userdata, node->children[i]->index, dist_sq); + data->callback(data->userdata, node->children[i]->index, data->center, dist_sq); } else dfs_range_query(data, node->children[i]); @@ -2040,7 +2040,7 @@ int BLI_bvhtree_range_query( /* Its a leaf.. call the callback */ if (root->totnode == 0) { data.hits++; - data.callback(data.userdata, root->index, dist_sq); + data.callback(data.userdata, root->index, co, dist_sq); } else dfs_range_query(&data, root); |