CARLA
 
载入中...
搜索中...
未找到
TwistWithCovariance.cpp
浏览该文件的文档.
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 TwistWithCovariance.cpp
17 * 此源文件包含在 IDL 文件中描述的类型的定义。
18 *
19 * 此文件是由工具 gen 生成的。
20 */
21
22#ifdef _WIN32
23// 在 Visual Studio 中删除链接器警告 LNK4221
24namespace {
25char dummy;// 创建一个 dummy 变量以避免链接器警告
26} // namespace
27#endif // _WIN32
28
29#include "TwistWithCovariance.h"// 包含头文件,定义了 TwistWithCovariance 类
30#include <fastcdr/Cdr.h>// 包含 Fast CDR 序列化和反序列化功能
31
32#include <fastcdr/exceptions/BadParamException.h>// 包含异常处理
33using namespace eprosima::fastcdr::exception;// 使用 Fast CDR 的异常命名空间
34
35#include <utility>// 包含标准库的实用工具,比如 std::move
36// 定义最大 CDR 类型大小
37#define geometry_msgs_msg_TwistWithCovariance_max_cdr_typesize 336ULL;
38#define geometry_msgs_msg_Vector3_max_cdr_typesize 24ULL;
39#define geometry_msgs_msg_Twist_max_cdr_typesize 48ULL;
40#define geometry_msgs_msg_TwistWithCovariance_max_key_cdr_typesize 0ULL;
41#define geometry_msgs_msg_Vector3_max_key_cdr_typesize 0ULL;
42#define geometry_msgs_msg_Twist_max_key_cdr_typesize 0ULL;
43// 默认构造函数
45{
46 // geometry_msgs::msg::Twist m_twis
47
48 // geometry_msgs::msg::geometry_msgs__TwistWithCovariance__double_array_36 m_covariance
49 memset(&m_covariance, 0, (36) * 8);// 将协方差数组的每个元素初始化为 0
50}
51// 默认析构函数
55// 复制构造函数
57 const TwistWithCovariance& x)
58{
59 m_twist = x.m_twist;// 复制 m_twist
60 m_covariance = x.m_covariance;// 复制 m_covariance
61}
62// 移动构造函数
64 TwistWithCovariance&& x) noexcept
65{
66 m_twist = std::move(x.m_twist);// 移动 m_twist
67 m_covariance = std::move(x.m_covariance);// 移动 m_covariance
68}
69// 复制赋值运算符
71 const TwistWithCovariance& x)
72{
73 m_twist = x.m_twist;// 复制 m_twist
74 m_covariance = x.m_covariance;// 复制 m_covariance
75
76 return *this;// 返回自身的引用
77}
78// 移动赋值运算符
80 TwistWithCovariance&& x) noexcept
81{
82 m_twist = std::move(x.m_twist);// 移动 m_twist
83 m_covariance = std::move(x.m_covariance);// 移动 m_covariance
84
85 return *this;// 返回自身的引用
86}
87// 比较运算符
89 const TwistWithCovariance& x) const
90{
91 return (m_twist == x.m_twist && m_covariance == x.m_covariance);// 比较两个对象是否相等
92}
93// 不等于运算符
95 const TwistWithCovariance& x) const
96{
97 return !(*this == x);// 使用 == 运算符检查不等
98}
99// 获取最大序列化大小
101 size_t current_alignment)
102{
103 static_cast<void>(current_alignment);// 避免未使用参数的警告
104 return geometry_msgs_msg_TwistWithCovariance_max_cdr_typesize;// 返回最大 CDR 序列化大小
105}
106// 获取序列化大小
109 size_t current_alignment)
110{
111 size_t initial_alignment = current_alignment;// 保存初始对齐
113 current_alignment += ((36) * 8) + eprosima::fastcdr::Cdr::alignment(current_alignment, 8);// 添加协方差数组的序列化大小
114
115 return current_alignment - initial_alignment;// 返回当前对齐与初始对齐的差值
116}
117// 序列化函数
119 eprosima::fastcdr::Cdr& scdr) const
120{
121 scdr << m_twist;// 序列化 m_twist
122 scdr << m_covariance;// 序列化 m_covariance
123}
124// 反序列化函数
126 eprosima::fastcdr::Cdr& dcdr)
127{
128 dcdr >> m_twist;// 反序列化 m_twist
129 dcdr >> m_covariance;// 反序列化 m_covariance
130}
131
132/*!
133 * @brief 此函数复制成员 twist 的值
134 * @param _twist 要复制到成员 twist 的新值
135 */
136// 设置 twist 成员的值
138 const geometry_msgs::msg::Twist& _twist)
139{
140 m_twist = _twist;// 复制传入的 twist 值
141}
142
143/*!
144 * @brief 此函数移动成员 twist 的值
145 * @param _twist 要移动到成员 twist 的新值
146 */
147// 移动设置 twist 成员的值
150{
151 m_twist = std::move(_twist);// 移动传入的 twist 值
152}
153
154/*!
155 * @brief 此函数返回成员 twist 的常量引用
156 * @return 成员 twist 的常量引用
157 */
158// 获取 twist 成员的常量引用
160{
161 return m_twist;// 返回 m_twist 的常量引用
162}
163
164/*!
165 * @brief 此函数返回成员 twist 的引用
166 * @return 成员 twist 的引用
167 */
168// 获取 twist 成员的引用
170{
171 return m_twist;// 返回 m_twist 的引用
172}
173
174/*!
175 * @brief 此函数复制成员 covariance 的值
176 * @param _covariance 要复制到成员 covariance 的新值
177 */
178// 设置 covariance 成员的值
181{
182 m_covariance = _covariance;// 复制传入的 covariance 值
183}
184
185/*!
186 * @brief 此函数移动成员 covariance 的值
187 * @param _covariance 要移动到成员 covariance 的新值
188 */
189// 移动设置 covariance 成员的值
192{
193 m_covariance = std::move(_covariance);// 移动传入的 covariance 值
194}
195
196/*!
197 * @brief 此函数返回成员 covariance 的常量引用
198 * @return 成员 covariance 的常量引用
199 */
200// 获取 covariance 成员的常量引用
202{
203 return m_covariance;// 返回 m_covariance 的常量引用
204}
205
206/*!
207 * @brief 此函数返回成员 covariance 的引用
208 * @return 成员 covariance 的引用
209 */
210// 获取 covariance 成员的引用
215// 获取键的最大序列化大小
217 size_t current_alignment)
218{
219 static_cast<void>(current_alignment);// 避免未使用参数的警告
220 return geometry_msgs_msg_TwistWithCovariance_max_key_cdr_typesize;// 返回最大键的 CDR 序列化大小
221}
222// 检查键是否已定义
224{
225 return false;// 此类型没有定义键
226}
227// 序列化键
229 eprosima::fastcdr::Cdr& scdr) const
230{
231 (void) scdr;// 当前不需要序列化键
232}
#define geometry_msgs_msg_TwistWithCovariance_max_cdr_typesize
Definition Odometry.cpp:37
#define geometry_msgs_msg_TwistWithCovariance_max_key_cdr_typesize
Definition Odometry.cpp:47
return current_alignment initial_alignment
此类表示用户在 IDL 文件中定义的 TwistWithCovariance 结构。 <>
eProsima_user_DllExport void serializeKey(eprosima::fastcdr::Cdr &cdr) const
使用 CDR 序列化对象的键成员。
eProsima_user_DllExport const geometry_msgs::msg::geometry_msgs__TwistWithCovariance__double_array_36 & covariance() const
返回对成员变量 covariance 的常量引用。
static eProsima_user_DllExport size_t getKeyMaxCdrSerializedSize(size_t current_alignment=0)
返回对象键的最大序列化大小(取决于缓冲区对齐)。
static eProsima_user_DllExport bool isKeyDefined()
告诉您此类型的键是否已定义。
eProsima_user_DllExport const geometry_msgs::msg::Twist & twist() const
返回对成员变量 twist 的常量引用。
geometry_msgs::msg::geometry_msgs__TwistWithCovariance__double_array_36 m_covariance
eProsima_user_DllExport void deserialize(eprosima::fastcdr::Cdr &cdr)
使用 CDR 反序列化对象。
static eProsima_user_DllExport size_t getMaxCdrSerializedSize(size_t current_alignment=0)
返回对象的最大序列化大小(取决于缓冲区对齐)。
eProsima_user_DllExport bool operator==(const TwistWithCovariance &x) const
比较运算符。
eProsima_user_DllExport void serialize(eprosima::fastcdr::Cdr &cdr) const
使用 CDR 序列化序列化对象。
eProsima_user_DllExport TwistWithCovariance & operator=(const TwistWithCovariance &x)
复制赋值运算符。
eProsima_user_DllExport TwistWithCovariance()
默认构造函数。
eProsima_user_DllExport ~TwistWithCovariance()
默认析构函数。
eProsima_user_DllExport bool operator!=(const TwistWithCovariance &x) const
不等于运算符。
static eProsima_user_DllExport size_t getCdrSerializedSize(const geometry_msgs::msg::TwistWithCovariance &data, size_t current_alignment=0)
返回数据的序列化大小(取决于缓冲区对齐)。
eProsima_user_DllExport void twist(const geometry_msgs::msg::Twist &_twist)
复制成员变量 twist 的值。
static eProsima_user_DllExport size_t getCdrSerializedSize(const geometry_msgs::msg::Twist &data, size_t current_alignment=0)
Definition Twist.cpp:101
std::array< double, 36 > geometry_msgs__TwistWithCovariance__double_array_36