00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef PCL_TRANSFORMS_H_
00037 #define PCL_TRANSFORMS_H_
00038
00039 #include <pcl/point_cloud.h>
00040 #include <pcl/point_types.h>
00041 #include <Eigen/Core>
00042 #include <Eigen/Geometry>
00043
00044 namespace pcl
00045 {
00051 template <typename PointT> void
00052 demeanPointCloud (const pcl::PointCloud<PointT> &cloud_in,
00053 const Eigen::Vector4f ¢roid,
00054 pcl::PointCloud<PointT> &cloud_out);
00055
00062 template <typename PointT> void
00063 demeanPointCloud (const pcl::PointCloud<PointT> &cloud_in,
00064 const std::vector<int> &indices,
00065 const Eigen::Vector4f ¢roid,
00066 pcl::PointCloud<PointT> &cloud_out);
00067
00075 template <typename PointT> void
00076 demeanPointCloud (const pcl::PointCloud<PointT> &cloud_in,
00077 const Eigen::Vector4f ¢roid,
00078 Eigen::MatrixXf &cloud_out);
00079
00088 template <typename PointT> void
00089 demeanPointCloud (const pcl::PointCloud<PointT> &cloud_in,
00090 const std::vector<int> &indices,
00091 const Eigen::Vector4f ¢roid,
00092 Eigen::MatrixXf &cloud_out);
00093
00102 template <typename PointT> void
00103 transformPointCloud (const pcl::PointCloud<PointT> &cloud_in,
00104 pcl::PointCloud<PointT> &cloud_out,
00105 const Eigen::Affine3f &transform);
00106
00116 template <typename PointT> void
00117 transformPointCloud (const pcl::PointCloud<PointT> &cloud_in,
00118 const std::vector<int> &indices,
00119 pcl::PointCloud<PointT> &cloud_out,
00120 const Eigen::Affine3f &transform);
00121
00130 template <typename PointT> void
00131 transformPointCloudWithNormals (const pcl::PointCloud<PointT> &cloud_in,
00132 pcl::PointCloud<PointT> &cloud_out,
00133 const Eigen::Affine3f &transform);
00134
00143 template <typename PointT> void
00144 transformPointCloud (const pcl::PointCloud<PointT> &cloud_in,
00145 pcl::PointCloud<PointT> &cloud_out,
00146 const Eigen::Matrix4f &transform);
00147
00156 template <typename PointT> void
00157 transformPointCloudWithNormals (const pcl::PointCloud<PointT> &cloud_in,
00158 pcl::PointCloud<PointT> &cloud_out,
00159 const Eigen::Matrix4f &transform);
00160
00169 template <typename PointT> inline void
00170 transformPointCloud (const pcl::PointCloud<PointT> &cloud_in,
00171 pcl::PointCloud<PointT> &cloud_out,
00172 const Eigen::Vector3f &offset,
00173 const Eigen::Quaternionf &rotation);
00174
00183 template <typename PointT> inline void
00184 transformPointCloudWithNormals (const pcl::PointCloud<PointT> &cloud_in,
00185 pcl::PointCloud<PointT> &cloud_out,
00186 const Eigen::Vector3f &offset,
00187 const Eigen::Quaternionf &rotation);
00188 }
00189
00190 #include "pcl/registration/transforms.hpp"
00191
00192 #endif // PCL_TRANSFORMS_H_