33 class KarrasRadixTree;
77 inline KarrasTreeTraverserHost get_structure_traverser_host()
const {
78 return KarrasTreeTraverserHost{
86 static inline KarrasRadixTree make_empty(sham::DeviceScheduler_ptr dev_sched) {
119 template<
class Tmorton>
120 KarrasRadixTree karras_tree_from_morton_set(
121 sham::DeviceScheduler_ptr dev_sched,
124 KarrasRadixTree &&recycled_tree);
139 template<
class Tmorton>
140 KarrasRadixTree karras_tree_from_morton_set(
141 sham::DeviceScheduler_ptr dev_sched,
146 std::string karras_tree_to_dot_graph(KarrasRadixTree &recycled_tree);
std::uint32_t u32
32 bit unsigned integer
A buffer allocated in USM (Unified Shared Memory)
std::vector< T > copy_to_stdvec() const
Copy the content of the buffer to a std::vector.
size_t get_size() const
Gets the number of elements in the buffer.
A data structure representing a Karras Radix Tree.
sham::DeviceBuffer< u8 > buf_rchild_flag
right child flag (size = internal_count)
u32 get_leaf_count() const
Get leaf count.
sham::DeviceBuffer< u32 > buf_rchild_id
right child id (size = internal_count)
sham::DeviceBuffer< u32 > buf_endrange
endrange (size = internal_count)
bool is_root_leaf() const
is the root a leaf ?
sham::DeviceBuffer< u32 > buf_lchild_id
left child id (size = internal_count)
u32 get_internal_cell_count() const
Get internal cell count.
sham::DeviceBuffer< u8 > buf_lchild_flag
left child flag (size = internal_count)
KarrasRadixTree(sham::DeviceBuffer< u32 > &&buf_lchild_id, sham::DeviceBuffer< u32 > &&buf_rchild_id, sham::DeviceBuffer< u8 > &&buf_lchild_flag, sham::DeviceBuffer< u8 > &&buf_rchild_flag, sham::DeviceBuffer< u32 > &&buf_endrange, u32 tree_depth)
CTOR.
Utility struct to traverse a Karras Radix Tree.