30 #include <OGRE/OgreVector3.h>
31 #include <OGRE/OgreSceneNode.h>
32 #include <OGRE/OgreSceneManager.h>
35 #include <tuw_multi_robot_msgs/Vertex.h>
68 static double timeOld_;
69 if (timeOld_ == msg->header.stamp.toSec())
73 timeOld_ = msg->header.stamp.toSec();
75 pathLine.resize(msg->vertices.size());
77 for (
size_t i = 0; i <
pathLine.size(); ++i)
79 tuw_multi_robot_msgs::Vertex seg = msg->vertices[i];
80 geometry_msgs::Point p1 = seg.path.front();
81 geometry_msgs::Point p2 = seg.path.back();
85 Ogre::Quaternion rotation;
90 Ogre::Quaternion rotation2 = Ogre::Quaternion(Ogre::Radian(-Ogre::Math::PI / 2.), Ogre::Vector3::UNIT_Y);
94 pathLine[i]->setPoints(Ogre::Vector3((p1.x) + msg->origin.position.x, (p1.y) + msg->origin.position.y, p1.z + msg->origin.position.z), Ogre::Vector3((p2.x) + msg->origin.position.x, (p2.y) + msg->origin.position.y, p2.z + msg->origin.position.z));
99 crossingShape[2 * i]->setPosition(Ogre::Vector3((p1.x) + msg->origin.position.x, (p1.y) + msg->origin.position.y, p1.z + msg->origin.position.z));
105 crossingShape[2 * i + 1]->setPosition(Ogre::Vector3((p2.x) + msg->origin.position.x, (p2.y) + msg->origin.position.y, p2.z + msg->origin.position.z));
106 crossingShape[2 * i + 1]->setOrientation(rotation * rotation2);