40 template<
class Tmorton,
class Tvec, u32 dim>
41 class CompressedLeafBVH;
45template<
class Tmorton,
class Tvec, u32 dim>
48 void internal_rebuild_from_positions_no_aabb(
52 u32 compression_level);
109 u32 compression_level);
123 u32 compression_level);
125 void rebuild_from_position_range(
130 u32 compression_level);
132 void rebuild_from_position_range(
136 u32 compression_level);
144 structure.get_structure_traverser_host(),
145 aabbs.buf_aabb_min.copy_to_stdvec(),
146 aabbs.buf_aabb_max.copy_to_stdvec()};
168 inline CellIterator get_cell_iterator()
const {
173 inline CellIteratorHost get_cell_iterator_host()
const {
std::uint32_t u32
32 bit unsigned integer
A buffer allocated in USM (Unified Shared Memory)
A Compressed Leaf Bounding Volume Hierarchy (CLBVH) for neighborhood queries.
bool is_empty() const
is the BVH empty ?
shamtree::CLBVHObjectIterator< Tmorton, Tvec, dim > get_object_iterator() const
Retrieves an iterator for traversing objects in the BVH.
CompressedLeafBVH(MortonReducedSet< Tmorton, Tvec, dim > &&reduced_morton_set, KarrasRadixTree &&structure, KarrasRadixTreeAABB< Tvec > &&aabbs)
Construct a new CompressedLeafBVH from a MortonReducedSet, a KarrasRadixTree, and a KarrasRadixTreeAA...
KarrasRadixTreeAABB< Tvec > aabbs
The bounding box of the tree cells.
MortonReducedSet< Tmorton, Tvec, dim > reduced_morton_set
The reduced set of Morton codes.
u32 get_leaf_cell_count()
Get leaf cell count.
void rebuild_from_positions(sham::DeviceBuffer< Tvec > &positions, const shammath::AABB< Tvec > &bounding_box, u32 compression_level)
rebuild the BVH from the given positions
KarrasRadixTree structure
The tree structure.
static CompressedLeafBVH make_empty(sham::DeviceScheduler_ptr dev_sched)
make an empty BVH
u32 get_internal_cell_count()
Get internal cell count.
bool is_root_leaf() const
is the root a leaf ?
u32 get_total_cell_count()
Get internal cell count.
A data structure representing a Karras Radix Tree.
u32 get_leaf_count() const
Get leaf count.
sham::DeviceBuffer< u32 > buf_endrange
endrange (size = internal_count)
bool is_root_leaf() const
is the root a leaf ?
u32 get_internal_cell_count() const
Get internal cell count.
Class representing a set of Morton codes with associated bounding box and position data that was redu...
Morton curve implementation.
Axis-Aligned bounding box.
host version of the object iterator
This class is designed to traverse a BVH tree represented as a Compressed Leaf BVH (CLBVH) and a Karr...
host version of the traverser
This class is designed to traverse a BVH tree represented as a Compressed Leaf BVH (CLBVH) and a Karr...