commit b506b79c08b2a836a76581d4287d7371911d0c2b
parent d2893b8fce22d5b135bc2f26009653ea7fe4ca76
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Tue, 22 Jun 2021 17:33:38 +0200
Update Star-<2|3>D dependencies to 0.5 and 0.8
Fix API break on filter function
Diffstat:
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
@@ -29,8 +29,8 @@ CMAKE_DEPENDENT_OPTION(ALL_TESTS
# Check dependencies
###############################################################################
find_package(RCMake 0.4 REQUIRED)
-find_package(Star2D 0.4 REQUIRED)
-find_package(Star3D 0.7 REQUIRED)
+find_package(Star2D 0.5 REQUIRED)
+find_package(Star3D 0.8 REQUIRED)
find_package(StarSP 0.8 REQUIRED)
find_package(StarEnc2D 0.5 REQUIRED)
find_package(StarEnc3D 0.5 REQUIRED)
diff --git a/src/sdis_scene_Xd.h b/src/sdis_scene_Xd.h
@@ -445,16 +445,19 @@ XD(hit_filter_function)
(const struct sXd(hit)* hit,
const float org[DIM],
const float dir[DIM],
+ const float range[2],
void* ray_data,
void* global_data)
{
const struct hit_filter_data* filter_data = ray_data;
const struct sXd(hit)* hit_from = &filter_data->XD(hit);
- (void)org, (void)dir, (void)global_data;
+ (void)org, (void)dir, (void)global_data, (void)range;
if(!ray_data || SXD_HIT_NONE(hit_from)) return 0; /* No filtering */
if(SXD_PRIMITIVE_EQ(&hit_from->prim, &hit->prim)) return 1;
+
+ /* No displacement => assume self intersection */
if(hit->distance <= 0) return 1;
if(eq_epsf(hit->distance, 0, (float)filter_data->epsilon)) {