Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
w
Functions
_
a
b
c
d
e
f
g
h
i
m
n
p
r
s
t
u
w
Variables
a
b
c
d
e
f
g
h
i
l
m
p
r
s
t
u
w
Typedefs
a
c
d
g
i
l
m
p
r
s
t
u
v
Enumerations
Classes
Class List
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
Related Functions
Files
File List
File Members
All
_
c
e
g
i
j
m
n
o
p
s
t
u
w
y
Functions
c
e
g
m
o
p
s
t
u
w
y
Variables
Typedefs
Macros
_
c
e
i
m
n
p
s
w
sensor_api
source
Wire
include
wire
GroundSurfaceModel.hh
Go to the documentation of this file.
1
39
#ifndef LibMultiSense_GroundSurfaceModelHeader
40
#define LibMultiSense_GroundSurfaceModelHeader
41
42
#include "utility/Portability.hh"
43
44
namespace
crl
{
45
namespace
multisense
{
46
namespace
details {
47
namespace
wire {
48
49
class
WIRE_HEADER_ATTRIBS_
GroundSurfaceModelHeader
{
50
public
:
51
static
CRL_CONSTEXPR
IdType
ID =
ID_DATA_GROUND_SURFACE_SPLINE_DATA_MESSAGE
;
52
static
CRL_CONSTEXPR
VersionType
VERSION = 1;
53
54
#ifdef SENSORPOD_FIRMWARE
55
IdType
id;
56
VersionType
version;
57
#endif // SENSORPOD_FIRMWARE
58
59
//
60
// Frame ID timestamp and success flag of images that the algorithm was processed on
61
62
int64_t
frameId
;
63
int64_t
timestamp
;
64
uint8_t
success
;
65
66
//
67
// Control points dynamic array (treated as image) members
68
69
uint32_t
controlPointsBitsPerPixel
;
70
uint32_t
controlPointsWidth
;
71
uint32_t
controlPointsHeight
;
72
73
//
74
// Spline origin and size details
75
76
float
xzCellOrigin[2];
77
float
xzCellSize[2];
78
float
xzLimit[2];
79
float
minMaxAzimuthAngle[2];
80
81
//
82
// Extrinsic calibration that was used during the computation of the spline
83
84
float
extrinsics[6];
85
86
//
87
// Ground Base Model (ax^2 + by^2 + cxy + dx + ey + f)
88
89
float
quadraticParams[6];
90
91
//
92
// Constructors
93
GroundSurfaceModelHeader
() :
94
#ifdef SENSORPOD_FIRMWARE
95
id(ID),
96
version(VERSION),
97
#endif
// SENSORPOD_FIRMWARE
98
frameId
(0),
99
timestamp(0),
100
success(0),
101
controlPointsBitsPerPixel(0),
102
controlPointsWidth(0),
103
controlPointsHeight(0)
104
{};
105
};
106
107
#ifndef SENSORPOD_FIRMWARE
108
109
class
GroundSurfaceModel
:
public
GroundSurfaceModelHeader
{
110
public
:
111
112
void
*
controlPointsDataP
;
113
114
//
115
// Constructors
116
117
GroundSurfaceModel
(
utility::BufferStreamReader
&r,
VersionType
v) {
serialize
(r,v);};
118
GroundSurfaceModel
() :
controlPointsDataP
(NULL) {};
119
120
//
121
// Serialization routine
122
123
template
<
class
Archive>
124
void
serialize
(Archive& message,
125
const
VersionType
version)
126
{
127
(void) version;
128
129
message &
frameId
;
130
message &
timestamp
;
131
message &
success
;
132
133
message &
controlPointsBitsPerPixel
;
134
message &
controlPointsWidth
;
135
message &
controlPointsHeight
;
136
137
for
(
unsigned
int
i = 0; i < 2; i++)
138
message &
xzCellOrigin
[i];
139
140
for
(
unsigned
int
i = 0; i < 2; i++)
141
message &
xzCellSize
[i];
142
143
for
(
unsigned
int
i = 0; i < 2; i++)
144
message &
xzLimit
[i];
145
146
for
(
unsigned
int
i = 0; i < 2; i++)
147
message &
minMaxAzimuthAngle
[i];
148
149
for
(
unsigned
int
i = 0; i < 6; i++)
150
message &
extrinsics
[i];
151
152
for
(
unsigned
int
i = 0; i < 6; i++)
153
message &
quadraticParams
[i];
154
155
const
uint32_t imageSize =
static_cast<
uint32_t
>
(std::ceil(((
double
)
controlPointsBitsPerPixel
/ 8.0) *
controlPointsWidth
*
controlPointsHeight
));
156
157
if
(
typeid
(Archive) ==
typeid
(
utility::BufferStreamWriter
)) {
158
159
message.write(
controlPointsDataP
, imageSize);
160
161
}
else
{
162
163
controlPointsDataP
= message.peek();
164
message.seek(message.tell() + imageSize);
165
}
166
}
167
};
168
169
#endif // !SENSORPOD_FIRMWARE
170
171
}}}}
// namespaces
172
173
#endif
crl::multisense::details::wire::GroundSurfaceModelHeader::extrinsics
float extrinsics[6]
Definition:
GroundSurfaceModel.hh:84
crl::multisense::details::wire::GroundSurfaceModelHeader::controlPointsHeight
uint32_t controlPointsHeight
Definition:
GroundSurfaceModel.hh:71
crl::multisense::details::wire::GroundSurfaceModel::GroundSurfaceModel
GroundSurfaceModel()
Definition:
GroundSurfaceModel.hh:118
crl::multisense::details::wire::GroundSurfaceModelHeader::xzCellSize
float xzCellSize[2]
Definition:
GroundSurfaceModel.hh:77
WIRE_HEADER_ATTRIBS_
#define WIRE_HEADER_ATTRIBS_
Definition:
Protocol.hh:65
crl::multisense::details::wire::GroundSurfaceModel::controlPointsDataP
void * controlPointsDataP
Definition:
GroundSurfaceModel.hh:112
crl::multisense::details::wire::GroundSurfaceModelHeader::xzCellOrigin
float xzCellOrigin[2]
Definition:
GroundSurfaceModel.hh:76
crl::multisense::details::wire::GroundSurfaceModel
Definition:
GroundSurfaceModel.hh:109
crl::multisense::details::wire::GroundSurfaceModelHeader::minMaxAzimuthAngle
float minMaxAzimuthAngle[2]
Definition:
GroundSurfaceModel.hh:79
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition:
Legacy/include/MultiSense/details/utility/Portability.hh:49
crl::multisense::details::wire::GroundSurfaceModelHeader::controlPointsWidth
uint32_t controlPointsWidth
Definition:
GroundSurfaceModel.hh:70
crl
Definition:
Legacy/details/channel.cc:61
crl::multisense::details::wire::GroundSurfaceModel::GroundSurfaceModel
GroundSurfaceModel(utility::BufferStreamReader &r, VersionType v)
Definition:
GroundSurfaceModel.hh:117
crl::multisense::details::utility::BufferStreamWriter
Definition:
BufferStream.hh:259
frameId
std::string const * frameId(const M &m)
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition:
Protocol.hh:137
crl::multisense::details::wire::GroundSurfaceModelHeader::controlPointsBitsPerPixel
uint32_t controlPointsBitsPerPixel
Definition:
GroundSurfaceModel.hh:69
crl::multisense::details::wire::GroundSurfaceModelHeader::quadraticParams
float quadraticParams[6]
Definition:
GroundSurfaceModel.hh:89
crl::multisense::details::wire::GroundSurfaceModelHeader::success
uint8_t success
Definition:
GroundSurfaceModel.hh:64
multisense
Definition:
factory.cc:39
crl::multisense::details::wire::GroundSurfaceModel::serialize
void serialize(Archive &message, const VersionType version)
Definition:
GroundSurfaceModel.hh:124
crl::multisense::details::wire::GroundSurfaceModelHeader::xzLimit
float xzLimit[2]
Definition:
GroundSurfaceModel.hh:78
crl::multisense::details::wire::GroundSurfaceModelHeader::GroundSurfaceModelHeader
GroundSurfaceModelHeader()
Definition:
GroundSurfaceModel.hh:93
crl::multisense::details::utility::BufferStreamReader
Definition:
BufferStream.hh:192
crl::multisense::details::wire::GroundSurfaceModelHeader::frameId
int64_t frameId
Definition:
GroundSurfaceModel.hh:62
crl::multisense::details::wire::IdType
uint16_t IdType
Definition:
Protocol.hh:136
crl::multisense::details::wire::GroundSurfaceModelHeader
Definition:
GroundSurfaceModel.hh:49
crl::multisense::details::wire::ID_DATA_GROUND_SURFACE_SPLINE_DATA_MESSAGE
static CRL_CONSTEXPR IdType ID_DATA_GROUND_SURFACE_SPLINE_DATA_MESSAGE
Definition:
Protocol.hh:232
crl::multisense::details::wire::GroundSurfaceModelHeader::timestamp
int64_t timestamp
Definition:
GroundSurfaceModel.hh:63
multisense_lib
Author(s):
autogenerated on Thu Apr 17 2025 02:49:08