using PointCloudSource=pcl::PointCloud<PointSource>;
using PointSourcePtr=typename PointCloudSource::Ptr ;
using PointCloudSourceConstPtr= typename PointCloudSource ::ConstPtr ;
inline void
setInputSource(const PointCloudSourceConstPtr &cloud)override
{
if(cloud->points.empty())
{
PCL_ERROR("[pcl::%s::setInputSource] Invalid or empty point cloud dataset given!\n",getClassName().c_str());
return;
}
PointCloudSource input=*cloud;
//inline size_t size () const { return (points.size ()); }
//input[i]是每一个点,每一个点的data x,y,z data[3] 为z
for (size_t i = 0; i <input.size() ; ++i) {
input[i].data[3]=1.0;
}
}
蒙蔽了,没找到data的定义,想弄明白data[3]到底是x,y,z中的哪个。
找到PointCloud.h文件中,也找到了PointCloud的类的定义,但是类里没有data这个数组,于是找size().
发现size的定义是
inline size_t size () const { return (points.size ());
确定input是point于是确定data[3]是z值。