MCPcopy Create free account
hub / github.com/RenderKit/embree / runIntersectionFilterHelper

Function runIntersectionFilterHelper

kernels/geometry/filter.h:87–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

85
86 template<int K>
87 __forceinline vbool<K> runIntersectionFilterHelper(RTCFilterFunctionNArguments* args, const Geometry* const geometry, RayQueryContext* context)
88 {
89 vint<K>* mask = (vint<K>*) args->valid;
90 if (geometry->intersectionFilterN)
91 geometry->intersectionFilterN(args);
92
93 vbool<K> valid_o = *mask != vint<K>(zero);
94 if (none(valid_o)) return valid_o;
95
96 if (context->getFilter()) {
97 if (context->enforceArgumentFilterFunction() || geometry->hasArgumentFilterFunctions())
98 context->getFilter()(args);
99 }
100
101 valid_o = *mask != vint<K>(zero);
102 if (none(valid_o)) return valid_o;
103
104 copyHitToRay(valid_o,*(RayHitK<K>*)args->ray,*(HitK<K>*)args->hit);
105 return valid_o;
106 }
107
108 template<int K>
109 __forceinline vbool<K> runIntersectionFilter(const vbool<K>& valid, const Geometry* const geometry, RayHitK<K>& ray, RayQueryContext* context, HitK<K>& hit)

Callers

nothing calls this directly

Calls 5

copyHitToRayFunction · 0.85
intersectionFilterNMethod · 0.80
getFilterMethod · 0.80
noneFunction · 0.50

Tested by

no test coverage detected