Go to the documentation of this file.00001 #ifndef PCL_BASIC_H
00002 #define PCL_BASIC_H
00003 #include <ros/ros.h>
00004
00005 #include <sensor_msgs/PointCloud2.h>
00006 #include <pcl_ros/point_cloud.h>
00007 #include <pcl/point_cloud.h>
00008 #include <pcl/point_types.h>
00009 #include <pcl/filters/passthrough.h>
00010 #include <pcl/filters/conditional_removal.h>
00011 #include <pcl/filters/extract_indices.h>
00012
00013 #include <boost/format.hpp>
00014 #include <boost/make_shared.hpp>
00015 #include <boost/foreach.hpp>
00016
00017 #include <eigen_conversions/eigen_msg.h>
00018 #include <Eigen/Eigen>
00019
00020 using namespace std;
00021 using namespace Eigen;
00022
00023 typedef pcl::PointXYZRGB PRGB;
00024 typedef pcl::PointCloud<PRGB> PCRGB;
00025
00026 void transformPC(const PCRGB &in_pc, PCRGB &out_pc,
00027 const Eigen::Affine3d& transform);
00028 void pubLoop(PCRGB &pc, const std::string& topic, double rate = 1.0);
00029 void pubLoop(vector<PCRGB::Ptr> &pcs, const vector<std::string>& topics, double rate);
00030 void boxFilter(const PCRGB &in_pc, PCRGB &out_pc,
00031 double min_x, double max_x, double min_y, double max_y, double min_z, double max_z);
00032 void extractIndices(const PCRGB::Ptr& in_pc, pcl::IndicesPtr& inds, PCRGB::Ptr& out_pc, bool is_negative = false);
00033
00034 #endif // PCL_BASIC_H