https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Classes | Functions
TriangleManifoldUtils Namespace Reference

Classes

class  SurfaceChecker
 

Functions

std::uint64_t packCell (const std::size_t y_index, const std::size_t z_index)
 
std::size_t cellIndex (const Real value, const Real min_value, const Real cell_size, const std::size_t num_cells)
 

Function Documentation

◆ cellIndex()

std::size_t TriangleManifoldUtils::cellIndex ( const Real  value,
const Real  min_value,
const Real  cell_size,
const std::size_t  num_cells 
)

Definition at line 33 of file TriangleManifold.C.

34{
35 // Clamp to the valid range so near-boundary roundoff does not produce an invalid cell id.
36 if (num_cells <= 1)
37 return 0;
38
39 const auto index = static_cast<long long>(std::floor((value - min_value) / cell_size));
40 if (index < 0)
41 return 0;
42 if (index >= static_cast<long long>(num_cells))
43 return num_cells - 1;
44 return static_cast<std::size_t>(index);
45}

Referenced by TriangleManifold::buildCandidateGrid(), and TriangleManifold::rayCandidates().

◆ packCell()

std::uint64_t TriangleManifoldUtils::packCell ( const std::size_t  y_index,
const std::size_t  z_index 
)

Definition at line 26 of file TriangleManifold.C.

27{
28 // The acceleration structure is indexed in yz because all rays travel in the +x direction.
29 return (static_cast<std::uint64_t>(y_index) << 32) | static_cast<std::uint64_t>(z_index);
30}

Referenced by TriangleManifold::buildCandidateGrid(), and TriangleManifold::rayCandidates().