Where to modify the function ‘computeFeature’‘ in PCL?

I would like to modify some code when I calculate the nromal in PCL, for example. Like

    pcl::NormalEstimation<pointT, pcl::Normal> ne_tgt;
    ne_tgt.setInputCloud(cloud_tgt);
    pcl::search::KdTree<pointT>::Ptr tree_tgt(new pcl::search::KdTree<pointT>());
    ne_tgt.setSearchMethod(tree_tgt);
    pcl::PointCloud<pcl::Normal>::Ptr cloud_tgt_normals(new pcl::PointCloud<pcl::Normal>);
    ne_tgt.setRadiusSearch(0.1); 
    ne_tgt.compute(*cloud_tgt_normals);

So, I try to modify the computefeature in compute, but the index failed. I don’t know where I can modify. Some code in pclfeaturesincludepclfeaturesimplfeature.hpp is following.

pcl::Feature<PointInT, PointOutT>::compute (PointCloudOut &output)
{
  if (!initCompute ())
  {
    output.width = output.height = 0;
    output.points.clear ();
    return;
  }

  // Copy the header
  output.header = input_->header;

  // Resize the output dataset
  if (output.points.size () != indices_->size ())
    output.points.resize (indices_->size ());

  // Check if the output will be computed for all points or only a subset
  // If the input width or height are not set, set output width as size
  if (indices_->size () != input_->points.size () || input_->width * input_->height == 0)
  {
    output.width = static_cast<uint32_t> (indices_->size ());
    output.height = 1;
  }
  else
  {
    output.width = input_->width;
    output.height = input_->height;
  }
  output.is_dense = input_->is_dense;

  // Perform the actual feature computation
  computeFeature (output);  //HERE!!!

  deinitCompute ();
}

After finding, there is a computeFeature

template <typename PointInT, typename PointOutT> void
pcl::NormalEstimation<PointInT, PointOutT>::computeFeature (PointCloudOut &output)

in pclfeaturesincludepclfeaturesimplnormal_3d.hpp. So, I tried to modify it, like adding a cout as a test. But after recompiling the PCL, the output has nothing changed.
Same problem exert in estimating FPFH and SHOT and other feature. Some people say maybe it’s pure virtual functions. But I am not sure.

Excuse me, is this the wrong place? Where could I to modify the specificcomputeFeature ? Thanks for your reading.

Source: Windows Questions C++

LEAVE A COMMENT