Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-13 11:00:09

0001 //------------------------------- -*- C++ -*- -------------------------------//
0002 // Copyright VecGeom contributors: see top-level LICENSE file for details
0003 // SPDX-License-Identifier: Apache-2.0
0004 //---------------------------------------------------------------------------//
0005 //! \file VecGeom/navigation/NavPath.h
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include "VecGeom/base/Config.h"
0010 
0011 #if VECGEOM_NAV == VECGEOM_NAV_INDEX
0012 #include "VecGeom/base/Global.h"
0013 #elif VECGEOM_NAV == VECGEOM_NAV_TUPLE
0014 #include "NavTuple.h"
0015 #endif
0016 
0017 namespace vecgeom {
0018 //---------------------------------------------------------------------------//
0019 
0020 #if VECGEOM_NAV == VECGEOM_NAV_INDEX
0021 using OpaqueNavPath = ::vecgeom::NavIndex_t;
0022 #elif VECGEOM_NAV == VECGEOM_NAV_TUPLE
0023 using OpaqueNavPath = ::vecgeom::NavTuple_t;
0024 #endif
0025 
0026 //! Tag struct to indicate point-in-volume location is to be performed
0027 struct UnknownPath {};
0028 
0029 //! Tag instance to imply "locate within world volume"
0030 constexpr inline UnknownPath unknown_path{};
0031 
0032 //! Tag struct to indicate an exact path is known
0033 struct FullPath {
0034   OpaqueNavPath path{};
0035   bool boundary{false};
0036 };
0037 
0038 //---------------------------------------------------------------------------//
0039 } // namespace vecgeom