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

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

Definition at line 14 of file reinsertion_optimizer.h.

Classes

struct  Candidate
 
struct  Config
 
struct  Reinsertion
 

Static Public Member Functions

static void optimize (Bvh< Node > &bvh, const Config &config={})
 
static void optimize (ThreadPool &thread_pool, Bvh< Node > &bvh, const Config &config={})
 

Private Types

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

Private Member Functions

 ReinsertionOptimizer (Bvh< Node > &bvh, std::vector< size_t > &&parents)
 
BVH_ALWAYS_INLINE std::vector< Candidatefind_candidates (size_t target_count)
 
Reinsertion find_reinsertion (size_t node_id)
 
BVH_ALWAYS_INLINE auto get_conflicts (size_t from, size_t to)
 
template<typename Derived >
void optimize (Executor< Derived > &executor, const Config &config)
 
BVH_ALWAYS_INLINE void refit_from (size_t index)
 
BVH_ALWAYS_INLINE void reinsert_node (size_t from, size_t to)
 

Static Private Member Functions

template<typename Derived >
static std::vector< size_t > compute_parents (Executor< Derived > &executor, const Bvh< Node > &bvh)
 
template<typename Derived >
static void optimize (Executor< Derived > &executor, Bvh< Node > &bvh, const Config &config)
 

Private Attributes

Bvh< Node > & bvh_
 
std::vector< size_t > parents_
 

#include <bvh/v2/reinsertion_optimizer.h>

Member Typedef Documentation

◆ BBox

◆ Scalar

Definition at line 15 of file reinsertion_optimizer.h.

Constructor & Destructor Documentation

◆ ReinsertionOptimizer()

template<typename Node >
bvh::v2::ReinsertionOptimizer< Node >::ReinsertionOptimizer ( Bvh< Node > & bvh,
std::vector< size_t > && parents )
inlineprivate

Definition at line 60 of file reinsertion_optimizer.h.

Member Function Documentation

◆ compute_parents()

template<typename Node >
template<typename Derived >
static std::vector< size_t > bvh::v2::ReinsertionOptimizer< Node >::compute_parents ( Executor< Derived > & executor,
const Bvh< Node > & bvh )
inlinestaticprivate

Definition at line 72 of file reinsertion_optimizer.h.

◆ find_candidates()

template<typename Node >
BVH_ALWAYS_INLINE std::vector< Candidate > bvh::v2::ReinsertionOptimizer< Node >::find_candidates ( size_t target_count)
inlineprivate

Definition at line 88 of file reinsertion_optimizer.h.

◆ find_reinsertion()

template<typename Node >
Reinsertion bvh::v2::ReinsertionOptimizer< Node >::find_reinsertion ( size_t node_id)
inlineprivate

Definition at line 107 of file reinsertion_optimizer.h.

◆ get_conflicts()

template<typename Node >
BVH_ALWAYS_INLINE auto bvh::v2::ReinsertionOptimizer< Node >::get_conflicts ( size_t from,
size_t to )
inlineprivate

Definition at line 227 of file reinsertion_optimizer.h.

◆ optimize() [1/4]

template<typename Node >
static void bvh::v2::ReinsertionOptimizer< Node >::optimize ( Bvh< Node > & bvh,
const Config & config = {} )
inlinestatic

Definition at line 32 of file reinsertion_optimizer.h.

◆ optimize() [2/4]

template<typename Node >
template<typename Derived >
static void bvh::v2::ReinsertionOptimizer< Node >::optimize ( Executor< Derived > & executor,
Bvh< Node > & bvh,
const Config & config )
inlinestaticprivate

Definition at line 66 of file reinsertion_optimizer.h.

◆ optimize() [3/4]

template<typename Node >
template<typename Derived >
void bvh::v2::ReinsertionOptimizer< Node >::optimize ( Executor< Derived > & executor,
const Config & config )
inlineprivate

Definition at line 237 of file reinsertion_optimizer.h.

◆ optimize() [4/4]

template<typename Node >
static void bvh::v2::ReinsertionOptimizer< Node >::optimize ( ThreadPool & thread_pool,
Bvh< Node > & bvh,
const Config & config = {} )
inlinestatic

Definition at line 27 of file reinsertion_optimizer.h.

◆ refit_from()

template<typename Node >
BVH_ALWAYS_INLINE void bvh::v2::ReinsertionOptimizer< Node >::refit_from ( size_t index)
inlineprivate

Definition at line 215 of file reinsertion_optimizer.h.

◆ reinsert_node()

template<typename Node >
BVH_ALWAYS_INLINE void bvh::v2::ReinsertionOptimizer< Node >::reinsert_node ( size_t from,
size_t to )
inlineprivate

Definition at line 190 of file reinsertion_optimizer.h.

Member Data Documentation

◆ bvh_

template<typename Node >
Bvh<Node>& bvh::v2::ReinsertionOptimizer< Node >::bvh_
private

Definition at line 57 of file reinsertion_optimizer.h.

◆ parents_

template<typename Node >
std::vector<size_t> bvh::v2::ReinsertionOptimizer< Node >::parents_
private

Definition at line 58 of file reinsertion_optimizer.h.

  • geom/geom/inc/bvh/v2/reinsertion_optimizer.h