|
EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
|
The nearest crossings of a mesh along a ray, in order, as a BVH walk finds them: at most Capacity, enough for the spans a list holds and one more. More...
#include <EBGeometry_MeshRayForms.hpp>

Classes | |
| struct | Crossing |
| A crossing. More... | |
Public Member Functions | |
| void | insert (const T a_t, const bool a_entering) noexcept |
| Take a crossing. | |
| T | horizon () const noexcept |
| How far the crossings are known: the end of the interval, or the farthest held once full. | |
| void | toSpans (const T a_t0, const bool a_inside, RaySpansT< T > &a_spans) const noexcept |
| The spans: the crossings paired by the side of the face the ray crosses from. | |
Public Attributes | |
| Crossing | m_crossings [Capacity] |
| The crossings, nearest first. | |
| uint32_t | m_count = 0 |
| How many are held. | |
| T | m_tMax |
| End of the interval. | |
Static Public Attributes | |
| static constexpr uint32_t | Capacity = 2U * RaySpansT<T>::Capacity + 1U |
| Most crossings held. | |
The nearest crossings of a mesh along a ray, in order, as a BVH walk finds them: at most Capacity, enough for the spans a list holds and one more.
Internal helper; not part of the public API. Once full, a nearer crossing replaces the farthest, and the walk's bound is the farthest, so that it leaves out the boxes beyond; the crossings are then known only up to it.
| T | Floating-point precision. |
|
inlinenoexcept |
How far the crossings are known: the end of the interval, or the farthest held once full.
|
inlinenoexcept |
Take a crossing.
| [in] | a_t | Distance along the ray. |
| [in] | a_entering | Whether the ray enters there. |
|
inlinenoexcept |
The spans: the crossings paired by the side of the face the ray crosses from.
| [in] | a_t0 | Start of the interval. |
| [in] | a_inside | Whether the ray is inside at a_t0; read only if there are no crossings. |
| [out] | a_spans | The list. |