30#include <fastcdr/Cdr.h>
32#include <fastcdr/exceptions/BadParamException.h>
33using namespace eprosima::fastcdr::exception;
38#define builtin_interfaces_msg_Time_max_cdr_typesize 8ULL;
39#define sensor_msgs_msg_CameraInfo_max_cdr_typesize 3793ULL;
40#define sensor_msgs_msg_RegionOfInterest_max_cdr_typesize 17ULL;
41#define std_msgs_msg_Header_max_cdr_typesize 268ULL;
42#define builtin_interfaces_msg_Time_max_key_cdr_typesize 0ULL;
43#define sensor_msgs_msg_CameraInfo_max_key_cdr_typesize 0ULL;
44#define sensor_msgs_msg_RegionOfInterest_max_key_cdr_typesize 0ULL;
45#define std_msgs_msg_Header_max_key_cdr_typesize 0ULL;
54 const double cx =
static_cast<double>(
m_width) / 2.0;
55 const double cy =
static_cast<double>(
m_height) / 2.0;
56 const double fx =
static_cast<double>(
m_width) / (2.0 * std::tan(fov) * M_PI / 360.0);
59 m_d = { 0.0, 0.0, 0.0, 0.0, 0.0 };
60 m_k = {fx, 0.0, cx, 0.0, fy, cy, 0.0, 0.0, 1.0};
61 m_r = { 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 };
62 m_p = {fx, 0.0, cx, 0.0, 0.0, fy, cy, 0.0, 0.0, 0.0, 1.0, 0.0};
91 m_header = std::move(x.m_header);
92 m_height = x.m_height;
94 m_distortion_model = std::move(x.m_distortion_model);
95 m_d = std::move(x.m_d);
96 m_k = std::move(x.m_k);
97 m_r = std::move(x.m_r);
98 m_p = std::move(x.m_p);
99 m_binning_x = x.m_binning_x;
100 m_binning_y = x.m_binning_y;
101 m_roi = std::move(x.m_roi);
125 m_header = std::move(x.m_header);
126 m_height = x.m_height;
128 m_distortion_model = std::move(x.m_distortion_model);
129 m_d = std::move(x.m_d);
130 m_k = std::move(x.m_k);
131 m_r = std::move(x.m_r);
132 m_p = std::move(x.m_p);
133 m_binning_x = x.m_binning_x;
134 m_binning_y = x.m_binning_y;
135 m_roi = std::move(x.m_roi);
149 return !(*
this == x);
171 if (data.
D().size() > 0)
178 if (data.
k().size() > 0)
185 if (data.
r().size() > 0)
192 if (data.
p().size() > 0)
205 eprosima::fastcdr::Cdr& scdr)
const
210 scdr << m_distortion_model.c_str();
221 eprosima::fastcdr::Cdr& dcdr)
226 dcdr >> m_distortion_model;
241 const std_msgs::msg::Header& _header)
251 std_msgs::msg::Header&& _header)
253 m_header = std::move(_header);
334 const std::string& _distortion_model)
336 m_distortion_model = _distortion_model;
344 std::string&& _distortion_model)
346 m_distortion_model = std::move(_distortion_model);
355 return m_distortion_model;
364 return m_distortion_model;
372 const std::vector<double>& _D)
382 std::vector<double>&& _D)
410 const std::array<double, 9>& _k)
420 std::array<double, 9>&& _k)
447 const std::array<double, 9>& _r)
457 std::array<double, 9>&& _r)
485 const std::array<double, 12>& _p)
495 std::array<double, 12>&& _p)
525 m_binning_x = _binning_x;
553 m_binning_y = _binning_y;
591 m_roi = std::move(_roi);
625 eprosima::fastcdr::Cdr& scdr)
const
#define sensor_msgs_msg_CameraInfo_max_cdr_typesize
#define sensor_msgs_msg_CameraInfo_max_key_cdr_typesize
return current_alignment initial_alignment
This class represents the structure CameraInfo defined by the user in the IDL file....
std::array< double, 12 > m_p
std_msgs::msg::Header m_header
eProsima_user_DllExport void p(const std::array< double, 12 > &_p)
This function copies the value in member p
static eProsima_user_DllExport bool isKeyDefined()
判断是否为此类型定义了 Key。
std::array< double, 9 > m_r
eProsima_user_DllExport void k(const std::array< double, 9 > &_k)
This function copies the value in member K(将新值拷贝到成员变量 K 中)
eProsima_user_DllExport const std::array< double, 9 > & r() const
This function returns a constant reference to member r(获取成员变量 R 的常量引用)
std::string m_distortion_model
eProsima_user_DllExport void D(const std::vector< double > &_D)
This function copies the value in member D(设置畸变参数 D(Distortion Coefficients)
eProsima_user_DllExport const sensor_msgs::msg::RegionOfInterest & roi() const
This function returns a constant reference to member roi(获取成员变量 roi 的常量引用)
eProsima_user_DllExport void deserialize(eprosima::fastcdr::Cdr &cdr)
This function deserializes an object using CDR serialization.(反序列化一个对象)
eProsima_user_DllExport bool operator==(const CameraInfo &x) const
Comparison operator.()(比较运算符重载:判断两个 CameraInfo 对象是否相等)
eProsima_user_DllExport CameraInfo(uint32_t height=0, uint32_t width=0, double fov=0.0)
默认构造函数,初始化相机的基本参数。
eProsima_user_DllExport bool operator!=(const CameraInfo &x) const
Comparison operator.(比较运算符重载:判断两个 CameraInfo 对象是否不相等)
eProsima_user_DllExport void roi(const sensor_msgs::msg::RegionOfInterest &_roi)
This function copies the value in member roi(将新值拷贝到成员变量 roi 中)
std::vector< double > m_d
eProsima_user_DllExport uint32_t binning_y() const
This function returns the value of member binning_y(获取成员变量 binning_y 的值)
eProsima_user_DllExport const std::array< double, 12 > & p() const
This function returns a constant reference to member p(将新值移动到成员变量 P 中)
eProsima_user_DllExport uint32_t width() const
This function returns the value of member width(获取图像宽度的值)
eProsima_user_DllExport void serialize(eprosima::fastcdr::Cdr &cdr) const
This function serializes an object using CDR serialization.(使用 CDR 序列化一个对象)
eProsima_user_DllExport CameraInfo & operator=(const CameraInfo &x)
Copy assignment.(赋值运算符重载)
eProsima_user_DllExport const std_msgs::msg::Header & header() const
This function returns a constant reference to member header(获取 header 的常量引用)
eProsima_user_DllExport void serializeKey(eprosima::fastcdr::Cdr &cdr) const
This function serializes the key members of an object using CDR serialization.(使用 CDR 序列化对象的 Key 成员)
eProsima_user_DllExport void header(const std_msgs::msg::Header &_header)
This function copies the value in member header()(设置 header 成员变量的值)
eProsima_user_DllExport void distortion_model(const std::string &_distortion_model)
This function copies the value in member distortion_model(设置畸变模型(distortion_model))
eProsima_user_DllExport void r(const std::array< double, 9 > &_r)
This function copies the value in member r(将新值拷贝到成员变量 R 中)
eProsima_user_DllExport const std::vector< double > & D() const
This function returns a constant reference to member D(获取成员变量 D 的常量引用)
eProsima_user_DllExport uint32_t binning_x() const
This function returns the value of member binning_x(设置成员变量 binning_x 的值)
eProsima_user_DllExport uint32_t height() const
This function returns the value of member height(获取图像高度的值)
static eProsima_user_DllExport size_t getKeyMaxCdrSerializedSize(size_t current_alignment=0)
This function returns the maximum serialized size of the Key of an object(在特定对齐下的最大序列化大小) depending o...
sensor_msgs::msg::RegionOfInterest m_roi
static eProsima_user_DllExport size_t getMaxCdrSerializedSize(size_t current_alignment=0)
This function returns the maximum serialized size of an object(获取对象在特定对齐下的最大序列化大小) depending on the b...
std::array< double, 9 > m_k
eProsima_user_DllExport const std::string & distortion_model() const
This function returns a constant reference to member distortion_model(获取畸变模型的常量引用)
eProsima_user_DllExport ~CameraInfo()
Default destructor.(默认析构函数)
eProsima_user_DllExport const std::array< double, 9 > & k() const
This function returns a constant reference to member k(获取成员变量 K 的常量引用)
static eProsima_user_DllExport size_t getCdrSerializedSize(const sensor_msgs::msg::CameraInfo &data, size_t current_alignment=0)
This function returns the serialized size of a data depending on the buffer alignment....
This class represents the structure RegionOfInterest defined by the user in the IDL file.
static eProsima_user_DllExport size_t getCdrSerializedSize(const sensor_msgs::msg::RegionOfInterest &data, size_t current_alignment=0)
This function returns the serialized size of a data depending on the buffer alignment.