|
EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
|
The one triangle ray-crossing kernel, written once for a scalar and for every SIMD::Pack. More...
#include "EBGeometry_GPU.hpp"#include "EBGeometry_Math.hpp"#include "EBGeometry_SIMD.hpp"#include "EBGeometry_TriangleDistance.hpp"

Go to the source code of this file.
Namespaces | |
| namespace | EBGeometry |
| Namespace containing all of EBGeometry's functionality. | |
| namespace | EBGeometry::TriangleRay |
| The triangle ray-crossing kernel. | |
Functions | |
| template<class V , class Source > | |
| EBGEOMETRY_HOST_ALWAYS_INLINE V | EBGeometry::TriangleRay::crossing (const Source &a_triangle, const TriangleDistance::Vec3V< V > &a_origin, const TriangleDistance::Vec3V< V > &a_direction, const V a_tMin, const V a_tMax) noexcept |
| Where a ray crosses a triangle, or one triangle per lane (Möller–Trumbore). | |
The one triangle ray-crossing kernel, written once for a scalar and for every SIMD::Pack.
TriangleSoAT's lanes and SIMD groups call TriangleRay::crossing(), with V = T for one triangle and V = SIMD::Pack<T, N> for N triangles at once.