Point Cloud Library (PCL)
1.15.1
Toggle main menu visibility
Loading...
Searching...
No Matches
pcl
PCLPointField.h
1
#pragma once
2
3
#include <
pcl/memory.h
>
// for shared_ptr
4
#include <pcl/type_traits.h>
// for asEnum_v
5
#include <
pcl/types.h
>
// for index_t
6
7
#include <string>
// for string
8
#include <ostream>
// for ostream
9
10
namespace
pcl
11
{
12
struct
PCLPointField
13
{
14
std::string
name
;
15
16
uindex_t
offset
= 0;
17
std::uint8_t
datatype
= 0;
18
uindex_t
count
= 0;
19
20
enum
PointFieldTypes
{
BOOL
=
traits::asEnum_v<bool>
,
21
INT8
=
traits::asEnum_v<std::int8_t>
,
22
UINT8
=
traits::asEnum_v<std::uint8_t>
,
23
INT16
=
traits::asEnum_v<std::int16_t>
,
24
UINT16
=
traits::asEnum_v<std::uint16_t>
,
25
INT32
=
traits::asEnum_v<std::int32_t>
,
26
UINT32
=
traits::asEnum_v<std::uint32_t>
,
27
INT64
=
traits::asEnum_v<std::int64_t>
,
28
UINT64
=
traits::asEnum_v<std::uint64_t>
,
29
FLOAT32
=
traits::asEnum_v<float>
,
30
FLOAT64
=
traits::asEnum_v<double>
};
31
32
public
:
33
using
Ptr
= shared_ptr< ::pcl::PCLPointField>;
34
using
ConstPtr
= shared_ptr<const ::pcl::PCLPointField>;
35
};
// struct PCLPointField
36
37
using
PCLPointFieldPtr
=
PCLPointField::Ptr
;
38
using
PCLPointFieldConstPtr
=
PCLPointField::ConstPtr
;
39
40
inline
std::ostream&
operator<<
(std::ostream& s, const ::pcl::PCLPointField & v)
41
{
42
s <<
"name: "
;
43
s <<
" "
<< v.name << std::endl;
44
s <<
"offset: "
;
45
s <<
" "
<< v.offset << std::endl;
46
s <<
"datatype: "
;
47
switch
(v.datatype) {
48
case ::pcl::PCLPointField::PointFieldTypes::BOOL: s <<
" BOOL"
<< std::endl;
break
;
49
case ::pcl::PCLPointField::PointFieldTypes::INT8: s <<
" INT8"
<< std::endl;
break
;
50
case ::pcl::PCLPointField::PointFieldTypes::UINT8: s <<
" UINT8"
<< std::endl;
break
;
51
case ::pcl::PCLPointField::PointFieldTypes::INT16: s <<
" INT16"
<< std::endl;
break
;
52
case ::pcl::PCLPointField::PointFieldTypes::UINT16: s <<
" UINT16"
<< std::endl;
break
;
53
case ::pcl::PCLPointField::PointFieldTypes::INT32: s <<
" INT32"
<< std::endl;
break
;
54
case ::pcl::PCLPointField::PointFieldTypes::UINT32: s <<
" UINT32"
<< std::endl;
break
;
55
case ::pcl::PCLPointField::PointFieldTypes::INT64: s <<
" INT64"
<< std::endl;
break
;
56
case ::pcl::PCLPointField::PointFieldTypes::UINT64: s <<
" UINT64"
<< std::endl;
break
;
57
case ::pcl::PCLPointField::PointFieldTypes::FLOAT32: s <<
" FLOAT32"
<< std::endl;
break
;
58
case ::pcl::PCLPointField::PointFieldTypes::FLOAT64: s <<
" FLOAT64"
<< std::endl;
break
;
59
default
: s <<
" "
<<
static_cast<
int
>
(v.datatype) << std::endl;
60
}
61
s <<
"count: "
;
62
s <<
" "
<< v.count << std::endl;
63
return
(s);
64
}
65
66
// Return true if the PCLPointField matches the expected name and data type.
67
// Written as a struct to allow partially specializing on Tag.
68
template
<
typename
Po
int
T,
typename
Tag>
69
struct
FieldMatches
70
{
71
bool
operator()
(
const
PCLPointField
& field)
72
{
73
return
((field.
name
== traits::name<PointT, Tag>::value) &&
74
(field.
datatype
== traits::datatype<PointT, Tag>::value) &&
75
((field.
count
== traits::datatype<PointT, Tag>::size) ||
76
(field.
count
== 0 && traits::datatype<PointT, Tag>::size == 1
/* see bug #821 */
)));
77
}
78
};
79
80
}
// namespace pcl
81
memory.h
Defines functions, macros and traits for allocating and using memory.
pcl::traits::asEnum_v
static constexpr std::uint8_t asEnum_v
Definition
type_traits.h:97
pcl
Definition
convolution.h:46
pcl::PCLPointFieldPtr
PCLPointField::Ptr PCLPointFieldPtr
Definition
PCLPointField.h:37
pcl::operator<<
std::ostream & operator<<(std::ostream &os, const BivariatePolynomialT< real > &p)
Definition
bivariate_polynomial.hpp:238
pcl::PCLPointFieldConstPtr
PCLPointField::ConstPtr PCLPointFieldConstPtr
Definition
PCLPointField.h:38
pcl::uindex_t
detail::int_type_t< detail::index_type_size, false > uindex_t
Type used for an unsigned index in PCL.
Definition
types.h:120
pcl::FieldMatches
Definition
PCLPointField.h:70
pcl::FieldMatches::operator()
bool operator()(const PCLPointField &field)
Definition
PCLPointField.h:71
pcl::PCLPointField
Definition
PCLPointField.h:13
pcl::PCLPointField::PointFieldTypes
PointFieldTypes
Definition
PCLPointField.h:20
pcl::PCLPointField::UINT16
@ UINT16
Definition
PCLPointField.h:24
pcl::PCLPointField::FLOAT32
@ FLOAT32
Definition
PCLPointField.h:29
pcl::PCLPointField::UINT8
@ UINT8
Definition
PCLPointField.h:22
pcl::PCLPointField::INT16
@ INT16
Definition
PCLPointField.h:23
pcl::PCLPointField::FLOAT64
@ FLOAT64
Definition
PCLPointField.h:30
pcl::PCLPointField::UINT32
@ UINT32
Definition
PCLPointField.h:26
pcl::PCLPointField::UINT64
@ UINT64
Definition
PCLPointField.h:28
pcl::PCLPointField::INT8
@ INT8
Definition
PCLPointField.h:21
pcl::PCLPointField::INT64
@ INT64
Definition
PCLPointField.h:27
pcl::PCLPointField::INT32
@ INT32
Definition
PCLPointField.h:25
pcl::PCLPointField::BOOL
@ BOOL
Definition
PCLPointField.h:20
pcl::PCLPointField::offset
uindex_t offset
Definition
PCLPointField.h:16
pcl::PCLPointField::name
std::string name
Definition
PCLPointField.h:14
pcl::PCLPointField::ConstPtr
shared_ptr< const ::pcl::PCLPointField > ConstPtr
Definition
PCLPointField.h:34
pcl::PCLPointField::datatype
std::uint8_t datatype
Definition
PCLPointField.h:17
pcl::PCLPointField::count
uindex_t count
Definition
PCLPointField.h:18
pcl::PCLPointField::Ptr
shared_ptr< ::pcl::PCLPointField > Ptr
Definition
PCLPointField.h:33
types.h
Defines basic non-point types used by PCL.