Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
bvh::v2::DefaultBuilder< Node > Class Template Reference

template<typename Node>
class bvh::v2::DefaultBuilder< Node >

This builder is only a wrapper around all the other builders, which selects the best builder depending on the desired BVH quality and whether a multi-threaded build is desired.

Definition at line 15 of file default_builder.h.

Classes

struct  Config
 

Public Types

enum class  Quality { Low , Medium , High }
 

Static Public Member Functions

static BVH_ALWAYS_INLINE Bvh< Nodebuild (std::span< const BBox > bboxes, std::span< const Vec > centers, const Config &config={})
 Build a BVH in a single-thread.
 
static BVH_ALWAYS_INLINE Bvh< Nodebuild (ThreadPool &thread_pool, std::span< const BBox > bboxes, std::span< const Vec > centers, const Config &config={})
 Build a BVH in parallel using the given thread pool.
 

Private Types

using BBox = bvh::v2::BBox< Scalar, Node::dimension >
 
using Scalar = typename Node::Scalar
 
using Vec = bvh::v2::Vec< Scalar, Node::dimension >
 

Static Private Member Functions

static BVH_ALWAYS_INLINE auto make_mini_tree_config (const Config &config)
 

#include <bvh/v2/default_builder.h>

Member Typedef Documentation

◆ BBox

template<typename Node >
using bvh::v2::DefaultBuilder< Node >::BBox = bvh::v2::BBox<Scalar, Node::dimension>
private

Definition at line 18 of file default_builder.h.

◆ Scalar

template<typename Node >
using bvh::v2::DefaultBuilder< Node >::Scalar = typename Node::Scalar
private

Definition at line 16 of file default_builder.h.

◆ Vec

template<typename Node >
using bvh::v2::DefaultBuilder< Node >::Vec = bvh::v2::Vec<Scalar, Node::dimension>
private

Definition at line 17 of file default_builder.h.

Member Enumeration Documentation

◆ Quality

template<typename Node >
enum class bvh::v2::DefaultBuilder::Quality
strong
Enumerator
Low 
Medium 
High 

Definition at line 21 of file default_builder.h.

Member Function Documentation

◆ build() [1/2]

template<typename Node >
static BVH_ALWAYS_INLINE Bvh< Node > bvh::v2::DefaultBuilder< Node >::build ( std::span< const BBox bboxes,
std::span< const Vec centers,
const Config config = {} 
)
inlinestatic

Build a BVH in a single-thread.

Definition at line 49 of file default_builder.h.

◆ build() [2/2]

template<typename Node >
static BVH_ALWAYS_INLINE Bvh< Node > bvh::v2::DefaultBuilder< Node >::build ( ThreadPool thread_pool,
std::span< const BBox bboxes,
std::span< const Vec centers,
const Config config = {} 
)
inlinestatic

Build a BVH in parallel using the given thread pool.

Definition at line 33 of file default_builder.h.

◆ make_mini_tree_config()

template<typename Node >
static BVH_ALWAYS_INLINE auto bvh::v2::DefaultBuilder< Node >::make_mini_tree_config ( const Config config)
inlinestaticprivate

Definition at line 65 of file default_builder.h.


The documentation for this class was generated from the following file: