Point Cloud Library (PCL)
1.11.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
45
/** \file ply.h contains standard typedefs and generic type traits
46
* \author Ares Lagae as part of libply, Nizar Sallem
47
* Ported with agreement from the author under the terms of the BSD
48
* license.
49
* \ingroup io
50
*/
51
namespace
pcl
52
{
53
namespace
io
54
{
55
namespace
ply
56
{
57
using
int8
= std::int8_t;
58
using
int16
= std::int16_t;
59
using
int32
= std::int32_t;
60
using
uint8
= std::uint8_t;
61
using
uint16
= std::uint16_t;
62
using
uint32
= std::uint32_t;
63
64
using
float32
= float;
65
using
float64
= double;
66
67
template
<
typename
ScalarType>
68
struct
type_traits
;
69
70
#ifdef PLY_TYPE_TRAITS
71
# error
72
#endif
73
74
#define PLY_TYPE_TRAITS(TYPE, PARSE_TYPE, NAME, OLD_NAME) \
75
template <> \
76
struct type_traits<TYPE> \
77
{ \
78
using type = TYPE; \
79
using parse_type = PARSE_TYPE; \
80
static const char* name () { return NAME; } \
81
static const char* old_name () { return OLD_NAME; } \
82
};
83
84
PLY_TYPE_TRAITS
(
int8
,
int16
,
"int8"
,
"char"
)
85
PLY_TYPE_TRAITS
(
int16
,
int16
, "
int16
", "
short
")
86
PLY_TYPE_TRAITS
(
int32
,
int32
, "
int32
", "
int
")
87
PLY_TYPE_TRAITS
(
uint8
,
uint16
, "
uint8
", "uchar")
88
PLY_TYPE_TRAITS
(
uint16
,
uint16
, "
uint16
", "ushort")
89
PLY_TYPE_TRAITS
(
uint32
,
uint32
, "
uint32
", "uint")
90
PLY_TYPE_TRAITS
(
float32
,
float32
, "
float32
", "
float
")
91
PLY_TYPE_TRAITS
(
float64
,
float64
, "
float64
", "
double
")
92
93
94
#undef PLY_TYPE_TRAITS
95
96
using
format_type
= int;
97
enum
format
{
ascii_format
,
binary_little_endian_format
,
binary_big_endian_format
,
unknown
};
98
}
// namespace ply
99
}
// namespace io
100
}
// namespace pcl
pcl::io::ply::int8
std::int8_t int8
Definition:
ply.h:57
pcl
Definition:
convolution.h:46
pcl::io::ply::int16
std::int16_t int16
Definition:
ply.h:58
pcl::io::ply::ascii_format
@ ascii_format
Definition:
ply.h:97
PLY_TYPE_TRAITS
#define PLY_TYPE_TRAITS(TYPE, PARSE_TYPE, NAME, OLD_NAME)
Definition:
ply.h:74
pcl::io::ply::format
format
Definition:
ply.h:97
byte_order.h
pcl::io::ply::type_traits
Definition:
ply.h:68
pcl::io::ply::binary_big_endian_format
@ binary_big_endian_format
Definition:
ply.h:97
pcl::io::ply::uint8
std::uint8_t uint8
Definition:
ply.h:60
pcl::io::ply::float32
float float32
Definition:
ply.h:64
pcl::io::ply::format_type
int format_type
Definition:
ply.h:96
pcl::io::ply::unknown
@ unknown
Definition:
ply.h:97
pcl::io::ply::uint32
std::uint32_t uint32
Definition:
ply.h:62
pcl::io::ply::float64
double float64
Definition:
ply.h:65
pcl::io::ply::int32
std::int32_t int32
Definition:
ply.h:59
pcl::io::ply::uint16
std::uint16_t uint16
Definition:
ply.h:61
pcl::io::ply::binary_little_endian_format
@ binary_little_endian_format
Definition:
ply.h:97