Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGermano <germano.costa@ig.com.br>2018-05-15 20:14:25 +0300
committerGermano <germano.costa@ig.com.br>2018-05-15 20:14:25 +0300
commit717dd4cecd2ea8eaa7b3bbfb5a5c7ec65f0337c0 (patch)
treed481c84a541de479ebccd8004168d42d7e47a322 /source/blender/blenlib
parenta2dd6fa58b66912bdebcc07c504212bac617f253 (diff)
BLI_kdopbvh: Reference clip_planes callback to find nearest projected.
Clip_planes are an important parameter to be used in callbacks.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r--source/blender/blenlib/BLI_kdopbvh.h1
-rw-r--r--source/blender/blenlib/intern/BLI_kdopbvh.c10
2 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/blenlib/BLI_kdopbvh.h b/source/blender/blenlib/BLI_kdopbvh.h
index 76c3b6ef3fd..e7cbe05d713 100644
--- a/source/blender/blenlib/BLI_kdopbvh.h
+++ b/source/blender/blenlib/BLI_kdopbvh.h
@@ -107,6 +107,7 @@ typedef void (*BVHTree_RangeQuery)(void *userdata, int index, const float co[3],
typedef void (*BVHTree_NearestProjectedCallback)(
void *userdata, int index,
const struct DistProjectedAABBPrecalc *precalc,
+ const float (*clip_plane)[4], const int clip_plane_len,
BVHTreeNearest *nearest);
diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c
index 5571636be63..b3adf3106c1 100644
--- a/source/blender/blenlib/intern/BLI_kdopbvh.c
+++ b/source/blender/blenlib/intern/BLI_kdopbvh.c
@@ -2040,7 +2040,10 @@ static void bvhtree_nearest_projected_dfs_recursive(
{
if (node->totnode == 0) {
if (data->callback) {
- data->callback(data->userdata, node->index, &data->precalc, &data->nearest);
+ data->callback(
+ data->userdata, node->index, &data->precalc,
+ NULL, 0,
+ &data->nearest);
}
else {
data->nearest.index = node->index;
@@ -2089,7 +2092,10 @@ static void bvhtree_nearest_projected_with_clipplane_test_dfs_recursive(
{
if (node->totnode == 0) {
if (data->callback) {
- data->callback(data->userdata, node->index, &data->precalc, &data->nearest);
+ data->callback(
+ data->userdata, node->index, &data->precalc,
+ data->clip_plane, data->clip_plane_len,
+ &data->nearest);
}
else {
data->nearest.index = node->index;