|
EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
|
How a query marches, where a shape has no ray form. More...
#include <EBGeometry_Ray.hpp>
Public Attributes | |
| T | m_tolerance = T(1e-4) |
| The march's tolerance, times the scale. | |
| T | m_scale = T(0) |
| The shape's length scale; 0 takes the diagonal of its bounding box. | |
| uint32_t | m_maxSteps = 512 |
| Steps a query may take before it is unresolved. | |
| T | m_step = T(0.005) |
| Step length, times the scale, where the value is not a distance (DistanceQuality::NotADistance). Features thinner than this can be missed, and a missed feature is a miss, not an unresolved query. | |
| bool | m_march = false |
| Whether to march the shape even where it has a ray form, as a shape without one is marched: a reference to compare a ray form with, or a way round one. | |
How a query marches, where a shape has no ray form.
Lengths are relative to the shape's scale: the diagonal of its bounding box, or m_scale if that is positive. A shape whose box is unbounded (a plane, a complement) has no diagonal; give it a scale, or the scale is 1.
| T | Floating-point precision. |
| T EBGeometry::RayOptions< T >::m_tolerance = T(1e-4) |
The march's tolerance, times the scale.
Marching a distance or a bound (Exact, Bound), a crossing is accepted where |value| is below it; marching a value that is not a distance (NotADistance), which only looks for a change of sign, it is the length the bisection stops at. It is also the step of the gradient that gives a marched crossing its normal, and the window in which a composition looks up which leaf was crossed.