RTAB-Map 0.23.10
Loading...
Searching...
No Matches
util3d_transforms.h
1/*
2Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
3All rights reserved.
4
5Redistribution and use in source and binary forms, with or without
6modification, are permitted provided that the following conditions are met:
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9 * Redistributions in binary form must reproduce the above copyright
10 notice, this list of conditions and the following disclaimer in the
11 documentation and/or other materials provided with the distribution.
12 * Neither the name of the Universite de Sherbrooke nor the
13 names of its contributors may be used to endorse or promote products
14 derived from this software without specific prior written permission.
15
16THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*/
27
28#ifndef UTIL3D_TRANSFORMS_H_
29#define UTIL3D_TRANSFORMS_H_
30
31#include <rtabmap/core/rtabmap_core_export.h>
32
33#include <pcl/point_cloud.h>
34#include <pcl/point_types.h>
35#include <pcl/pcl_base.h>
36#include <rtabmap/core/Transform.h>
37#include <rtabmap/core/LaserScan.h>
38
39namespace rtabmap
40{
41
42namespace util3d
43{
44
75LaserScan RTABMAP_CORE_EXPORT transformLaserScan(
76 const LaserScan & laserScan,
77 const Transform & transform);
78
95pcl::PointCloud<pcl::PointXYZ>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
96 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
97 const Transform & transform);
102pcl::PointCloud<pcl::PointXYZI>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
103 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
104 const Transform & transform);
109pcl::PointCloud<pcl::PointXYZRGB>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
110 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
111 const Transform & transform);
116pcl::PointCloud<pcl::PointNormal>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
117 const pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
118 const Transform & transform);
123pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
124 const pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
125 const Transform & transform);
130pcl::PointCloud<pcl::PointXYZINormal>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
131 const pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
132 const Transform & transform);
133
138pcl::PointCloud<pcl::PointXYZ>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
139 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
140 const pcl::IndicesPtr & indices,
141 const Transform & transform);
146pcl::PointCloud<pcl::PointXYZI>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
147 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
148 const pcl::IndicesPtr & indices,
149 const Transform & transform);
154pcl::PointCloud<pcl::PointXYZRGB>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
155 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
156 const pcl::IndicesPtr & indices,
157 const Transform & transform);
162pcl::PointCloud<pcl::PointNormal>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
163 const pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
164 const pcl::IndicesPtr & indices,
165 const Transform & transform);
170pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
171 const pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
172 const pcl::IndicesPtr & indices,
173 const Transform & transform);
178pcl::PointCloud<pcl::PointXYZINormal>::Ptr RTABMAP_CORE_EXPORT transformPointCloud(
179 const pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
180 const pcl::IndicesPtr & indices,
181 const Transform & transform);
182
197cv::Point3f RTABMAP_CORE_EXPORT transformPoint(
198 const cv::Point3f & pt,
199 const Transform & transform);
204cv::Point3d RTABMAP_CORE_EXPORT transformPoint(
205 const cv::Point3d & pt,
206 const Transform & transform);
211pcl::PointXYZ RTABMAP_CORE_EXPORT transformPoint(
212 const pcl::PointXYZ & pt,
213 const Transform & transform);
218pcl::PointXYZI RTABMAP_CORE_EXPORT transformPoint(
219 const pcl::PointXYZI & pt,
220 const Transform & transform);
225pcl::PointXYZRGB RTABMAP_CORE_EXPORT transformPoint(
226 const pcl::PointXYZRGB & pt,
227 const Transform & transform);
232pcl::PointNormal RTABMAP_CORE_EXPORT transformPoint(
233 const pcl::PointNormal & point,
234 const Transform & transform);
239pcl::PointXYZRGBNormal RTABMAP_CORE_EXPORT transformPoint(
240 const pcl::PointXYZRGBNormal & point,
241 const Transform & transform);
246pcl::PointXYZINormal RTABMAP_CORE_EXPORT transformPoint(
247 const pcl::PointXYZINormal & point,
248 const Transform & transform);
249
250} // namespace util3d
251} // namespace rtabmap
252
253#endif /* UTIL3D_TRANSFORMS_H_ */
Represents a 3D rigid body transformation (rotation + translation).
Definition Transform.h:53
cv::Point3f RTABMAP_CORE_EXPORT transformPoint(const cv::Point3f &pt, const Transform &transform)
Transforms cv::Point3f point type.
pcl::PointCloud< pcl::PointXYZ >::Ptr RTABMAP_CORE_EXPORT transformPointCloud(const pcl::PointCloud< pcl::PointXYZ >::Ptr &cloud, const Transform &transform)
Transforms pcl::PointXYZ point cloud type.