38 #include <OgreQuaternion.h>
39 #include <OgreSceneNode.h>
45 Ogre::SceneNode* parent_node)
46 :
MarkerBase(owner, context, parent_node), lines_(nullptr)
58 ROS_ASSERT(new_message->type == visualization_msgs::Marker::LINE_LIST);
65 Ogre::Vector3 pos, scale;
66 Ogre::Quaternion orient;
67 if (!
transform(new_message, pos, orient, scale))
77 lines_->
setColor(new_message->color.r, new_message->color.g, new_message->color.b,
78 new_message->color.a);
82 if (new_message->points.empty())
87 bool has_per_point_color = new_message->colors.size() == new_message->points.size();
89 if (new_message->points.size() % 2 == 0)
96 std::vector<geometry_msgs::Point>::const_iterator it = new_message->points.begin();
97 std::vector<geometry_msgs::Point>::const_iterator end = new_message->points.end();
100 if (it != new_message->points.begin())
105 for (uint32_t j = 0; j < 2; ++j, ++it, ++i)
107 const geometry_msgs::Point& p = *it;
110 if (has_per_point_color)
112 const std_msgs::ColorRGBA& color = new_message->colors[i];
120 c.r = new_message->color.r;
121 c.g = new_message->color.g;
122 c.b = new_message->color.b;
123 c.a = new_message->color.a;
126 Ogre::Vector3 v(p.x, p.y, p.z);