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 <pcl/feature_types.h> // feature types are point types too
48
49#include <bitset>
50
51
52/**
53 * \file pcl/point_types.h
54 * Defines all the PCL implemented PointT point type structures
55 * \ingroup common
56 */
57
58// Allow nameless structs/unions
59#if defined _MSC_VER
60 #pragma warning(push)
61 #pragma warning(disable: 4201)
62#endif
63
64/** @{*/
65namespace pcl
66{
67 /** \brief Members: float x, y, z
68 * \ingroup common
69 */
70 struct PointXYZ;
71
72 /** \brief Members: rgba
73 * \ingroup common
74 */
75 struct RGB;
76
77 /** \brief Members: intensity (float)
78 * \ingroup common
79 */
80 struct Intensity;
81
82 /** \brief Members: intensity (std::uint8_t)
83 * \ingroup common
84 */
85 struct Intensity8u;
86
87 /** \brief Members: intensity (std::uint32_t)
88 * \ingroup common
89 */
90 struct Intensity32u;
91
92 /** \brief Members: float x, y, z, intensity
93 * \ingroup common
94 */
95 struct PointXYZI;
96
97 /** \brief Members: float x, y, z, uin32_t label
98 * \ingroup common
99 */
100 struct PointXYZL;
101
102 /** \brief Members: std::uint32_t label
103 * \ingroup common
104 */
105 struct Label;
106
107 /** \brief Members: float x, y, z; std::uint32_t rgba
108 * \ingroup common
109 */
110 struct PointXYZRGBA;
111
112 /** \brief Members: float x, y, z, rgb
113 * \ingroup common
114 */
115 struct PointXYZRGB;
116
117 /** \brief Members: float x, y, z, rgb, std::uint32_t label
118 * \ingroup common
119 */
120 struct PointXYZRGBL;
121
122 /** \brief Members: float x, y, z, L, a, b
123 * \ingroup common
124 */
125 struct PointXYZLAB;
126
127 /** \brief Members: float x, y, z, h, s, v
128 * \ingroup common
129 */
130 struct PointXYZHSV;
131
132 /** \brief Members: float x, y
133 * \ingroup common
134 */
135 struct PointXY;
136
137 /** \brief Members: float u, v
138 * \ingroup common
139 */
140 struct PointUV;
141
142 /** \brief Members: float x, y, z, strength
143 * \ingroup common
144 */
145 struct InterestPoint;
146
147 /** \brief Members: float normal[3], curvature
148 * \ingroup common
149 */
150 struct Normal;
151
152 /** \brief Members: float normal[3]
153 * \ingroup common
154 */
155 struct Axis;
156
157 /** \brief Members: float x, y, z; float normal[3], curvature
158 * \ingroup common
159 */
160 struct PointNormal;
161
162 /** \brief Members: float x, y, z, rgb, normal[3], curvature
163 * \ingroup common
164 */
165 struct PointXYZRGBNormal;
166
167 /** \brief Members: float x, y, z, intensity, normal[3], curvature
168 * \ingroup common
169 */
170 struct PointXYZINormal;
171
172 /** \brief Members: float x, y, z, label, normal[3], curvature
173 * \ingroup common
174 */
175 struct PointXYZLNormal;
176
177 /** \brief Members: float x, y, z (union with float point[4]), range
178 * \ingroup common
179 */
180 struct PointWithRange;
181
182 /** \brief Members: float x, y, z, vp_x, vp_y, vp_z
183 * \ingroup common
184 */
185 struct PointWithViewpoint;
186
187 /** \brief Data type to store extended information about a transition from foreground to backgroundSpecification of the fields for BorderDescription::traits.
188 * \ingroup common
189 */
190 using BorderTraits = std::bitset<32>;
191
192 /** \brief Specification of the fields for BorderDescription::traits.
193 * \ingroup common
194 */
203
204 /** \brief Members: int x, y; BorderTraits traits
205 * \ingroup common
206 */
207 struct BorderDescription;
208
209 /** \brief Members: float gradient[3]
210 * \ingroup common
211 */
212 struct IntensityGradient;
213
214 /** \brief Members: float x, y, z, scale, angle, response, octave
215 * \ingroup common
216 */
217 struct PointWithScale;
218
219 /** \brief Members: float x, y, z, normal[3], rgba, radius, confidence, curvature
220 * \ingroup common
221 */
222 struct PointSurfel;
223
224 /** \brief Members: float x, y, z, intensity, intensity_variance, height_variance
225 * \ingroup common
226 */
227 struct PointDEM;
228} // namespace pcl
229/** @} */
230
231#include <pcl/impl/point_types.hpp>
232
233#if defined _MSC_VER
234 #pragma warning(pop)
235#endif
Defines all the PCL implemented PointT feature type structures.
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
float4 PointXYZRGB
Definition internal.hpp:60
std::uint8_t Label
Definition tree.h:73