37 #include <OgreSceneNode.h> 38 #include <OgreSceneManager.h> 39 #include <OgreEntity.h> 40 #include <OgreSubEntity.h> 41 #include <OgreSharedPtr.h> 46 : owner_(owner), context_(context), scene_node_(parent_node->createChildSceneNode())
85 Ogre::Quaternion& orient,
89 if (message->frame_locked)
107 scale = Ogre::Vector3(message->scale.x, message->scale.y, message->scale.z);
116 handler_->setInteractiveObject(control);
142 uint32_t num_sub_entities = entity->getNumSubEntities();
143 for (uint32_t i = 0; i < num_sub_entities; ++i)
145 Ogre::SubEntity* sub = entity->getSubEntity(i);
146 Ogre::MaterialPtr material = sub->getMaterial();
147 materials.insert(material);
void setMessage(const Marker &message)
Ogre::SceneNode * scene_node_
bool transform(const MarkerConstPtr &message, Ogre::Vector3 &pos, Ogre::Quaternion &orient, Ogre::Vector3 &scale)
const Ogre::Quaternion & getOrientation()
bool transformHasProblems(const std::string &frame, ros::Time time, std::string &error)
Check to see if a transform is known between a given frame and the fixed frame.
void setMarkerStatus(MarkerID id, StatusLevel level, const std::string &text)
const Ogre::Vector3 & getPosition()
virtual void setPosition(const Ogre::Vector3 &position)
void extractMaterials(Ogre::Entity *entity, S_MaterialPtr &materials)
Pure-virtual base class for objects which give Display subclasses context in which to work...
boost::shared_ptr< MarkerSelectionHandler > handler_
bool transform(const Header &header, const geometry_msgs::Pose &pose, Ogre::Vector3 &position, Ogre::Quaternion &orientation)
Transform a pose from a frame into the fixed frame.
virtual FrameManager * getFrameManager() const =0
Return the FrameManager instance.
DisplayContext * context_
visualization_msgs::Marker::ConstPtr MarkerConstPtr
boost::weak_ptr< InteractiveObject > InteractiveObjectWPtr
virtual Ogre::SceneManager * getSceneManager() const =0
Returns the Ogre::SceneManager used for the main RenderPanel.
void setInteractiveObject(InteractiveObjectWPtr object)
Associate an InteractiveObject with this MarkerBase.
std::set< Ogre::MaterialPtr > S_MaterialPtr
virtual void setOrientation(const Ogre::Quaternion &orientation)
MarkerBase(MarkerDisplay *owner, DisplayContext *context, Ogre::SceneNode *parent_node)
Displays "markers" sent in by other ROS nodes on the "visualization_marker" topic.
virtual void onNewMessage(const MarkerConstPtr &old_message, const MarkerConstPtr &new_message)=0
visualization_msgs::Marker Marker