File indexing completed on 2026-11-13 11:00:36
0001
0002
0003
0004 #ifndef VECGEOM_VOLUMES_SURFACEHITDISPATCH_H_
0005 #define VECGEOM_VOLUMES_SURFACEHITDISPATCH_H_
0006
0007 #include "VecGeom/base/Global.h"
0008 #include "VecGeom/base/Vector3D.h"
0009 #include "VecGeom/volumes/SurfaceHitView.h"
0010
0011 #include <type_traits>
0012 #include <utility>
0013
0014 namespace vecgeom {
0015
0016 inline namespace VECGEOM_IMPL_NAMESPACE {
0017
0018 namespace SurfaceHitDispatch {
0019
0020 template <typename Impl, typename Struct, typename Real_t, typename = void>
0021 struct HasDistanceToOutWithHit : std::false_type {};
0022
0023 template <typename Impl, typename Struct, typename Real_t>
0024 struct HasDistanceToOutWithHit<
0025 Impl, Struct, Real_t,
0026 std::void_t<decltype(Impl::DistanceToOut(std::declval<Struct const &>(), std::declval<Vector3D<Real_t> const &>(),
0027 std::declval<Vector3D<Real_t> const &>(), std::declval<Real_t const &>(),
0028 std::declval<Real_t &>(), std::declval<SurfaceHitView<Real_t> *>()))>>
0029 : std::true_type {};
0030
0031 }
0032
0033 }
0034 }
0035
0036 #endif