Point Cloud Library (PCL) 1.15.1-dev
Loading...
Searching...
No Matches
point_types.h
Go to the documentation of this file.
1/*
2 * Software License Agreement (BSD License)
3 *
4 * Point Cloud Library (PCL) - www.pointclouds.org
5 * Copyright (c) 2010-2011, Willow Garage, Inc.
6 *
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 *
13 * * Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * * Redistributions in binary form must reproduce the above
16 * copyright notice, this list of conditions and the following
17 * disclaimer in the documentation and/or other materials provided
18 * with the distribution.
19 * * Neither the name of the copyright holder(s) nor the names of its
20 * contributors may be used to endorse or promote products derived
21 * from this software without specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 *
36 * $Id$
37 *
38 */
39
40#pragma once
41
42// For backward-compatibility field traits should be imported in this header
43#ifndef PCL_OPTIMIZE_IMPORTS_FIELD_TRAITS
44#include <pcl/field_traits.h>
45#endif
46
47#include <bitset>
48
49
50/**
51 * \file pcl/point_types.h
52 * Defines all the PCL implemented PointT point type structures
53 * \ingroup common
54 */
55
56// Allow nameless structs/unions
57#if defined _MSC_VER
58 #pragma warning(push)
59 #pragma warning(disable: 4201)
60#endif
61
62/** @{*/
63namespace pcl
64{
65 /** \brief Members: float x, y, z
66 * \ingroup common
67 */
68 struct PointXYZ;
69
70 /** \brief Members: rgba
71 * \ingroup common
72 */
73 struct RGB;
74
75 /** \brief Members: intensity (float)
76 * \ingroup common
77 */
78 struct Intensity;
79
80 /** \brief Members: intensity (std::uint8_t)
81 * \ingroup common
82 */
83 struct Intensity8u;
84
85 /** \brief Members: intensity (std::uint32_t)
86 * \ingroup common
87 */
88 struct Intensity32u;
89
90 /** \brief Members: float x, y, z, intensity
91 * \ingroup common
92 */
93 struct PointXYZI;
94
95 /** \brief Members: float x, y, z, uin32_t label
96 * \ingroup common
97 */
98 struct PointXYZL;
99
100 /** \brief Members: std::uint32_t label
101 * \ingroup common
102 */
103 struct Label;
104
105 /** \brief Members: float x, y, z; std::uint32_t rgba
106 * \ingroup common
107 */
108 struct PointXYZRGBA;
109
110 /** \brief Members: float x, y, z, rgb
111 * \ingroup common
112 */
113 struct PointXYZRGB;
114
115 /** \brief Members: float x, y, z, rgb, std::uint32_t label
116 * \ingroup common
117 */
118 struct PointXYZRGBL;
119
120 /** \brief Members: float x, y, z, L, a, b
121 * \ingroup common
122 */
123 struct PointXYZLAB;
124
125 /** \brief Members: float x, y, z, h, s, v
126 * \ingroup common
127 */
128 struct PointXYZHSV;
129
130 /** \brief Members: float x, y
131 * \ingroup common
132 */
133 struct PointXY;
134
135 /** \brief Members: float u, v
136 * \ingroup common
137 */
138 struct PointUV;
139
140 /** \brief Members: float x, y, z, strength
141 * \ingroup common
142 */
143 struct InterestPoint;
144
145 /** \brief Members: float normal[3], curvature
146 * \ingroup common
147 */
148 struct Normal;
149
150 /** \brief Members: float normal[3]
151 * \ingroup common
152 */
153 struct Axis;
154
155 /** \brief Members: float x, y, z; float normal[3], curvature
156 * \ingroup common
157 */
158 struct PointNormal;
159
160 /** \brief Members: float x, y, z, rgb, normal[3], curvature
161 * \ingroup common
162 */
163 struct PointXYZRGBNormal;
164
165 /** \brief Members: float x, y, z, intensity, normal[3], curvature
166 * \ingroup common
167 */
168 struct PointXYZINormal;
169
170 /** \brief Members: float x, y, z, label, normal[3], curvature
171 * \ingroup common
172 */
173 struct PointXYZLNormal;
174
175 /** \brief Members: float x, y, z (union with float point[4]), range
176 * \ingroup common
177 */
178 struct PointWithRange;
179
180 /** \brief Members: float x, y, z, vp_x, vp_y, vp_z
181 * \ingroup common
182 */
183 struct PointWithViewpoint;
184
185 /** \brief Members: float j1, j2, j3
186 * \ingroup common
187 */
188 struct MomentInvariants;
189
190 /** \brief Members: float r_min, r_max
191 * \ingroup common
192 */
193 struct PrincipalRadiiRSD;
194
195 /** \brief Members: std::uint8_t boundary_point
196 * \ingroup common
197 */
198 struct Boundary;
199
200 /** \brief Members: float principal_curvature[3], pc1, pc2
201 * \ingroup common
202 */
203 struct PrincipalCurvatures;
204
205 /** \brief Members: float descriptor[352], rf[9]
206 * \ingroup common
207 */
208 struct SHOT352;
209
210 /** \brief Members: float descriptor[1344], rf[9]
211 * \ingroup common
212 */
213 struct SHOT1344;
214
215 /** \brief Members: Axis x_axis, y_axis, z_axis
216 * \ingroup common
217 */
218 struct ReferenceFrame;
219
220 /** \brief Members: float descriptor[1980], rf[9]
221 * \ingroup common
222 */
223 struct ShapeContext1980;
224
225 /** \brief Members: float descriptor[1960], rf[9]
226 * \ingroup common
227 */
228 struct UniqueShapeContext1960;
229
230 /** \brief Members: float pfh[125]
231 * \ingroup common
232 */
233 struct PFHSignature125;
234
235 /** \brief Members: float pfhrgb[250]
236 * \ingroup common
237 */
238 struct PFHRGBSignature250;
239
240 /** \brief Members: float f1, f2, f3, f4, alpha_m
241 * \ingroup common
242 */
243 struct PPFSignature;
244
245 /** \brief Members: float f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, alpha_m
246 * \ingroup common
247 */
248 struct CPPFSignature;
249
250 /** \brief Members: float f1, f2, f3, f4, r_ratio, g_ratio, b_ratio, alpha_m
251 * \ingroup common
252 */
253 struct PPFRGBSignature;
254
255 /** \brief Members: float values[12]
256 * \ingroup common
257 */
258 struct NormalBasedSignature12;
259
260 /** \brief Members: float fpfh[33]
261 * \ingroup common
262 */
263 struct FPFHSignature33;
264
265 /** \brief Members: float vfh[308]
266 * \ingroup common
267 */
268 struct VFHSignature308;
269
270 /** \brief Members: float grsd[21]
271 * \ingroup common
272 */
273 struct GRSDSignature21;
274
275 /** \brief Members: float esf[640]
276 * \ingroup common
277 */
278 struct ESFSignature640;
279
280 /** \brief Members: float gasd[512]
281 * \ingroup common
282 */
283 struct GASDSignature512;
284
285 /** \brief Members: float gasd[984]
286 * \ingroup common
287 */
288 struct GASDSignature984;
289
290 /** \brief Members: float gasd[7992]
291 * \ingroup common
292 */
293 struct GASDSignature7992;
294
295 /** \brief Members: float histogram[16]
296 * \ingroup common
297 */
298 struct GFPFHSignature16;
299
300 /** \brief Members: float scale; float orientation; std::uint8_t descriptor[64]
301 * \ingroup common
302 */
303 struct BRISKSignature512;
304
305 /** \brief Members: float x, y, z, roll, pitch, yaw; float descriptor[36]
306 * \ingroup common
307 */
308 struct Narf36;
309
310 /** \brief Data type to store extended information about a transition from foreground to backgroundSpecification of the fields for BorderDescription::traits.
311 * \ingroup common
312 */
313 using BorderTraits = std::bitset<32>;
314
315 /** \brief Specification of the fields for BorderDescription::traits.
316 * \ingroup common
317 */
326
327 /** \brief Members: int x, y; BorderTraits traits
328 * \ingroup common
329 */
330 struct BorderDescription;
331
332 /** \brief Members: float gradient[3]
333 * \ingroup common
334 */
335 struct IntensityGradient;
336
337 /** \brief Members: float histogram[N]
338 * \ingroup common
339 */
340 template<int N>
341 struct Histogram;
342
343 /** \brief Members: float x, y, z, scale, angle, response, octave
344 * \ingroup common
345 */
346 struct PointWithScale;
347
348 /** \brief Members: float x, y, z, normal[3], rgba, radius, confidence, curvature
349 * \ingroup common
350 */
351 struct PointSurfel;
352
353 /** \brief Members: float x, y, z, intensity, intensity_variance, height_variance
354 * \ingroup common
355 */
356 struct PointDEM;
357} // namespace pcl
358/** @} */
359
360#include <pcl/impl/point_types.hpp>
361
362#if defined _MSC_VER
363 #pragma warning(pop)
364#endif
BorderTrait
Specification of the fields for BorderDescription::traits.
std::bitset< 32 > BorderTraits
Data type to store extended information about a transition from foreground to backgroundSpecification...
@ BORDER_TRAIT__OBSTACLE_BORDER_TOP
@ BORDER_TRAIT__SHADOW_BORDER_RIGHT
@ BORDER_TRAIT__VEIL_POINT_RIGHT
@ BORDER_TRAIT__VEIL_POINT_TOP
@ BORDER_TRAIT__VEIL_POINT_BOTTOM
@ BORDER_TRAIT__OBSTACLE_BORDER_LEFT
@ BORDER_TRAIT__SHADOW_BORDER_LEFT
@ BORDER_TRAIT__SHADOW_BORDER_BOTTOM
@ BORDER_TRAIT__OBSTACLE_BORDER_RIGHT
@ BORDER_TRAIT__OBSTACLE_BORDER_BOTTOM
@ BORDER_TRAIT__VEIL_POINT_LEFT
@ BORDER_TRAIT__OBSTACLE_BORDER
@ BORDER_TRAIT__SHADOW_BORDER
@ BORDER_TRAIT__SHADOW_BORDER_TOP
@ BORDER_TRAIT__VEIL_POINT
Histogram< 250 > PFHRGBSignature250
Definition internal.hpp:74
Histogram< 308 > VFHSignature308
Definition internal.hpp:76
Histogram< 33 > FPFHSignature33
Definition internal.hpp:75
Histogram< 125 > PFHSignature125
Definition internal.hpp:73
float4 PointXYZRGB
Definition internal.hpp:60
std::uint8_t Label
Definition tree.h:73