Move filter() function implementation for all filters (#405)
This commit is contained in:
parent
b52e7a7ab1
commit
3966b71ad6
@ -63,17 +63,7 @@ protected:
|
|||||||
inline void
|
inline void
|
||||||
filter(
|
filter(
|
||||||
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
PointCloud2 & output) override
|
PointCloud2 & output) override;
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lock(mutex_);
|
|
||||||
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
|
||||||
pcl_conversions::toPCL(*(input), *(pcl_input));
|
|
||||||
impl_.setInputCloud(pcl_input);
|
|
||||||
impl_.setIndices(indices);
|
|
||||||
pcl::PCLPointCloud2 pcl_output;
|
|
||||||
impl_.filter(pcl_output);
|
|
||||||
pcl_conversions::moveFromPCL(pcl_output, output);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** \brief Parameter callback
|
/** \brief Parameter callback
|
||||||
* \param params parameter values to set
|
* \param params parameter values to set
|
||||||
|
|||||||
@ -61,17 +61,7 @@ protected:
|
|||||||
inline void
|
inline void
|
||||||
filter(
|
filter(
|
||||||
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
PointCloud2 & output)
|
PointCloud2 & output) override;
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lock(mutex_);
|
|
||||||
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
|
||||||
pcl_conversions::toPCL(*(input), *(pcl_input));
|
|
||||||
impl_.setInputCloud(pcl_input);
|
|
||||||
impl_.setIndices(indices);
|
|
||||||
pcl::PCLPointCloud2 pcl_output;
|
|
||||||
impl_.filter(pcl_output);
|
|
||||||
pcl_conversions::moveFromPCL(pcl_output, output);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** \brief Parameter callback
|
/** \brief Parameter callback
|
||||||
* \param params parameter values to set
|
* \param params parameter values to set
|
||||||
|
|||||||
@ -60,17 +60,7 @@ protected:
|
|||||||
inline void
|
inline void
|
||||||
filter(
|
filter(
|
||||||
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
PointCloud2 & output) override
|
PointCloud2 & output) override;
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lock(mutex_);
|
|
||||||
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
|
||||||
pcl_conversions::toPCL(*(input), *(pcl_input));
|
|
||||||
impl_.setInputCloud(pcl_input);
|
|
||||||
impl_.setIndices(indices);
|
|
||||||
pcl::PCLPointCloud2 pcl_output;
|
|
||||||
impl_.filter(pcl_output);
|
|
||||||
pcl_conversions::moveFromPCL(pcl_output, output);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** \brief Parameter callback
|
/** \brief Parameter callback
|
||||||
* \param params parameter values to set
|
* \param params parameter values to set
|
||||||
|
|||||||
@ -68,19 +68,7 @@ protected:
|
|||||||
inline void
|
inline void
|
||||||
filter(
|
filter(
|
||||||
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
PointCloud2 & output)
|
PointCloud2 & output) override;
|
||||||
{
|
|
||||||
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
|
||||||
pcl_conversions::toPCL(*(input), *(pcl_input));
|
|
||||||
impl_.setInputCloud(pcl_input);
|
|
||||||
impl_.setIndices(indices);
|
|
||||||
pcl::ModelCoefficients::Ptr pcl_model(new pcl::ModelCoefficients);
|
|
||||||
pcl_conversions::toPCL(*(model_), *(pcl_model));
|
|
||||||
impl_.setModelCoefficients(pcl_model);
|
|
||||||
pcl::PCLPointCloud2 pcl_output;
|
|
||||||
impl_.filter(pcl_output);
|
|
||||||
pcl_conversions::moveFromPCL(pcl_output, output);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/** \brief A pointer to the vector of model coefficients. */
|
/** \brief A pointer to the vector of model coefficients. */
|
||||||
|
|||||||
@ -61,17 +61,7 @@ protected:
|
|||||||
inline void
|
inline void
|
||||||
filter(
|
filter(
|
||||||
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
PointCloud2 & output) override
|
PointCloud2 & output) override;
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lock(mutex_);
|
|
||||||
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
|
||||||
pcl_conversions::toPCL(*(input), *(pcl_input));
|
|
||||||
impl_.setInputCloud(pcl_input);
|
|
||||||
impl_.setIndices(indices);
|
|
||||||
pcl::PCLPointCloud2 pcl_output;
|
|
||||||
impl_.filter(pcl_output);
|
|
||||||
pcl_conversions::moveFromPCL(pcl_output, output);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** \brief Parameter callback
|
/** \brief Parameter callback
|
||||||
* \param params parameter values to set
|
* \param params parameter values to set
|
||||||
|
|||||||
@ -67,17 +67,7 @@ protected:
|
|||||||
inline void
|
inline void
|
||||||
filter(
|
filter(
|
||||||
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
PointCloud2 & output) override
|
PointCloud2 & output) override;
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lock(mutex_);
|
|
||||||
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
|
||||||
pcl_conversions::toPCL(*(input), *(pcl_input));
|
|
||||||
impl_.setInputCloud(pcl_input);
|
|
||||||
impl_.setIndices(indices);
|
|
||||||
pcl::PCLPointCloud2 pcl_output;
|
|
||||||
impl_.filter(pcl_output);
|
|
||||||
pcl_conversions::moveFromPCL(pcl_output, output);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** \brief Parameter callback
|
/** \brief Parameter callback
|
||||||
* \param params parameter values to set
|
* \param params parameter values to set
|
||||||
|
|||||||
@ -59,17 +59,7 @@ protected:
|
|||||||
inline void
|
inline void
|
||||||
filter(
|
filter(
|
||||||
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
PointCloud2 & output) override
|
PointCloud2 & output) override;
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lock(mutex_);
|
|
||||||
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
|
||||||
pcl_conversions::toPCL(*(input), *(pcl_input));
|
|
||||||
impl_.setInputCloud(pcl_input);
|
|
||||||
impl_.setIndices(indices);
|
|
||||||
pcl::PCLPointCloud2 pcl_output;
|
|
||||||
impl_.filter(pcl_output);
|
|
||||||
pcl_conversions::moveFromPCL(pcl_output, output);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** \brief Parameter callback
|
/** \brief Parameter callback
|
||||||
* \param params parameter values to set
|
* \param params parameter values to set
|
||||||
|
|||||||
@ -160,6 +160,21 @@ pcl_ros::CropBox::CropBox(const rclcpp::NodeOptions & options)
|
|||||||
subscribe();
|
subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
pcl_ros::CropBox::filter(
|
||||||
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
|
PointCloud2 & output)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(mutex_);
|
||||||
|
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
||||||
|
pcl_conversions::toPCL(*(input), *(pcl_input));
|
||||||
|
impl_.setInputCloud(pcl_input);
|
||||||
|
impl_.setIndices(indices);
|
||||||
|
pcl::PCLPointCloud2 pcl_output;
|
||||||
|
impl_.filter(pcl_output);
|
||||||
|
pcl_conversions::moveFromPCL(pcl_output, output);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
rcl_interfaces::msg::SetParametersResult
|
rcl_interfaces::msg::SetParametersResult
|
||||||
|
|||||||
@ -60,6 +60,21 @@ pcl_ros::ExtractIndices::ExtractIndices(const rclcpp::NodeOptions & options)
|
|||||||
subscribe();
|
subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
pcl_ros::ExtractIndices::filter(
|
||||||
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
|
PointCloud2 & output)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(mutex_);
|
||||||
|
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
||||||
|
pcl_conversions::toPCL(*(input), *(pcl_input));
|
||||||
|
impl_.setInputCloud(pcl_input);
|
||||||
|
impl_.setIndices(indices);
|
||||||
|
pcl::PCLPointCloud2 pcl_output;
|
||||||
|
impl_.filter(pcl_output);
|
||||||
|
pcl_conversions::moveFromPCL(pcl_output, output);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
rcl_interfaces::msg::SetParametersResult
|
rcl_interfaces::msg::SetParametersResult
|
||||||
pcl_ros::ExtractIndices::config_callback(const std::vector<rclcpp::Parameter> & params)
|
pcl_ros::ExtractIndices::config_callback(const std::vector<rclcpp::Parameter> & params)
|
||||||
|
|||||||
@ -68,6 +68,20 @@ pcl_ros::PassThrough::PassThrough(const rclcpp::NodeOptions & options)
|
|||||||
subscribe();
|
subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pcl_ros::PassThrough::filter(
|
||||||
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
|
PointCloud2 & output)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(mutex_);
|
||||||
|
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
||||||
|
pcl_conversions::toPCL(*(input), *(pcl_input));
|
||||||
|
impl_.setInputCloud(pcl_input);
|
||||||
|
impl_.setIndices(indices);
|
||||||
|
pcl::PCLPointCloud2 pcl_output;
|
||||||
|
impl_.filter(pcl_output);
|
||||||
|
pcl_conversions::moveFromPCL(pcl_output, output);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
rcl_interfaces::msg::SetParametersResult
|
rcl_interfaces::msg::SetParametersResult
|
||||||
pcl_ros::PassThrough::config_callback(const std::vector<rclcpp::Parameter> & params)
|
pcl_ros::PassThrough::config_callback(const std::vector<rclcpp::Parameter> & params)
|
||||||
|
|||||||
@ -80,6 +80,23 @@ pcl_ros::ProjectInliers::ProjectInliers(const rclcpp::NodeOptions & options)
|
|||||||
subscribe();
|
subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
pcl_ros::ProjectInliers::filter(
|
||||||
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
|
PointCloud2 & output)
|
||||||
|
{
|
||||||
|
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
||||||
|
pcl_conversions::toPCL(*(input), *(pcl_input));
|
||||||
|
impl_.setInputCloud(pcl_input);
|
||||||
|
impl_.setIndices(indices);
|
||||||
|
pcl::ModelCoefficients::Ptr pcl_model(new pcl::ModelCoefficients);
|
||||||
|
pcl_conversions::toPCL(*(model_), *(pcl_model));
|
||||||
|
impl_.setModelCoefficients(pcl_model);
|
||||||
|
pcl::PCLPointCloud2 pcl_output;
|
||||||
|
impl_.filter(pcl_output);
|
||||||
|
pcl_conversions::moveFromPCL(pcl_output, output);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
void
|
void
|
||||||
pcl_ros::ProjectInliers::subscribe()
|
pcl_ros::ProjectInliers::subscribe()
|
||||||
|
|||||||
@ -83,6 +83,21 @@ pcl_ros::RadiusOutlierRemoval::RadiusOutlierRemoval(const rclcpp::NodeOptions &
|
|||||||
subscribe();
|
subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
pcl_ros::RadiusOutlierRemoval::filter(
|
||||||
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
|
PointCloud2 & output)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(mutex_);
|
||||||
|
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
||||||
|
pcl_conversions::toPCL(*(input), *(pcl_input));
|
||||||
|
impl_.setInputCloud(pcl_input);
|
||||||
|
impl_.setIndices(indices);
|
||||||
|
pcl::PCLPointCloud2 pcl_output;
|
||||||
|
impl_.filter(pcl_output);
|
||||||
|
pcl_conversions::moveFromPCL(pcl_output, output);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
rcl_interfaces::msg::SetParametersResult
|
rcl_interfaces::msg::SetParametersResult
|
||||||
pcl_ros::RadiusOutlierRemoval::config_callback(const std::vector<rclcpp::Parameter> & params)
|
pcl_ros::RadiusOutlierRemoval::config_callback(const std::vector<rclcpp::Parameter> & params)
|
||||||
|
|||||||
@ -92,6 +92,20 @@ pcl_ros::StatisticalOutlierRemoval::StatisticalOutlierRemoval(const rclcpp::Node
|
|||||||
subscribe();
|
subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
pcl_ros::StatisticalOutlierRemoval::filter(
|
||||||
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
|
PointCloud2 & output)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(mutex_);
|
||||||
|
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
||||||
|
pcl_conversions::toPCL(*(input), *(pcl_input));
|
||||||
|
impl_.setInputCloud(pcl_input);
|
||||||
|
impl_.setIndices(indices);
|
||||||
|
pcl::PCLPointCloud2 pcl_output;
|
||||||
|
impl_.filter(pcl_output);
|
||||||
|
pcl_conversions::moveFromPCL(pcl_output, output);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
rcl_interfaces::msg::SetParametersResult
|
rcl_interfaces::msg::SetParametersResult
|
||||||
|
|||||||
@ -89,6 +89,20 @@ pcl_ros::VoxelGrid::VoxelGrid(const rclcpp::NodeOptions & options)
|
|||||||
subscribe();
|
subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
pcl_ros::VoxelGrid::filter(
|
||||||
|
const PointCloud2::ConstSharedPtr & input, const IndicesPtr & indices,
|
||||||
|
PointCloud2 & output)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(mutex_);
|
||||||
|
pcl::PCLPointCloud2::Ptr pcl_input(new pcl::PCLPointCloud2);
|
||||||
|
pcl_conversions::toPCL(*(input), *(pcl_input));
|
||||||
|
impl_.setInputCloud(pcl_input);
|
||||||
|
impl_.setIndices(indices);
|
||||||
|
pcl::PCLPointCloud2 pcl_output;
|
||||||
|
impl_.filter(pcl_output);
|
||||||
|
pcl_conversions::moveFromPCL(pcl_output, output);
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
rcl_interfaces::msg::SetParametersResult
|
rcl_interfaces::msg::SetParametersResult
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user