Point Cloud Library (PCL)
1.14.1-dev
pcl
io
ply
ply.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) 2007-2012, Ares Lagae
6
* Copyright (c) 2010-2011, Willow Garage, Inc.
7
*
8
* All rights reserved.
9
*
10
* Redistribution and use in source and binary forms, with or without
11
* modification, are permitted provided that the following conditions
12
* are met:
13
*
14
* * Redistributions of source code must retain the above copyright
15
* notice, this list of conditions and the following disclaimer.
16
* * Redistributions in binary form must reproduce the above
17
* copyright notice, this list of conditions and the following
18
* disclaimer in the documentation and/or other materials provided
19
* with the distribution.
20
* * Neither the name of the copyright holder(s) nor the names of its
21
* contributors may be used to endorse or promote products derived
22
* from this software without specific prior written permission.
23
*
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
* POSSIBILITY OF SUCH DAMAGE.
36
*
37
* $Id$
38
*
39
*/
40
41
#pragma once
42
43
#include <
pcl/io/ply/byte_order.h
>
44
#include <cstdint>
// for int8_t, int16_t, ...
45
46
/** \file ply.h contains standard typedefs and generic type traits
47
* \author Ares Lagae as part of libply, Nizar Sallem
48
* Ported with agreement from the author under the terms of the BSD
49
* license.
50
* \ingroup io
51
*/
52
namespace
pcl
53
{
54
namespace
io
55
{
56
namespace
ply
57
{
58
using
int8
= std::int8_t;
59
using
int16
= std::int16_t;
60
using
int32
= std::int32_t;
61
using
uint8
= std::uint8_t;
62
using
uint16
= std::uint16_t;
63
using
uint32
= std::uint32_t;
64
65
using
float32
= float;
66
using
float64
= double;
67
68
template
<
typename
ScalarType>
69
struct
type_traits
;
70
71
#ifdef PLY_TYPE_TRAITS
72
# error
73
#endif
74
75
#define PLY_TYPE_TRAITS(TYPE, PARSE_TYPE, NAME, OLD_NAME) \
76
template <> \
77
struct type_traits<TYPE> \
78
{ \
79
using type = TYPE; \
80
using parse_type = PARSE_TYPE; \
81
static const char* name () { return NAME; } \
82
static const char* old_name () { return OLD_NAME; } \
83
};
84
85
PLY_TYPE_TRAITS
(
int8
,
int16
,
"int8"
,
"char"
)
86
PLY_TYPE_TRAITS
(
int16
,
int16
, "
int16
", "
short
")
87
PLY_TYPE_TRAITS
(
int32
,
int32
, "
int32
", "
int
")
88
PLY_TYPE_TRAITS
(
uint8
,
uint16
, "
uint8
", "uchar")
89
PLY_TYPE_TRAITS
(
uint16
,
uint16
, "
uint16
", "ushort")
90
PLY_TYPE_TRAITS
(
uint32
,
uint32
, "
uint32
", "uint")
91
PLY_TYPE_TRAITS
(
float32
,
float32
, "
float32
", "
float
")
92
PLY_TYPE_TRAITS
(
float64
,
float64
, "
float64
", "
double
")
93
94
95
#undef PLY_TYPE_TRAITS
96
97
using
format_type
= int;
98
enum
format
{
ascii_format
,
binary_little_endian_format
,
binary_big_endian_format
,
unknown
};
99
}
// namespace ply
100
}
// namespace io
101
}
// namespace pcl
byte_order.h
defines byte shift operations and endianness.
pcl::io::ply::float64
double float64
Definition:
ply.h:66
pcl::io::ply::int16
std::int16_t int16
Definition:
ply.h:59
pcl::io::ply::int32
std::int32_t int32
Definition:
ply.h:60
pcl::io::ply::format_type
int format_type
Definition:
ply.h:97
pcl::io::ply::uint16
std::uint16_t uint16
Definition:
ply.h:62
pcl::io::ply::uint8
std::uint8_t uint8
Definition:
ply.h:61
pcl::io::ply::format
format
Definition:
ply.h:98
pcl::io::ply::binary_little_endian_format
@ binary_little_endian_format
Definition:
ply.h:98
pcl::io::ply::unknown
@ unknown
Definition:
ply.h:98
pcl::io::ply::ascii_format
@ ascii_format
Definition:
ply.h:98
pcl::io::ply::binary_big_endian_format
@ binary_big_endian_format
Definition:
ply.h:98
pcl::io::ply::int8
std::int8_t int8
Definition:
ply.h:58
pcl::io::ply::float32
float float32
Definition:
ply.h:65
pcl::io::ply::uint32
std::uint32_t uint32
Definition:
ply.h:63
pcl
Definition:
convolution.h:46
PLY_TYPE_TRAITS
#define PLY_TYPE_TRAITS(TYPE, PARSE_TYPE, NAME, OLD_NAME)
Definition:
ply.h:75
pcl::io::ply::type_traits
Definition:
ply.h:69