41 #include <type_traits>
48 template<
typename Po
intInT,
typename Po
intOutT>
51 using PodIn =
typename traits::POD<PointInT>::type;
52 using PodOut =
typename traits::POD<PointOutT>::type;
55 : p1_ (reinterpret_cast<const
PodIn&> (p1))
56 , p2_ (reinterpret_cast<
PodOut&> (p2)) { }
58 template<
typename Key>
inline void
63 using InT =
typename pcl::traits::datatype<PointInT, Key>::type;
64 using OutT =
typename pcl::traits::datatype<PointOutT, Key>::type;
65 *
reinterpret_cast<OutT*
>(
reinterpret_cast<std::uint8_t*
>(&p2_) + pcl::traits::offset<PointOutT, Key>::value) =
66 *
reinterpret_cast<const InT*
>(
reinterpret_cast<const std::uint8_t*
>(&p1_) + pcl::traits::offset<PointInT, Key>::value);
Helper functor structure for concatenate.
typename traits::POD< PointInT >::type PodIn
typename traits::POD< PointOutT >::type PodOut
NdConcatenateFunctor(const PointInT &p1, PointOutT &p2)