LibMultiSense
LibMultiSense Documentation
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::GroundSurfaceModel
Definition:
GroundSurfaceModel.hh:109
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::GroundSurfaceModelHeader::GroundSurfaceModelHeader
GroundSurfaceModelHeader()
Definition:
GroundSurfaceModel.hh:93
Portability.hh
WIRE_HEADER_ATTRIBS_
#define WIRE_HEADER_ATTRIBS_
Definition:
Protocol.hh:65
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition:
Portability.hh:49
crl::multisense::details::wire::GroundSurfaceModelHeader::controlPointsBitsPerPixel
uint32_t controlPointsBitsPerPixel
Definition:
GroundSurfaceModel.hh:69
crl::multisense::details::wire::GroundSurfaceModelHeader::xzLimit
float xzLimit[2]
Definition:
GroundSurfaceModel.hh:78
crl
Definition:
BufferStream.hh:51
crl::multisense::details::wire::GroundSurfaceModelHeader::frameId
int64_t frameId
Definition:
GroundSurfaceModel.hh:62
crl::multisense::details::wire::GroundSurfaceModel::controlPointsDataP
void * controlPointsDataP
Definition:
GroundSurfaceModel.hh:112
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
crl::multisense::details::wire::GroundSurfaceModelHeader::timestamp
int64_t timestamp
Definition:
GroundSurfaceModel.hh:63
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition:
Protocol.hh:137
crl::multisense::details::utility::BufferStreamWriter
Definition:
BufferStream.hh:259
crl::multisense::details::wire::GroundSurfaceModelHeader
Definition:
GroundSurfaceModel.hh:49
crl::multisense::details::wire::GroundSurfaceModelHeader::controlPointsWidth
uint32_t controlPointsWidth
Definition:
GroundSurfaceModel.hh:70
crl::multisense::details::utility::BufferStreamReader
Definition:
BufferStream.hh:192
multisense
Definition:
MultiSenseChannel.hh:44
crl::multisense::details::wire::GroundSurfaceModelHeader::xzCellOrigin
float xzCellOrigin[2]
Definition:
GroundSurfaceModel.hh:76
crl::multisense::details::wire::GroundSurfaceModel::GroundSurfaceModel
GroundSurfaceModel(utility::BufferStreamReader &r, VersionType v)
Definition:
GroundSurfaceModel.hh:117
crl::multisense::details::wire::GroundSurfaceModel::serialize
void serialize(Archive &message, const VersionType version)
Definition:
GroundSurfaceModel.hh:124
crl::multisense::details::wire::GroundSurfaceModel::GroundSurfaceModel
GroundSurfaceModel()
Definition:
GroundSurfaceModel.hh:118
crl::multisense::details::wire::IdType
uint16_t IdType
Definition:
Protocol.hh:136
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::xzCellSize
float xzCellSize[2]
Definition:
GroundSurfaceModel.hh:77
crl::multisense::details::wire::GroundSurfaceModelHeader::minMaxAzimuthAngle
float minMaxAzimuthAngle[2]
Definition:
GroundSurfaceModel.hh:79
source
Wire
include
wire
GroundSurfaceModel.hh
Generated on Tue Mar 18 2025 14:54:04 for LibMultiSense by
1.8.17