40 class KarrasRadixTreeAABB;
67 KarrasRadixTreeAABB<Tvec> new_empty_karras_radix_tree_aabb() {
68 auto dev_sched = shamsys::instance::get_compute_scheduler_ptr();
69 return KarrasRadixTreeAABB<Tvec>(
87 const KarrasRadixTree &tree, KarrasRadixTreeAABB<Tvec> &&recycled_tree_aabb);
104 void propagate_aabb_up(KarrasRadixTreeAABB<Tvec> &tree_aabb,
const KarrasRadixTree &tree);
118 const KarrasRadixTree &tree,
119 KarrasRadixTreeAABB<Tvec> &&recycled_tree_aabb,
120 const std::function<
void(KarrasRadixTreeAABB<Tvec> &,
u32)> &fct_fill_leaf);
137 const KarrasRadixTree &tree,
138 const LeafCellIterator &cell_it,
139 KarrasRadixTreeAABB<Tvec> &&recycled_tree_aabb,
145 const KarrasRadixTree &tree,
146 const LeafCellIterator &cell_it,
147 KarrasRadixTreeAABB<Tvec> &&recycled_tree_aabb,
void propagate_aabb_up(KarrasRadixTreeAABB< Tvec > &tree_aabb, const KarrasRadixTree &tree)
Propagates the axis-aligned bounding boxes (AABBs) upwards in the tree.
KarrasRadixTreeAABB< Tvec > compute_tree_aabb(const KarrasRadixTree &tree, KarrasRadixTreeAABB< Tvec > &&recycled_tree_aabb, const std::function< void(KarrasRadixTreeAABB< Tvec > &, u32)> &fct_fill_leaf)
Compute the AABB of all cells in the tree.
KarrasRadixTreeAABB< Tvec > compute_tree_aabb_from_position_ranges(const KarrasRadixTree &tree, const LeafCellIterator &cell_it, KarrasRadixTreeAABB< Tvec > &&recycled_tree_aabb, sham::DeviceBuffer< Tvec > &min, sham::DeviceBuffer< Tvec > &max)
same but for position ranges
KarrasRadixTreeAABB< Tvec > compute_tree_aabb_from_positions(const KarrasRadixTree &tree, const LeafCellIterator &cell_it, KarrasRadixTreeAABB< Tvec > &&recycled_tree_aabb, sham::DeviceBuffer< Tvec > &positions)
Compute the AABB of all cells in the tree from positions.
KarrasRadixTreeAABB< Tvec > prepare_karras_radix_tree_aabb(const KarrasRadixTree &tree, KarrasRadixTreeAABB< Tvec > &&recycled_tree_aabb)
Prepare a KarrasRadixTreeAABB from a KarrasRadixTree.
Header file describing a Node Instance.
std::uint32_t u32
32 bit unsigned integer
A buffer allocated in USM (Unified Shared Memory)
size_t get_size() const
Gets the number of elements in the buffer.
sham::DeviceBuffer< Tvec > buf_aabb_max
right child id (size = internal_count)
KarrasRadixTreeAABB(sham::DeviceBuffer< Tvec > &&buf_cell_min, sham::DeviceBuffer< Tvec > &&buf_cell_max)
CTOR.
u32 get_total_cell_count()
Get internal cell count.
sham::DeviceBuffer< Tvec > buf_aabb_min
left child id (size = internal_count)