C++笔记之表驱动法

编程入门 行业动态 更新时间:2024-10-18 10:18:11

C++<a href=https://www.elefans.com/category/jswz/34/1770047.html style=笔记之表驱动法"/>

C++笔记之表驱动法

C++笔记之表驱动法-全局静态结构体变量的应用实例ColorMAP

code review!

代码

#include <ros/ros.h>
#include <visualization_msgs/Marker.h>struct RGBA{RGBA(){red.r = 1; green.r = 0; blue.r = 0;red.g = 0; green.g = 1; blue.g = 0;red.b = 0; green.b = 0; blue.b = 1;red.a = 1; green.a = 1; blue.a = 1;ColorMAP={{"red",   red  },{"green", green},{"blue",  blue }};};std_msgs::ColorRGBA red;std_msgs::ColorRGBA green;std_msgs::ColorRGBA blue;std::map<std::string,std_msgs::ColorRGBA> ColorMAP;
};static RGBA rgba;int main(int argc, char** argv)
{ros::init(argc, argv, "marker_publisher");ros::NodeHandle nh;ros::Publisher marker_pub = nh.advertise<visualization_msgs::Marker>("marker", 10);// 创建第一个Markervisualization_msgs::Marker marker1;marker1.header.frame_id = "map";marker1.header.stamp = ros::Time::now();marker1.lifetime = ros::Duration();  // 设置持久化属性为falsemarker1.ns = "marker1";marker1.id = 1;marker1.type = visualization_msgs::Marker::SPHERE;marker1.pose.position.x = 1.0;marker1.pose.position.y = 2.0;marker1.pose.position.z = 0.0;marker1.pose.orientation.w = 1.0;marker1.scale.x = 0.5;marker1.scale.y = 0.5;marker1.scale.z = 0.5;marker1.color = rgba.ColorMAP["red"];// 创建第二个Markervisualization_msgs::Marker marker2;marker2.header.frame_id = "map";marker2.header.stamp = ros::Time::now();marker2.lifetime = ros::Duration();  // 设置持久化属性为falsemarker2.ns = "marker2";marker2.id = 2;marker2.type = visualization_msgs::Marker::CUBE;marker2.pose.position.x = -1.0;marker2.pose.position.y = 2.0;marker2.pose.position.z = 0.0;marker2.pose.orientation.w = 1.0;marker2.scale.x = 0.5;marker2.scale.y = 0.5;marker2.scale.z = 0.5;marker2.color = rgba.ColorMAP["blue"];ros::Rate rate(1);  // 发布频率为1Hzwhile (ros::ok()) {// 发布单个Marker消息marker_pub.publish(marker1);marker_pub.publish(marker2);ros::spinOnce();rate.sleep();}return 0;
}

主要目的是创建一个包含RGB颜色信息的结构体,并在程序初始化时设置颜色的默认值,同时提供一个全局的rgba对象,以便在后续的代码中可以方便地访问和使用这些颜色信息。这有助于使代码更加模块化和易于维护,因为颜色信息被封装在一个结构体中,并且可以在整个程序中共享。

更多推荐

C++笔记之表驱动法

本文发布于:2023-11-16 02:05:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1611664.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!