116 void operator () (
const PointInT& point_in, PointOutT& point_out)
const
118 using FieldListInT =
typename pcl::traits::fieldList<PointInT>::type;
119 using FieldListOutT =
typename pcl::traits::fieldList<PointOutT>::type;
121 constexpr std::uint32_t offset_in = boost::mpl::if_<pcl::traits::has_field<PointInT, pcl::fields::rgb>,
122 pcl::traits::offset<PointInT, pcl::fields::rgb>,
123 pcl::traits::offset<PointInT, pcl::fields::rgba> >::type::value;
124 constexpr std::uint32_t offset_out = boost::mpl::if_<pcl::traits::has_field<PointOutT, pcl::fields::rgb>,
125 pcl::traits::offset<PointOutT, pcl::fields::rgb>,
126 pcl::traits::offset<PointOutT, pcl::fields::rgba> >::type::value;
127 pcl::for_each_type <FieldList> (pcl::NdConcatenateFunctor <PointInT, PointOutT> (point_in, point_out));
128 memcpy (
reinterpret_cast<char*
> (&point_out) + offset_out,
129 reinterpret_cast<const char*
> (&point_in) + offset_in,