Point Cloud Library (PCL) 1.12.0
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#include <bitset>
43
44
45/**
46 * \file pcl/point_types.h
47 * Defines all the PCL implemented PointT point type structures
48 * \ingroup common
49 */
50
51// Allow nameless structs/unions
52#if defined _MSC_VER
53 #pragma warning(disable: 4201)
54#endif
55
56/** @{*/
57namespace pcl
58{
59 /** \brief Members: float x, y, z
60 * \ingroup common
61 */
62 struct PointXYZ;
63
64 /** \brief Members: rgba
65 * \ingroup common
66 */
67 struct RGB;
68
69 /** \brief Members: intensity (float)
70 * \ingroup common
71 */
72 struct Intensity;
73
74 /** \brief Members: intensity (std::uint8_t)
75 * \ingroup common
76 */
77 struct Intensity8u;
78
79 /** \brief Members: intensity (std::uint32_t)
80 * \ingroup common
81 */
82 struct Intensity32u;
83
84 /** \brief Members: float x, y, z, intensity
85 * \ingroup common
86 */
87 struct PointXYZI;
88
89 /** \brief Members: float x, y, z, uin32_t label
90 * \ingroup common
91 */
92 struct PointXYZL;
93
94 /** \brief Members: std::uint32_t label
95 * \ingroup common
96 */
97 struct Label;
98
99 /** \brief Members: float x, y, z; std::uint32_t rgba
100 * \ingroup common
101 */
102 struct PointXYZRGBA;
103
104 /** \brief Members: float x, y, z, rgb
105 * \ingroup common
106 */
107 struct PointXYZRGB;
108
109 /** \brief Members: float x, y, z, rgb, std::uint32_t label
110 * \ingroup common
111 */
112 struct PointXYZRGBL;
113
114 /** \brief Members: float x, y, z, L, a, b
115 * \ingroup common
116 */
117 struct PointXYZLAB;
118
119 /** \brief Members: float x, y, z, h, s, v
120 * \ingroup common
121 */
122 struct PointXYZHSV;
123
124 /** \brief Members: float x, y
125 * \ingroup common
126 */
127 struct PointXY;
128
129 /** \brief Members: float u, v
130 * \ingroup common
131 */
132 struct PointUV;
133
134 /** \brief Members: float x, y, z, strength
135 * \ingroup common
136 */
137 struct InterestPoint;
138
139 /** \brief Members: float normal[3], curvature
140 * \ingroup common
141 */
142 struct Normal;
143
144 /** \brief Members: float normal[3]
145 * \ingroup common
146 */
147 struct Axis;
148
149 /** \brief Members: float x, y, z; float normal[3], curvature
150 * \ingroup common
151 */
152 struct PointNormal;
153
154 /** \brief Members: float x, y, z, rgb, normal[3], curvature
155 * \ingroup common
156 */
157 struct PointXYZRGBNormal;
158
159 /** \brief Members: float x, y, z, intensity, normal[3], curvature
160 * \ingroup common
161 */
162 struct PointXYZINormal;
163
164 /** \brief Members: float x, y, z, label, normal[3], curvature
165 * \ingroup common
166 */
167 struct PointXYZLNormal;
168
169 /** \brief Members: float x, y, z (union with float point[4]), range
170 * \ingroup common
171 */
172 struct PointWithRange;
173
174 /** \brief Members: float x, y, z, vp_x, vp_y, vp_z
175 * \ingroup common
176 */
177 struct PointWithViewpoint;
178
179 /** \brief Members: float j1, j2, j3
180 * \ingroup common
181 */
182 struct MomentInvariants;
183
184 /** \brief Members: float r_min, r_max
185 * \ingroup common
186 */
187 struct PrincipalRadiiRSD;
188
189 /** \brief Members: std::uint8_t boundary_point
190 * \ingroup common
191 */
192 struct Boundary;
193
194 /** \brief Members: float principal_curvature[3], pc1, pc2
195 * \ingroup common
196 */
197 struct PrincipalCurvatures;
198
199 /** \brief Members: float descriptor[352], rf[9]
200 * \ingroup common
201 */
202 struct SHOT352;
203
204 /** \brief Members: float descriptor[1344], rf[9]
205 * \ingroup common
206 */
207 struct SHOT1344;
208
209 /** \brief Members: Axis x_axis, y_axis, z_axis
210 * \ingroup common
211 */
212 struct ReferenceFrame;
213
214 /** \brief Members: float descriptor[1980], rf[9]
215 * \ingroup common
216 */
217 struct ShapeContext1980;
218
219 /** \brief Members: float descriptor[1960], rf[9]
220 * \ingroup common
221 */
222 struct UniqueShapeContext1960;
223
224 /** \brief Members: float pfh[125]
225 * \ingroup common
226 */
227 struct PFHSignature125;
228
229 /** \brief Members: float pfhrgb[250]
230 * \ingroup common
231 */
232 struct PFHRGBSignature250;
233
234 /** \brief Members: float f1, f2, f3, f4, alpha_m
235 * \ingroup common
236 */
237 struct PPFSignature;
238
239 /** \brief Members: float f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, alpha_m
240 * \ingroup common
241 */
242 struct CPPFSignature;
243
244 /** \brief Members: float f1, f2, f3, f4, r_ratio, g_ratio, b_ratio, alpha_m
245 * \ingroup common
246 */
247 struct PPFRGBSignature;
248
249 /** \brief Members: float values[12]
250 * \ingroup common
251 */
252 struct NormalBasedSignature12;
253
254 /** \brief Members: float fpfh[33]
255 * \ingroup common
256 */
257 struct FPFHSignature33;
258
259 /** \brief Members: float vfh[308]
260 * \ingroup common
261 */
262 struct VFHSignature308;
263
264 /** \brief Members: float grsd[21]
265 * \ingroup common
266 */
267 struct GRSDSignature21;
268
269 /** \brief Members: float esf[640]
270 * \ingroup common
271 */
272 struct ESFSignature640;
273
274 /** \brief Members: float gasd[512]
275 * \ingroup common
276 */
277 struct GASDSignature512;
278
279 /** \brief Members: float gasd[984]
280 * \ingroup common
281 */
282 struct GASDSignature984;
283
284 /** \brief Members: float gasd[7992]
285 * \ingroup common
286 */
287 struct GASDSignature7992;
288
289 /** \brief Members: float histogram[16]
290 * \ingroup common
291 */
292 struct GFPFHSignature16;
293
294 /** \brief Members: float scale; float orientation; std::uint8_t descriptor[64]
295 * \ingroup common
296 */
297 struct BRISKSignature512;
298
299 /** \brief Members: float x, y, z, roll, pitch, yaw; float descriptor[36]
300 * \ingroup common
301 */
302 struct Narf36;
303
304 /** \brief Data type to store extended information about a transition from foreground to backgroundSpecification of the fields for BorderDescription::traits.
305 * \ingroup common
306 */
307 using BorderTraits = std::bitset<32>;
308
309 /** \brief Specification of the fields for BorderDescription::traits.
310 * \ingroup common
311 */
313 {
319 };
320
321 /** \brief Members: int x, y; BorderTraits traits
322 * \ingroup common
323 */
324 struct BorderDescription;
325
326 /** \brief Members: float gradient[3]
327 * \ingroup common
328 */
329 struct IntensityGradient;
330
331 /** \brief Members: float histogram[N]
332 * \ingroup common
333 */
334 template<int N>
335 struct Histogram;
336
337 /** \brief Members: float x, y, z, scale, angle, response, octave
338 * \ingroup common
339 */
340 struct PointWithScale;
341
342 /** \brief Members: float x, y, z, normal[3], rgba, radius, confidence, curvature
343 * \ingroup common
344 */
345 struct PointSurfel;
346
347 /** \brief Members: float x, y, z, intensity, intensity_variance, height_variance
348 * \ingroup common
349 */
350 struct PointDEM;
351} // namespace pcl
352/** @} */
353
354#include <pcl/impl/point_types.hpp>
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