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