CARLA
 
载入中...
搜索中...
未找到
CarlaRadarPublisher.h
浏览该文件的文档.
1// Copyright (c) 2022 Computer Vision Center (CVC) at the Universitat Autonoma de Barcelona (UAB).
2// This work is licensed under the terms of the MIT license.
3// For a copy, see <https://opensource.org/licenses/MIT>.
4
5#pragma once // 定义全局宏,设置 C++11 ABI 为 0,可能影响 C++ 标准库的一些行为,如动态链接库的符号解析等
6#define _GLIBCXX_USE_CXX11_ABI 0 // 引入内存管理头文件,用于处理智能指针等内存相关操作
7#define _GLIBCXX_USE_CXX11_ABI 0 // 引入向量头文件,用于处理动态大小数组,可能用于存储雷达数据等
8
9#include <memory> // 引入向量头文件,用于处理动态大小数组,可能用于存储雷达数据等
10#include <vector> // 引入自定义的 CarlaPublisher.h 头文件,CarlaRadarPublisher 类可能继承自 CarlaPublisher 或依赖其定义
11
12#include "CarlaPublisher.h"
13
14namespace carla {
15namespace ros2 { // 前置声明 CarlaRadarPublisherImpl 结构体,其完整定义可能在其他文件中,通过智能指针在本类中使用
16
17 struct CarlaRadarPublisherImpl; // CarlaRadarPublisher 类定义,继承自 CarlaPublisher
18
20 public: // 构造函数,可传入 ROS 名称和父名称,用于初始化对象,默认参数为空字符串
21 CarlaRadarPublisher(const char* ros_name = "", const char* parent = ""); // 析构函数,用于释放对象占用的资源
22 ~CarlaRadarPublisher(); // 拷贝构造函数,用于创建当前对象的副本,进行深拷贝或浅拷贝(取决于实现)
23 CarlaRadarPublisher(const CarlaRadarPublisher&); // 拷贝赋值运算符重载,用于将一个对象的值赋给当前对象,处理资源和数据复制
24 CarlaRadarPublisher& operator=(const CarlaRadarPublisher&); // 移动构造函数,通过移动语义高效转移资源所有权,避免不必要拷贝开销
25 CarlaRadarPublisher(CarlaRadarPublisher&&); // 移动赋值运算符重载,实现移动语义的赋值操作
26 CarlaRadarPublisher& operator=(CarlaRadarPublisher&&); // 初始化函数,可能用于初始化发布雷达数据相关的内部状态、资源或与外部系统连接,返回初始化成功与否
27
28 bool Init();// 发布函数,将准备好的雷达数据发布出去,返回发布操作是否成功
29 bool Publish();// 设置雷达数据函数,传入时间戳(秒和纳秒)、数据维度(高度、宽度、元素个数)及数据指针
30 void SetData(int32_t seconds, uint32_t nanoseconds, size_t height, size_t width, size_t elements, const uint8_t* data);
31 // 重写的虚函数,返回 "radar" 标识此发布者发布的数据类型为雷达数据
32 const char* type() const override { return "radar"; }
33
34 private: // 重载的 SetData 函数,接收右值引用的向量数据,利用移动语义高效设置数据,避免拷贝
35 void SetData(int32_t seconds, uint32_t nanoseconds, size_t height, size_t width, size_t elements, std::vector<uint8_t>&& data);
36
37 private: // 智能指针指向 CarlaRadarPublisherImpl 结构体,用于解耦接口与内部实现,处理内部逻辑
38 std::shared_ptr<CarlaRadarPublisherImpl> _impl;
39 };
40}
41}
const std::string & parent() const
CarlaRadarPublisher(const char *ros_name="", const char *parent="")
CarlaRadarPublisher 类的构造函数
std::shared_ptr< CarlaRadarPublisherImpl > _impl
void SetData(int32_t seconds, uint32_t nanoseconds, size_t height, size_t width, size_t elements, const uint8_t *data)
设置雷达数据
bool Init()
初始化CarlaRadarPublisher对象。
CarlaRadarPublisher & operator=(const CarlaRadarPublisher &)
拷贝赋值运算符
const char * type() const override
~CarlaRadarPublisher()
CarlaRadarPublisher 类的析构函数
CARLA模拟器的主命名空间。
Definition Carla.cpp:139