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-16 16:31:27 +0300
committerGermano <germano.costa@ig.com.br>2018-05-16 16:32:54 +0300
commit2ba0951e5219aa82f3e5c00890512c8ba8889c9d (patch)
treeacd176a0ba6517a56cdf70941925fa1ee43985d4 /source/blender/blenlib
parent6a4ba9133ce7937fb90902372302cad0f424e6d7 (diff)
Snap system: Adds support to Clip Planes and uses a clip plane to simulate occlusion
This patch adds support for clip_planes (ie ignore what is behind a face)... The idea is to first execute a raycast to get the polygon to which the mouse cursor points. Then a snap test is done on the vertices or edges of the polygon. Then with the normal and location obtained in raycast a new clip_plane is created and the snap over the whole scene is processed ignoring the elements behind the clip_plane. Here 2 gif of how the previous patch would work on blender2.79: {F497176} {F497177} Reviewers: mont29, campbellbarton Reviewed By: campbellbarton Subscribers: bliblubli Tags: #bf_blender_2.8 Differential Revision: https://developer.blender.org/D2527
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;