1 #ifndef LVR2_RAYCASTING_INTERSECTION_HPP 
    2 #define LVR2_RAYCASTING_INTERSECTION_HPP 
  102 template<
typename ...Tp>
 
  106     static constexpr std::size_t 
N = 
sizeof...(Tp);
 
  110     template <
typename T, 
typename Tuple>
 
  113     template <
typename T>
 
  116     template <
typename T, 
typename U, 
typename... Ts>
 
  120     template <
typename T, 
typename... Ts>
 
  137     static constexpr 
bool has() {
 
  158 template<
typename ...T>
 
  162     os << 
"Raycaster Intersection: \n";
 
  164     if constexpr(IntT::template has<lvr2::intelem::Point>())
 
  166         os << 
"-- point: " << intersection.point.transpose() << 
"\n";
 
  169     if constexpr(IntT::template has<lvr2::intelem::Distance>())
 
  171         os << 
"-- dist: " << intersection.dist << 
"\n";  
 
  174     if constexpr(IntT::template has<lvr2::intelem::Normal>())
 
  176         os << 
"-- normal: " << intersection.normal.transpose() << 
"\n";
 
  179     if constexpr(IntT::template has<lvr2::intelem::Face>())
 
  181         os << 
"-- face: " << intersection.face_id << 
"\n";
 
  184     if constexpr(IntT::template has<lvr2::intelem::Barycentrics>())
 
  186         os << 
"-- barycentrics: " << intersection.b_uv.transpose() << 
"\n";
 
  189     if constexpr(IntT::template has<lvr2::intelem::Mesh>())
 
  191         os << 
"-- mesh: " << intersection.mesh_id << 
"\n";
 
  197 #endif // LVR2_RAYCASTING_INTERSECTION_HPP