CARLA
 
载入中...
搜索中...
未找到
Vector3.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 Vector3.cpp
17 * This source file contains the definition of the described types in the IDL file.
18 *
19 * This file was generated by the tool gen.
20 */
21
22#ifdef _WIN32
23// Remove linker warning LNK4221 on Visual Studio
24namespace {
25char dummy;
26} // namespace
27#endif // _WIN32
28
29#include "Vector3.h"
30#include <fastcdr/Cdr.h>
31
32#include <fastcdr/exceptions/BadParamException.h>
33using namespace eprosima::fastcdr::exception;
34
35#include <utility>
36
37#define geometry_msgs_msg_Vector3_max_cdr_typesize 24ULL;
38#define geometry_msgs_msg_Vector3_max_key_cdr_typesize 0ULL;
39// Vector3类的默认构造函数,用于创建Vector3类型对象时进行初始化
41{
42 // 初始化成员变量m_x为0.0,m_x用于表示三维向量在x轴方向上的分量
43 m_x = 0.0;
44 // 初始化成员变量m_y为0.0,m_y用于表示三维向量在y轴方向上的分量
45 m_y = 0.0;
46 // 初始化成员变量m_z为0.0,m_z用于表示三维向量在z轴方向上的分量
47 m_z = 0.0;
48}
49// Vector3类的析构函数
53// Vector3类的拷贝构造函数
55 const Vector3& x)
56{
57 m_x = x.m_x;// 将传入对象x的成员变量m_x的值赋给当前正在创建对象的m_x成员变量
58 m_y = x.m_y;// 将传入对象x的成员变量m_y的值赋给当前正在创建对象的m_y成员变量
59 m_z = x.m_z;// 将传入对象x的成员变量m_z的值赋给当前正在创建对象的m_z成员变量
60}
61// Vector3类的移动拷贝构造函数
63 Vector3&& x) noexcept
64{
65 m_x = x.m_x;// 将传入右值对象x的成员变量m_x的值赋给当前对象的m_x成员变量
66 m_y = x.m_y;// 将传入右值对象x的成员变量m_y的值赋给当前对象的m_y成员变量
67 m_z = x.m_z;// 将传入右值对象x的成员变量m_z的值赋给当前对象的m_z成员变量
68}
69// Vector3类的普通赋值运算符重载函数
71 const Vector3& x)
72{
73
74 m_x = x.m_x;// 将当前对象的成员变量m_x赋值为传入对象x的m_x成员变量的值
75 m_y = x.m_y;// 将当前对象的成员变量m_y赋值为传入对象x的m_y成员变量的值
76 m_z = x.m_z;// 将当前对象的成员变量m_z赋值为传入对象x的m_z成员变量的值
77 // 返回当前对象的引用,以便支持连续赋值
78 return *this;
79}
80// Vector3类的移动赋值运算符重载函数
82 Vector3&& x) noexcept
83{
84 m_x = x.m_x;// 将当前对象的成员变量m_x赋值为传入右值对象x的m_x成员变量的值
85 m_y = x.m_y;// 将当前对象的成员变量m_y赋值为传入右值对象x的m_y成员变量的值
86 m_z = x.m_z;// 将当前对象的成员变量m_z赋值为传入右值对象x的m_z成员变量的值
87
88 return *this;// 返回当前对象的引用,用于连续赋值操作
89}
90// Vector3类的相等运算符重载函数
92 const Vector3& x) const
93{// 通过比较三个成员变量m_x、m_y、m_z分别是否相等,来确定两个Vector3对象是否相等
94 return (m_x == x.m_x && m_y == x.m_y && m_z == x.m_z);
95}
96// Vector3类的不等运算符重载函数
98 const Vector3& x) const
99{
100 return !(*this == x);
101}
102// 获取Vector3类型对象在Cdr序列化时的最大尺寸的函数
104 size_t current_alignment)
105{// 将current_alignment参数转换为空操作,可能函数接口设计需要接收但实际未用于计算
106 static_cast<void>(current_alignment);
107 // 直接返回之前定义的表示最大Cdr序列化类型尺寸的宏的值
109}
110// 获取Vector3类型对象实际Cdr序列化尺寸的函数
112 const geometry_msgs::msg::Vector3& data,
113 size_t current_alignment)
114{// 将传入的data参数转换为空操作,表明未利用对象内容进行尺寸计算相关逻辑
115 (void)data;
116 // 记录初始的对齐方式
118 // 根据fastcdr库中Cdr类的alignment函数对当前对齐方式进行处理,每次加上8字节
119 current_alignment += 8 + eprosima::fastcdr::Cdr::alignment(current_alignment, 8);
120 current_alignment += 8 + eprosima::fastcdr::Cdr::alignment(current_alignment, 8);
121 current_alignment += 8 + eprosima::fastcdr::Cdr::alignment(current_alignment, 8);
122 // 返回调整后的对齐值与初始对齐值的差值,即计算出的序列化尺寸大小
124}
125// Vector3类的序列化函数,将对象的内容按照Cdr序列化格式进行存储或传输等操作
127 eprosima::fastcdr::Cdr& scdr) const
128{
129 // 使用fastcdr库中重载的<<运算符,将成员变量m_x序列化到scdr对象中
130 scdr << m_x;
131 // 使用fastcdr库中重载的<<运算符,将成员变量m_y序列化到scdr对象中
132 scdr << m_y;
133 // 使用fastcdr库中重载的<<运算符,将成员变量m_z序列化到scdr对象中
134 scdr << m_z;
135}
136// Vector3类的反序列化函数,用于将序列化的数据恢复为Vector3类型的对象状态
138 eprosima::fastcdr::Cdr& dcdr)
139{
140 // 使用fastcdr库中重载的>>运算符,从dcdr对象中读取数据并赋值给成员变量m_x
141 dcdr >> m_x;
142 // 使用fastcdr库中重载的>>运算符,从dcdr对象中读取数据并赋值给成员变量m_y
143 dcdr >> m_y;
144 // 使用fastcdr库中重载的>>运算符,从dcdr对象中读取数据并赋值给成员变量m_z
145 dcdr >> m_z;
146}
147
148
149 // 用于设置Vector3类成员变量m_x值的函数
151 double _x)
152{
153 // 将传入的新值_x赋给成员变量m_x
154 m_x = _x;
155}
156
157 // 用于获取Vector3类成员变量m_x值的函数
159{
160 return m_x;
161}
162
163// 用于获取Vector3类成员变量m_x的引用的函数
165{
166 return m_x;
167}
168
169// 用于设置Vector3类成员变量m_y值的函数
171 double _y)
172{
173 m_y = _y;
174}
175
176// 用于获取Vector3类成员变量m_y值的函数
178{
179 return m_y;
180}
181
182// 用于获取Vector3类成员变量m_y的引用的函数
184{
185 return m_y;
186}
187
188// 用于设置Vector3类成员变量m_z值的函数
190 double _z)
191{
192 m_z = _z;// 将传入的新值_z赋给成员变量m_z
193}
194
195// 用于获取Vector3类成员变量m_z值的函数
197{
198 return m_z;
199}
200
201// 用于获取Vector3类成员变量m_z的引用的函数
203{
204 return m_z;
205}
206// 获取Vector3类型对象键Cdr序列化时的最大尺寸的函数
208 size_t current_alignment)
209{ // 将current_alignment参数转换为空操作,可能函数接口设计需要接收但实际未用于计算
210 static_cast<void>(current_alignment);
211 // 直接返回之前定义的表示最大键Cdr序列化尺寸的宏的值
213}
214// 判断Vector3类型对象是否定义了键的函数
216{
217 return false;
218}
219// 用于对Vector3类型对象的键进行序列化的函数
221 eprosima::fastcdr::Cdr& scdr) const
222{// 将传入的scdr参数转换为空操作,表明未进行实际的键序列化操作
223 (void) scdr;
224}
#define geometry_msgs_msg_Vector3_max_key_cdr_typesize
Definition Imu.cpp:33
#define geometry_msgs_msg_Vector3_max_cdr_typesize
Definition Imu.cpp:27
return current_alignment initial_alignment
此类表示用户在 IDL 文件中定义的 Vector3 结构。 <>
Definition Vector3.h:72
eProsima_user_DllExport ~Vector3()
默认构造函数。
Definition Vector3.cpp:50
eProsima_user_DllExport void serializeKey(eprosima::fastcdr::Cdr &cdr) const
此函数使用 CDR 序列化序列化对象的键成员。
Definition Vector3.cpp:220
eProsima_user_DllExport bool operator==(const Vector3 &x) const
比较运算符。
Definition Vector3.cpp:91
eProsima_user_DllExport Vector3(const Vector3 &x)
复制构造函数。
Definition Vector3.cpp:54
static eProsima_user_DllExport size_t getCdrSerializedSize(const geometry_msgs::msg::Vector3 &data, size_t current_alignment=0)
此函数返回数据的序列化大小 取决于缓冲区对齐。
Definition Vector3.cpp:111
static eProsima_user_DllExport bool isKeyDefined()
此函数告诉您此类型是否定义了键
Definition Vector3.cpp:215
static eProsima_user_DllExport size_t getMaxCdrSerializedSize(size_t current_alignment=0)
此函数返回对象的最大序列化大小 取决于缓冲区对齐。
Definition Vector3.cpp:103
eProsima_user_DllExport double z() const
返回成员 z 的值
Definition Vector3.cpp:196
eProsima_user_DllExport double x() const
返回成员 x 的值
Definition Vector3.cpp:158
eProsima_user_DllExport void serialize(eprosima::fastcdr::Cdr &cdr) const
此函数使用 CDR 序列化序列化对象。
Definition Vector3.cpp:126
static eProsima_user_DllExport size_t getKeyMaxCdrSerializedSize(size_t current_alignment=0)
此函数返回对象键的最大序列化大小 取决于缓冲区对齐。
Definition Vector3.cpp:207
eProsima_user_DllExport void deserialize(eprosima::fastcdr::Cdr &cdr)
此函数使用 CDR 序列化反序列化对象。
Definition Vector3.cpp:137
eProsima_user_DllExport Vector3 & operator=(const Vector3 &x)
复制赋值运算符。
Definition Vector3.cpp:70
eProsima_user_DllExport double y() const
返回成员 y 的值
Definition Vector3.cpp:177
eProsima_user_DllExport bool operator!=(const Vector3 &x) const
比较运算符。
Definition Vector3.cpp:97