Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-10-27 09:40:40

0001 //------------------------------- -*- C++ -*- -------------------------------//
0002 // Copyright Celeritas contributors: see top-level COPYRIGHT file for details
0003 // SPDX-License-Identifier: (Apache-2.0 OR MIT)
0004 //---------------------------------------------------------------------------//
0005 //! \file orange/inp/Bvh.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include "corecel/Types.hh"
0010 
0011 namespace celeritas
0012 {
0013 namespace inp
0014 {
0015 //---------------------------------------------------------------------------//
0016 /*!
0017  * Construction options for BVH tree.
0018  */
0019 struct BvhBuilder
0020 {
0021     //! Maximum number of bboxes that can reside on a leaf node without
0022     //! triggering a partitioning attempt
0023     size_type max_leaf_size = 1;
0024 
0025     //! Hard limit on the depth of most the embedded node (where 1 is the root
0026     //! node): see max_bvh_depth
0027     size_type depth_limit = 16;
0028 
0029     //! The number of partition candidates to check per axis when partitioning
0030     //! a node during BVH construction
0031     size_type num_part_cands = 3;
0032 
0033     //! Whether the options are valid
0034     explicit operator bool() const
0035     {
0036         return max_leaf_size >= 1 && depth_limit >= 1 && num_part_cands >= 1;
0037     }
0038 };
0039 
0040 //---------------------------------------------------------------------------//
0041 }  // namespace inp
0042 }  // namespace celeritas