39 #ifndef PCL_TRANSFORMS_H_
40 #define PCL_TRANSFORMS_H_
42 #include <pcl/point_cloud.h>
43 #include <pcl/point_types.h>
44 #include <pcl/common/centroid.h>
45 #include <pcl/common/eigen.h>
46 #include <pcl/PointIndices.h>
57 template <
typename Po
intT,
typename Scalar>
void
60 const Eigen::Transform<Scalar, 3, Eigen::Affine> &transform);
62 template <
typename Po
intT>
void
65 const Eigen::Affine3f &transform)
67 return (transformPointCloud<PointT, float> (cloud_in, cloud_out, transform));
77 template <
typename Po
intT,
typename Scalar>
void
79 const std::vector<int> &indices,
81 const Eigen::Transform<Scalar, 3, Eigen::Affine> &transform);
83 template <
typename Po
intT>
void
85 const std::vector<int> &indices,
87 const Eigen::Affine3f &transform)
89 return (transformPointCloud<PointT, float> (cloud_in, indices, cloud_out, transform));
99 template <
typename Po
intT,
typename Scalar>
void
103 const Eigen::Transform<Scalar, 3, Eigen::Affine> &transform)
105 return (transformPointCloud<PointT, Scalar> (cloud_in, indices.
indices, cloud_out, transform));
108 template <
typename Po
intT>
void
112 const Eigen::Affine3f &transform)
114 return (transformPointCloud<PointT, float> (cloud_in, indices, cloud_out, transform));
123 template <
typename Po
intT,
typename Scalar>
void
126 const Eigen::Transform<Scalar, 3, Eigen::Affine> &transform);
128 template <
typename Po
intT>
void
131 const Eigen::Affine3f &transform)
133 return (transformPointCloudWithNormals<PointT, float> (cloud_in, cloud_out, transform));
142 template <
typename Po
intT,
typename Scalar>
void
144 const std::vector<int> &indices,
146 const Eigen::Transform<Scalar, 3, Eigen::Affine> &transform);
148 template <
typename Po
intT>
void
150 const std::vector<int> &indices,
152 const Eigen::Affine3f &transform)
154 return (transformPointCloudWithNormals<PointT, float> (cloud_in, indices, cloud_out, transform));
163 template <
typename Po
intT,
typename Scalar>
void
167 const Eigen::Transform<Scalar, 3, Eigen::Affine> &transform)
169 return (transformPointCloudWithNormals<PointT, Scalar> (cloud_in, indices.
indices, cloud_out, transform));
173 template <
typename Po
intT>
void
177 const Eigen::Affine3f &transform)
179 return (transformPointCloudWithNormals<PointT, float> (cloud_in, indices, cloud_out, transform));
189 template <
typename Po
intT,
typename Scalar>
void
192 const Eigen::Matrix<Scalar, 4, 4> &transform)
194 Eigen::Transform<Scalar, 3, Eigen::Affine> t (transform);
195 return (transformPointCloud<PointT, Scalar> (cloud_in, cloud_out, t));
198 template <
typename Po
intT>
void
201 const Eigen::Matrix4f &transform)
203 return (transformPointCloud<PointT, float> (cloud_in, cloud_out, transform));
213 template <
typename Po
intT,
typename Scalar>
void
215 const std::vector<int> &indices,
217 const Eigen::Matrix<Scalar, 4, 4> &transform)
219 Eigen::Transform<Scalar, 3, Eigen::Affine> t (transform);
220 return (transformPointCloud<PointT, Scalar> (cloud_in, indices, cloud_out, t));
223 template <
typename Po
intT>
void
225 const std::vector<int> &indices,
227 const Eigen::Matrix4f &transform)
229 return (transformPointCloud<PointT, float> (cloud_in, indices, cloud_out, transform));
239 template <
typename Po
intT,
typename Scalar>
void
243 const Eigen::Matrix<Scalar, 4, 4> &transform)
245 return (transformPointCloud<PointT, Scalar> (cloud_in, indices.
indices, cloud_out, transform));
248 template <
typename Po
intT>
void
252 const Eigen::Matrix4f &transform)
254 return (transformPointCloud<PointT, float> (cloud_in, indices, cloud_out, transform));
264 template <
typename Po
intT,
typename Scalar>
void
267 const Eigen::Matrix<Scalar, 4, 4> &transform)
269 Eigen::Transform<Scalar, 3, Eigen::Affine> t (transform);
270 return (transformPointCloudWithNormals<PointT, Scalar> (cloud_in, cloud_out, t));
274 template <
typename Po
intT>
void
277 const Eigen::Matrix4f &transform)
279 return (transformPointCloudWithNormals<PointT, float> (cloud_in, cloud_out, transform));
290 template <
typename Po
intT,
typename Scalar>
void
292 const std::vector<int> &indices,
294 const Eigen::Matrix<Scalar, 4, 4> &transform)
296 Eigen::Transform<Scalar, 3, Eigen::Affine> t (transform);
297 return (transformPointCloudWithNormals<PointT, Scalar> (cloud_in, indices, cloud_out, t));
301 template <
typename Po
intT>
void
303 const std::vector<int> &indices,
305 const Eigen::Matrix4f &transform)
307 return (transformPointCloudWithNormals<PointT, float> (cloud_in, indices, cloud_out, transform));
318 template <
typename Po
intT,
typename Scalar>
void
322 const Eigen::Matrix<Scalar, 4, 4> &transform)
324 Eigen::Transform<Scalar, 3, Eigen::Affine> t (transform);
325 return (transformPointCloudWithNormals<PointT, Scalar> (cloud_in, indices, cloud_out, t));
329 template <
typename Po
intT>
void
333 const Eigen::Matrix4f &transform)
335 return (transformPointCloudWithNormals<PointT, float> (cloud_in, indices, cloud_out, transform));
345 template <
typename Po
intT,
typename Scalar>
inline void
348 const Eigen::Matrix<Scalar, 3, 1> &offset,
349 const Eigen::Quaternion<Scalar> &rotation);
351 template <
typename Po
intT>
inline void
354 const Eigen::Vector3f &offset,
355 const Eigen::Quaternionf &rotation)
357 return (transformPointCloud<PointT, float> (cloud_in, cloud_out, offset, rotation));
367 template <
typename Po
intT,
typename Scalar>
inline void
370 const Eigen::Matrix<Scalar, 3, 1> &offset,
371 const Eigen::Quaternion<Scalar> &rotation);
373 template <
typename Po
intT>
void
376 const Eigen::Vector3f &offset,
377 const Eigen::Quaternionf &rotation)
379 return (transformPointCloudWithNormals<PointT, float> (cloud_in, cloud_out, offset, rotation));
388 template <
typename Po
intT,
typename Scalar>
inline PointT
390 const Eigen::Transform<Scalar, 3, Eigen::Affine> &transform);
392 template <
typename Po
intT>
inline PointT
394 const Eigen::Affine3f &transform)
396 return (transformPoint<PointT, float> (point, transform));
406 template <
typename Po
intT,
typename Scalar>
inline double
408 Eigen::Transform<Scalar, 3, Eigen::Affine> &transform);
410 template <
typename Po
intT>
inline double
412 Eigen::Affine3f &transform)
414 return (getPrincipalTransformation<PointT, float> (cloud, transform));
418 #include <pcl/common/impl/transforms.hpp>
420 #endif // PCL_TRANSFORMS_H_