EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
Public Attributes | List of all members
EBGeometry::RayOptions< T > Struct Template Reference

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.
 

Detailed Description

template<class T>
struct EBGeometry::RayOptions< T >

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.

Template Parameters
TFloating-point precision.

Member Data Documentation

◆ m_tolerance

template<class T >
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.


The documentation for this struct was generated from the following file: