CARLA
 
载入中...
搜索中...
未找到
CarlaCollisionEvent.h
浏览该文件的文档.
1// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15/*!
16 * @file CarlaCollisionEvent.h
17 * This header file contains the declaration of the described types in the IDL file.
18 *
19 * This file was generated by the tool gen.
20 */
21
22#ifndef _FAST_DDS_GENERATED_CARLA_MSGS_MSG_CARLACOLLISIONEVENT_H_
23#define _FAST_DDS_GENERATED_CARLA_MSGS_MSG_CARLACOLLISIONEVENT_H_
24// 引入相关头文件,可能包含了一些自定义的结构体、类等定义,用于后续成员变量等的使用
25#include "Vector3.h"
26#include "Header.h"
27// 引入 fastrtps 库中用于处理固定大小字符串的工具头文件
28#include <fastrtps/utils/fixed_size_string.hpp>
29// 引入标准 C++ 库中的一些常用头文件,用于处理不同类型的数据
30#include <stdint.h>
31#include <array>
32#include <string>
33#include <vector>
34#include <map>
35#include <bitset>
36
37#if defined(_WIN32)
38#if defined(EPROSIMA_USER_DLL_EXPORT)// 在 Windows 平台下,如果定义了 EPROSIMA_USER_DLL_EXPORT,将函数或类声明为导出符号(用于动态链接库导出)
39#define eProsima_user_DllExport __declspec( dllexport )
40#else
41#define eProsima_user_DllExport
42#endif // EPROSIMA_USER_DLL_EXPORT
43#else
44#define eProsima_user_DllExport
45#endif // _WIN32
46// 引入 eprosima 命名空间下 fastcdr 相关的类声明(此处 Cdr 类完整定义应该在其他地方),可能用于后续的序列化、反序列化操作
47namespace eprosima {
48#if defined(_WIN32)
49#if defined(EPROSIMA_USER_DLL_EXPORT)
50#if defined(CarlaCollisionEvent_SOURCE)// 在 Windows 平台下,根据 CarlaCollisionEvent_SOURCE 是否定义,决定是导出还是导入符号(用于动态链接库相关操作)
51#define CarlaCollisionEvent_DllAPI __declspec( dllexport )
52#else
53#define CarlaCollisionEvent_DllAPI __declspec( dllimport )
54#endif // CarlaCollisionEvent_SOURCE
55#else
56#define CarlaCollisionEvent_DllAPI
57#endif // EPROSIMA_USER_DLL_EXPORT
58#else
59#define CarlaCollisionEvent_DllAPI
60#endif // _WIN32
61
62namespace eprosima {
63namespace fastcdr {
64class Cdr;
65} // namespace fastcdr
66} // namespace eprosima
67
68
69namespace carla_msgs {
70 namespace msg {
71 /*!
72 * @brief 此类代表了用户在 IDL 文件中定义的 CarlaCollisionEvent 结构。
73 * @ingroup CARLACOLLISIONEVENT
74 */
75 class CarlaCollisionEvent
76 {
77 public:
78
79 /*!
80 * @brief 默认构造函数,用于创建对象时进行默认的初始化操作。
81 */
82 eProsima_user_DllExport CarlaCollisionEvent();
83
84 /*!
85 * @brief 默认析构函数,用于在对象生命周期结束时释放相关资源。
86 */
87 eProsima_user_DllExport ~CarlaCollisionEvent();
88
89 /*!
90 * @brief 拷贝构造函数,根据传入的另一个 CarlaCollisionEvent 对象进行拷贝创建新对象,进行深拷贝或浅拷贝(取决于具体实现)。
91 * @param x 要被拷贝的 carla_msgs::msg::CarlaCollisionEvent 对象的引用。
92 */
93 eProsima_user_DllExport CarlaCollisionEvent(
94 const CarlaCollisionEvent& x);
95
96 /*!
97 * @brief 移动构造函数,通过移动语义,高效地将传入的 CarlaCollisionEvent 对象资源所有权转移到新创建的对象中,避免不必要的拷贝开销。
98 * @brief 移动构造函数,通过移动语义,高效地将传入的 CarlaCollisionEvent 对象资源所有权转移到新创建的对象中,避免不必要的拷贝开销。
99 */
100 eProsima_user_DllExport CarlaCollisionEvent(
101 CarlaCollisionEvent&& x) noexcept;
102
103 /*!
104 * @brief 移动构造函数,通过移动语义,高效地将传入的 CarlaCollisionEvent 对象资源所有权转移到新创建的对象中,避免不必要的拷贝开销。
105 * @param x 要被拷贝的 carla_msgs::msg::CarlaCollisionEvent 对象的引用。
106 */
107 eProsima_user_DllExport CarlaCollisionEvent& operator =(
108 const CarlaCollisionEvent& x);
109
110 /*!
111 * @brief 移动赋值运算符重载,通过移动语义将一个 CarlaCollisionEvent 对象的资源所有权转移给当前对象,实现高效赋值操作。
112 *@param x 要被移动的 carla_msgs::msg::CarlaCollisionEvent 对象的引用。
113 */
114 eProsima_user_DllExport CarlaCollisionEvent& operator =(
115 CarlaCollisionEvent&& x) noexcept;
116
117 /*!
118 * @brief 移动赋值运算符重载,通过移动语义将一个 CarlaCollisionEvent 对象的资源所有权转移给当前对象,实现高效赋值操作。
119 * @param x 要与之比较的 carla_msgs::msg::CarlaCollisionEvent 对象。
120 */
121 eProsima_user_DllExport bool operator ==(
122 const CarlaCollisionEvent& x) const;
123
124 /*!
125 * .@brief 比较运算符,用于比较当前对象与传入的 CarlaCollisionEvent 对象是否不相等。
126 * @param x 要与之比较的 carla_msgs::msg::CarlaCollisionEvent 对象。
127 */
128 eProsima_user_DllExport bool operator !=(
129 const CarlaCollisionEvent& x) const;
130
131 /*!
132 * @brief 此函数用于拷贝成员 header 的值,传入新的 std_msgs::msg::Header 对象进行赋值。
133 * @param _header 要拷贝到成员 header 的新值。
134 */
135 eProsima_user_DllExport void header(
136 const std_msgs::msg::Header& _header);
137
138 /*!
139 * @brief 此函数用于移动成员 header 的值,传入新的 std_msgs::msg::Header 对象进行资源所有权转移赋值。
140 * @return 成员 header 的常量引用。
141 */
142 eProsima_user_DllExport void header(
143 std_msgs::msg::Header&& _header);
144
145 /*!
146 *@brief 此函数返回成员 header 的常量引用,外部可通过该引用获取 header 的值,但不能修改它。
147 *@return 成员 header 的常量引用。
148 */
149 eProsima_user_DllExport const std_msgs::msg::Header& header() const;
150
151 /*!
152 * @brief 此函数返回成员 header 的引用,外部可通过该引用获取和修改 header 的值。
153 * @return 成员 header 的引用。
154 */
155 eProsima_user_DllExport std_msgs::msg::Header& header();
156 /*!
157 *@brief 此函数设置成员 other_actor_id 的值,传入新的整数值进行赋值。
158 *@param _other_actor_id 成员 other_actor_id 的新值。
159 */
160 eProsima_user_DllExport void other_actor_id(
161 uint32_t _other_actor_id);
162
163 /*!
164 * @brief 此函数返回成员 other_actor_id 的值。
165 * @return 成员 other_actor_id 的引用。
166 */
167 eProsima_user_DllExport uint32_t other_actor_id() const;
168
169 /*!
170 * @brief 此函数返回成员 other_actor_id 的引用,外部可通过该引用获取和修改其值。
171 * @return 成员 other_actor_id 的引用。
172 */
173 eProsima_user_DllExport uint32_t& other_actor_id();
174
175 /*!
176 *@brief 此函数用于拷贝成员 normal_impulse 的值,传入新的 geometry_msgs::msg::Vector3 对象进行赋值。
177 * @param _normal_impulse 要拷贝到成员 normal_impulse 的新值。
178 */
179 eProsima_user_DllExport void normal_impulse(
180 const geometry_msgs::msg::Vector3& _normal_impulse);
181
182 /*!
183 * @brief 此函数用于移动成员 normal_impulse 的值,传入新的 geometry_msgs::msg::Vector3 对象进行资源所有权转移赋值
184 * @return 成员 normal_impulse 的常量引用。
185 */
186 eProsima_user_DllExport void normal_impulse(
187 geometry_msgs::msg::Vector3&& _normal_impulse);
188
189 /*!
190 *@brief 此函数返回成员 normal_impulse 的常量引用,外部可通过该引用获取其值,但不能修改它。
191 *@return 成员 normal_impulse 的常量引用。
192 */
193 eProsima_user_DllExport const geometry_msgs::msg::Vector3& normal_impulse() const;
194
195 /*!
196 * @brief 此函数返回成员 normal_impulse 的引用,外部可通过该引用获取和修改其值。
197 * @return 成员 normal_impulse 的引用。
198 */
200
201 /*!
202 * @brief 此函数返回一个对象根据缓冲区对齐方式的最大序列化大小。
203 * depending on the buffer alignment.
204 * @param current_alignment 缓冲区对齐方式,默认为 0。
205 * @return 最大序列化大小。
206 */
207 eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
208 size_t current_alignment = 0);
209
210 /*!
211 * @brief 此函数返回根据缓冲区对齐方式给定数据的序列化大小。
212 * @param data 要计算序列化大小的数据对象。
213 * @param current_alignment 缓冲区对齐方式,默认为 0。
214 * @return 序列化大小。
215 */
216 eProsima_user_DllExport static size_t getCdrSerializedSize(
217 const carla_msgs::msg::CarlaCollisionEvent& data,
218 size_t current_alignment = 0);
219
220 /*!
221 * @brief 此函数使用 CDR 序列化方式对对象进行序列化操作,将对象转换为适合传输或存储的格式,传入 Cdr 序列化对象进行具体操作。
222 * @param cdr CDR 序列化对象。
223 */
224 eProsima_user_DllExport void serialize(
225 eprosima::fastcdr::Cdr& cdr) const;
226
227 /*!
228 * @brief 此函数使用 CDR 序列化方式对对象进行反序列化操作,将序列化的数据还原为对象,传入 Cdr 序列化对象进行具体操作。
229 * @param cdr CDR 序列化对象。
230 */
231 eProsima_user_DllExport void deserialize(
232 eprosima::fastcdr::Cdr& cdr);
233
234 /*!
235 * @brief 此函数返回一个对象的键(Key)根据缓冲区对齐方式的最大序列化大小。
236 * depending on the buffer alignment.
237 * @param current_alignment 缓冲区对齐方式,默认为 0。
238 * @return 最大序列化大小。
239 */
240 eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
241 size_t current_alignment = 0);
242
243 /*!
244 * @brief 此函数用于判断该类型是否已经定义了键(Key)。
245 */
246 eProsima_user_DllExport static bool isKeyDefined();
247
248 /*!
249 * @brief 此函数使用 CDR 序列化方式对对象的键(Key)成员进行序列化操作,传入 Cdr 序列化对象进行具体操作。
250 * @param cdr CDR 序列化对象。
251 * @param cdr CDR 序列化对象。
252 */
253 eProsima_user_DllExport void serializeKey(
254 eprosima::fastcdr::Cdr& cdr) const;
255
256 private:// 存储消息头相关信息的成员变量,类型为 std_msgs::msg::Header
257 std_msgs::msg::Header m_header;// 存储其他参与者 ID 的成员变量,类型为 uint32_t
258 uint32_t m_other_actor_id;// 存储碰撞法线冲量相关信息的成员变量,类型为 geometry_msgs::msg::Vector3
259 geometry_msgs::msg::Vector3 m_normal_impulse;
260 };
261 } // namespace msg
262} // namespace carla_msgs
263
264#endif // _FAST_DDS_GENERATED_CARLA_MSGS_MSG_CARLACOLLISIONEVENT_H_
#define eProsima_user_DllExport
Definition CameraInfo.h:44
ConcurrentQueue & operator=(ConcurrentQueue const &) MOODYCAMEL_DELETE_FUNCTION
此类表示用户在 IDL 文件中定义的 Vector3 结构。 <>
Definition Vector3.h:72