29 using Index = data::LidarData::Index;
35 return reinterpret_cast<const float &
>(
_begin[Index::HorizontalAngle]);
41 return _begin[Index::ChannelCount];
51 return _begin[Index::SIZE + channel];
89 return sizeof(uint32_t) * (View.GetChannelCount() + data::LidarData::Index::SIZE);
93 template <
typename Sensor>
96 const data::LidarData &data,
108 template <
typename Sensor>
111 const data::LidarData &data,
115 std::array<boost::asio::const_buffer, 2u> seq = {
116 boost::asio::buffer(data._header),
117 boost::asio::buffer(data._points)};
121 return std::move(output);
auto begin() const noexcept
名称范围迭代支持
#define DEBUG_ASSERT(predicate)
一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
void copy_from(const T &source)
将 source复制到此缓冲区。如果需要,则分配内存。
包装一个传感器生成的原始数据以及一些有用的元信息。
auto begin() noexcept
指向传感器生成的数据的开始迭代器。
Serializes the data generated by Lidar sensors.
static SharedPtr< SensorData > Deserialize(RawData &&data)
static Buffer Serialize(const Sensor &sensor, const data::LidarData &data, Buffer &&output)
static LidarHeaderView DeserializeHeader(const RawData &data)
static size_t GetHeaderOffset(const RawData &data)
boost::shared_ptr< T > SharedPtr
使用这个SharedPtr(boost::shared_ptr)以保持与boost::python的兼容性, 但未来如果可能的话,我们希望能为std::shared_ptr制作一个Python适配器。