ed_rviz_plugins
entity_visual.h
Go to the documentation of this file.
1 #ifndef ENTITY_VISUAL_H
2 #define ENTITY_VISUAL_H
3 
4 #include <boost/shared_ptr.hpp>
5 
6 #include <rviz/ogre_helpers/mesh_shape.h>
7 #include <rviz/ogre_helpers/billboard_line.h>
8 #include <rviz/ogre_helpers/movable_text.h>
9 
10 #include <ed_gui_server_msgs/EntityMeshAndVolumes.h>
11 #include <ed_gui_server_msgs/Polygon.h>
12 
13 namespace Ogre
14 {
15 class Vector3;
16 class Quaternion;
17 class ColorValue;
18 }
19 
20 namespace ed_rviz_plugins
21 {
22 
24 {
25 public:
26  // Constructor. Creates the visual stuff and puts it into the scene, but in an unconfigured state.
27  EntityVisual(Ogre::SceneManager* scene_manager, Ogre::SceneNode* parent_node);
28 
29  // Destructor. Removes the visual stuff from the scene.
30  virtual ~EntityVisual();
31 
32  // Configure the visual to show the data in the message.
33  void setEntityMeshAndVolumes(const ed_gui_server_msgs::EntityMeshAndVolumes& mesh_and_areas);
34  void setConvexHull (const ed_gui_server_msgs::Polygon& polygon);
35  void setLabel (const std::string& label);
36 
37  void setColor (Ogre::ColourValue c, double entity_label_opacity, double area_opacity, double area_label_opacity);
38 
39  // Set the pose of the coordinate frame the message refers to.
40  void setFramePosition(const Ogre::Vector3& position);
41  void setFrameOrientation(const Ogre::Quaternion& orientation);
42 
43  // Get revisions
44  unsigned long visualRevision() const { return visual_revision_; }
45  unsigned long volumesRevision() const { return volumes_revision_; }
46 
47 private:
48  // The actual scene objects
49  boost::shared_ptr<rviz::MeshShape> mesh_;
52  unsigned long visual_revision_;
53  unsigned long volumes_revision_;
54 
55  boost::shared_ptr<rviz::BillboardLine> convex_hull_;
56 
57  boost::shared_ptr<rviz::MovableText> label_;
58 
59  Ogre::ColourValue color_;
60 
61  Ogre::SceneNode* frame_node_;
62 
63  Ogre::SceneManager* scene_manager_;
64 };
65 
66 }
67 
68 #endif // ENTITY_VISUAL_H
ed_rviz_plugins::EntityVisual::setColor
void setColor(Ogre::ColourValue c, double entity_label_opacity, double area_opacity, double area_label_opacity)
Definition: entity_visual.cpp:149
Ogre
Definition: world_model_display.h:13
std::string
ed_rviz_plugins::EntityVisual
Definition: entity_visual.h:23
ed_rviz_plugins::EntityVisual::volume_meshes_
std::vector< boost::shared_ptr< rviz::MeshShape > > volume_meshes_
Definition: entity_visual.h:50
ed_rviz_plugins::EntityVisual::label_
boost::shared_ptr< rviz::MovableText > label_
Definition: entity_visual.h:57
ed_rviz_plugins::EntityVisual::scene_manager_
Ogre::SceneManager * scene_manager_
Definition: entity_visual.h:63
ed_rviz_plugins::EntityVisual::setFrameOrientation
void setFrameOrientation(const Ogre::Quaternion &orientation)
Definition: entity_visual.cpp:220
std::vector
ed_rviz_plugins::EntityVisual::volume_labels_
std::vector< boost::shared_ptr< rviz::MovableText > > volume_labels_
Definition: entity_visual.h:51
ed_rviz_plugins::EntityVisual::color_
Ogre::ColourValue color_
Definition: entity_visual.h:59
ed_rviz_plugins::EntityVisual::mesh_
boost::shared_ptr< rviz::MeshShape > mesh_
Definition: entity_visual.h:49
ed_rviz_plugins::EntityVisual::EntityVisual
EntityVisual(Ogre::SceneManager *scene_manager, Ogre::SceneNode *parent_node)
Definition: entity_visual.cpp:23
ed_rviz_plugins::EntityVisual::setLabel
void setLabel(const std::string &label)
Definition: entity_visual.cpp:200
ed_rviz_plugins::EntityVisual::setEntityMeshAndVolumes
void setEntityMeshAndVolumes(const ed_gui_server_msgs::EntityMeshAndVolumes &mesh_and_areas)
Definition: entity_visual.cpp:42
ed_rviz_plugins::EntityVisual::setConvexHull
void setConvexHull(const ed_gui_server_msgs::Polygon &polygon)
Definition: entity_visual.cpp:165
ed_rviz_plugins::EntityVisual::frame_node_
Ogre::SceneNode * frame_node_
Definition: entity_visual.h:61
ed_rviz_plugins::EntityVisual::~EntityVisual
virtual ~EntityVisual()
Definition: entity_visual.cpp:36
ed_rviz_plugins::EntityVisual::volumesRevision
unsigned long volumesRevision() const
Definition: entity_visual.h:45
ed_rviz_plugins::EntityVisual::setFramePosition
void setFramePosition(const Ogre::Vector3 &position)
Definition: entity_visual.cpp:215
ed_rviz_plugins::EntityVisual::volumes_revision_
unsigned long volumes_revision_
Definition: entity_visual.h:53
ed_rviz_plugins
Definition: world_model_display.cpp:96
ed_rviz_plugins::EntityVisual::visual_revision_
unsigned long visual_revision_
Definition: entity_visual.h:52
ed_rviz_plugins::EntityVisual::visualRevision
unsigned long visualRevision() const
Definition: entity_visual.h:44
ed_rviz_plugins::EntityVisual::convex_hull_
boost::shared_ptr< rviz::BillboardLine > convex_hull_
Definition: entity_visual.h:55