Xavia SDK c++ API 2.1.0
API description of the xavia library
Loading...
Searching...
No Matches
iPointCloud.h
1#pragma once
2
3#include "xmsdk_export.h"
4#include <vector>
5#include <cstdint>
6#include <memory>
7
8namespace xavia::sdk
9{
16 struct MetaData
17 {
18 std::uint64_t frameTimeStampUs{0};
19 std::uint64_t lineTimeStampUs{0};
20 std::uint64_t transmitTimeStampUs{0};
21 std::uint32_t frameNumber{0};
22 std::uint8_t lineNumber{0};
23 std::uint8_t internalFrameNumber{0};
24 std::uint32_t triggerCounter{0};
25 std::uint8_t returnIndex{0};
26 };
27
33 {
36 };
37
41 struct ImuData
42 {
43 float yawDegS;
44 float pitchDegS;
45 float rollDegS;
46 float accXMS2;
47 float accYMS2;
48 float accZMS2;
49 };
50
62 {
63 public:
64
65 virtual ~IPointCloud() = default;
71 virtual const std::vector<float>& GetXMm() const = 0;
77 virtual const std::vector<float>& GetYMm() const = 0;
83 virtual const std::vector<float>& GetZMm() const = 0;
84
90 virtual const std::vector<float>& GetDistanceMm() const = 0;
91
97 virtual const std::vector<float>& GetReflectivity() const = 0;
98
104 virtual const std::vector<std::uint16_t>& GetAmbient() const = 0;
105
111 virtual const std::vector<float>& GetConfidence() const = 0;
112
118 virtual std::size_t GetNrPoints() const = 0;
119
124 virtual const MetaData& GetMetaData() const = 0;
125
131 virtual const ImuData& GetImuData() const = 0;
132
137 virtual const OnboardProbes& GetOnboardProbes() const = 0;
138
149 virtual const std::vector<std::uint8_t>& Serialize() = 0;
150
163 virtual void Deserialize(const std::vector<std::uint8_t>& data) = 0;
164
178 virtual void Deserialize(const std::uint8_t* pBuffer, const std::size_t size) = 0;
179 };
180
190 std::unique_ptr<IPointCloud> XMSDK_EXPORT CreatePointCloud();
191} // namespace xavia::sdk
The interface of the point cloud object.
Definition iPointCloud.h:62
virtual void Deserialize(const std::uint8_t *pBuffer, const std::size_t size)=0
Fill this point cloud object from binary data.
virtual const std::vector< std::uint16_t > & GetAmbient() const =0
Get the background light of points of the current line.
virtual const std::vector< float > & GetZMm() const =0
Get the z reconstruction of points of the current line.
virtual void Deserialize(const std::vector< std::uint8_t > &data)=0
Fill this point cloud object from binary data.
virtual const OnboardProbes & GetOnboardProbes() const =0
Get the temperature and humidity of the current line.
virtual const std::vector< float > & GetConfidence() const =0
Get the confidence of points of the current line.
virtual const std::vector< std::uint8_t > & Serialize()=0
Convert this point cloud object into binary data.
virtual std::size_t GetNrPoints() const =0
Get the number of points in the current line.
virtual const std::vector< float > & GetYMm() const =0
Get the y reconstruction of points of the current line.
virtual const std::vector< float > & GetReflectivity() const =0
Get the reflectivity of the points of the current line.
virtual const std::vector< float > & GetXMm() const =0
Get the x reconstruction of points of the current line.
virtual const ImuData & GetImuData() const =0
Get the IMU data of the current line.
virtual const MetaData & GetMetaData() const =0
Get the metadata of the current line.
virtual const std::vector< float > & GetDistanceMm() const =0
Get the measured distance of the points of the current line.
The IMU data registered when the point cloud was recorded.
Definition iPointCloud.h:42
float accYMS2
y acceleration expressed in meter per seconds squared.
Definition iPointCloud.h:47
float accZMS2
z acceleration expressed in meter per seconds squared.
Definition iPointCloud.h:48
float yawDegS
yaw change indicated in degrees per second
Definition iPointCloud.h:43
float rollDegS
roll change indicated in degrees per second
Definition iPointCloud.h:45
float pitchDegS
pitch change indicated in degrees per second
Definition iPointCloud.h:44
float accXMS2
x acceleration expressed in meter per seconds squared.
Definition iPointCloud.h:46
Metadata struct containing general information for each point cloud line.
Definition iPointCloud.h:17
std::uint8_t lineNumber
Line number/counter. Indicates the vertical position within a frame of a dataset.
Definition iPointCloud.h:22
std::uint8_t internalFrameNumber
Internal, continuous incrementing frame counter. Overflows at 255.
Definition iPointCloud.h:23
std::uint64_t frameTimeStampUs
Posix timestamp in us of start of frame acquisition.
Definition iPointCloud.h:18
std::uint64_t lineTimeStampUs
Posix timestamp in us of start of line acquisition.
Definition iPointCloud.h:19
std::uint32_t triggerCounter
Monotonically increasing counter indicating a trigger connected to this frame.
Definition iPointCloud.h:24
std::uint64_t transmitTimeStampUs
Posix timestamp in us when data leaves sensor.
Definition iPointCloud.h:20
std::uint32_t frameNumber
Monotonically increasing counter. Unique for each frame acquired by the sensor.
Definition iPointCloud.h:21
std::uint8_t returnIndex
Indicator for multiple returns mode (currently not supported, will always be 0).
Definition iPointCloud.h:25
struct containing information from sensors inside the sensors such as temperature and humidity.
Definition iPointCloud.h:33
float temperatureDegC
Temperature measurement from inside the sensor in degrees Celsius.
Definition iPointCloud.h:35
float humidityRelative
Relative humidity measurement from inside the sensor.
Definition iPointCloud.h:34