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 34 of file TriangleManifold.C.

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

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 27 of file TriangleManifold.C.

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

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