68 auto dev_sched = shamsys::instance::get_compute_scheduler_ptr();
70 sham::DeviceBuffer<Tvec>(0, dev_sched), sham::DeviceBuffer<Tvec>(0, dev_sched));
140 sham::DeviceBuffer<Tvec> &positions);
148 sham::DeviceBuffer<Tvec> &min,
149 sham::DeviceBuffer<Tvec> &max);
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).
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)
A data structure representing a Karras Radix Tree.