Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Slots | Private Member Functions | Private Attributes | Friends | List of all members
rviz::MarkerDisplay Class Reference

Displays "markers" sent in by other ROS nodes on the "visualization_marker" topic. More...

#include <marker_display.h>

Inheritance diagram for rviz::MarkerDisplay:
Inheritance graph
[legend]

Public Member Functions

void deleteAllMarkers ()
 Delete all known markers to this plugin, regardless of id or namespace. More...
 
void deleteMarker (MarkerID id)
 
void deleteMarkerStatus (MarkerID id)
 
virtual void fixedFrameChanged ()
 Called by setFixedFrame(). Override to respond to changes to fixed_frame_. More...
 
 MarkerDisplay ()
 
virtual void onInitialize ()
 Override this function to do subclass-specific initialization. More...
 
virtual void reset ()
 Called to tell the display to clear its state. More...
 
void setMarkerStatus (MarkerID id, StatusLevel level, const std::string &text)
 
virtual void setTopic (const QString &topic, const QString &datatype)
 Set the ROS topic to listen to for this display. More...
 
virtual void update (float wall_dt, float ros_dt)
 Called periodically by the visualization manager. More...
 
virtual ~MarkerDisplay ()
 
- Public Member Functions inherited from rviz::Display
virtual void deleteStatus (const QString &name)
 Delete the status entry with the given name. This is thread-safe. More...
 
void deleteStatusStd (const std::string &name)
 Delete the status entry with the given std::string name. This is thread-safe. More...
 
 Display ()
 
void emitTimeSignal (ros::Time time)
 Emit a time signal that other Displays can synchronize to. More...
 
QWidget * getAssociatedWidget () const
 Return the current associated widget, or NULL if there is none. More...
 
PanelDockWidgetgetAssociatedWidgetPanel ()
 Return the panel containing the associated widget, or NULL if there is none. More...
 
virtual QString getClassId () const
 Return the class identifier which was used to create this instance. This version just returns whatever was set with setClassId(). More...
 
Ogre::SceneNode * getSceneNode () const
 Return the Ogre::SceneNode holding all 3D scene elements shown by this Display. More...
 
virtual QVariant getViewData (int column, int role) const
 Return data appropriate for the given column (0 or 1) and role for this Display. More...
 
virtual Qt::ItemFlags getViewFlags (int column) const
 Return item flags appropriate for the given column (0 or 1) for this Display. More...
 
uint32_t getVisibilityBits ()
 
void initialize (DisplayContext *context)
 Main initialization, called after constructor, before load() or setEnabled(). More...
 
bool isEnabled () const
 Return true if this Display is enabled, false if not. More...
 
virtual void save (Config config) const
 Write this display to the given Config node. More...
 
void setAssociatedWidget (QWidget *widget)
 Associate the given widget with this Display. More...
 
virtual void setClassId (const QString &class_id)
 Set the class identifier used to create this instance. Typically this will be set by the factory object which created it. More...
 
void setFixedFrame (const QString &fixed_frame)
 Set the fixed frame in this display. More...
 
void setName (const QString &name)
 Overridden from Property to set associated widget title to the new name. More...
 
virtual void setStatus (StatusProperty::Level level, const QString &name, const QString &text)
 Show status level and text. This is thread-safe. More...
 
void setStatusStd (StatusProperty::Level level, const std::string &name, const std::string &text)
 Show status level and text, using a std::string. Convenience function which converts std::string to QString and calls setStatus(). This is thread-safe. More...
 
void setVisibilityBits (uint32_t bits)
 
void unsetVisibilityBits (uint32_t bits)
 
virtual ~Display ()
 
- Public Member Functions inherited from rviz::BoolProperty
 BoolProperty (const QString &name=QString(), bool default_value=false, const QString &description=QString(), Property *parent=0, const char *changed_slot=0, QObject *receiver=0)
 
virtual bool getBool () const
 
virtual bool getDisableChildren ()
 If true, the children of this property should set their ItemIsEnabled flag to false. More...
 
bool getDisableChildrenIfFalse ()
 
void setDisableChildrenIfFalse (bool disable)
 
virtual ~BoolProperty ()
 
- Public Member Functions inherited from rviz::Property
virtual void addChild (Property *child, int index=-1)
 Add a child property. More...
 
PropertychildAt (int index) const
 Return the child Property with the given index, or NULL if the index is out of bounds or if the child at that index is not a Property. More...
 
virtual PropertychildAtUnchecked (int index) const
 Return the child Property with the given index, without checking whether the index is within bounds. More...
 
virtual void collapse ()
 Collapse (hide the children of) this Property. More...
 
bool contains (Property *possible_child) const
 Return true if the list of children includes possible_child, false if not. More...
 
virtual QWidget * createEditor (QWidget *parent, const QStyleOptionViewItem &option)
 Create an editor widget to edit the value of this property. More...
 
virtual void expand ()
 Expand (show the children of) this Property. More...
 
virtual QString getDescription () const
 Return the description. More...
 
virtual bool getHidden () const
 Return the hidden/shown state. True means hidden, false means visible. More...
 
virtual QIcon getIcon () const
 
PropertyTreeModelgetModel () const
 Return the model managing this Property and its childrent. More...
 
virtual QString getName () const
 Return the name of this Property as a QString. More...
 
std::string getNameStd () const
 Return the name of this Property as a std::string. More...
 
PropertygetParent () const
 Return the parent Property. More...
 
virtual bool getReadOnly ()
 Return the read-only-ness of this property. More...
 
virtual QVariant getValue () const
 Return the value of this Property as a QVariant. If the value has never been set, an invalid QVariant is returned. More...
 
void hide ()
 Hide this Property in any PropertyTreeWidgets. More...
 
bool isAncestorOf (Property *possible_child) const
 Returns true if this is an ancestor of possible_child, meaning is the parent or parent of parent etc. More...
 
virtual void moveChild (int from_index, int to_index)
 Move the child at from_index to to_index. More...
 
virtual int numChildren () const
 Return the number of child objects (Property or otherwise). More...
 
virtual bool paint (QPainter *painter, const QStyleOptionViewItem &option) const
 Hook to provide custom painting of the value data (right-hand column) in a subclass. More...
 
 Property (const QString &name=QString(), const QVariant default_value=QVariant(), const QString &description=QString(), Property *parent=0, const char *changed_slot=0, QObject *receiver=0)
 Constructor. More...
 
virtual void removeChildren (int start_index=0, int count=-1)
 Remove and delete some or all child Properties. Does not change the value of this Property. More...
 
int rowNumberInParent () const
 Return the row number of this property within its parent, or -1 if it has no parent. More...
 
virtual void setDescription (const QString &description)
 Set the description. More...
 
virtual void setHidden (bool hidden)
 Hide or show this property in any PropertyTreeWidget viewing its parent. More...
 
virtual void setIcon (const QIcon &icon)
 Set the icon to be displayed next to the property. More...
 
void setModel (PropertyTreeModel *model)
 Set the model managing this Property and all its child properties, recursively. More...
 
void setParent (Property *new_parent)
 Set parent property, without telling the parent. More...
 
virtual void setReadOnly (bool read_only)
 Prevent or allow users to edit this property from a PropertyTreeWidget. More...
 
void setShouldBeSaved (bool save)
 If save is true and getReadOnly() is false, shouldBeSaved will return true; otherwise false. Default is true. More...
 
virtual bool setValue (const QVariant &new_value)
 Set the new value for this property. Returns true if the new value is different from the old value, false if same. More...
 
bool shouldBeSaved () const
 Returns true if the property is not read-only AND has data worth saving. More...
 
void show ()
 Show this Property in any PropertyTreeWidgets. More...
 
virtual PropertysubProp (const QString &sub_name)
 Return the first child Property with the given name, or the FailureProperty if no child has the name. More...
 
PropertytakeChild (Property *child)
 Remove a given child object and return a pointer to it. More...
 
virtual PropertytakeChildAt (int index)
 Take a child out of the child list, but don't destroy it. More...
 
virtual ~Property ()
 Destructor. Removes this property from its parent's list of children. More...
 

Protected Member Functions

void incomingMarkerArray (const visualization_msgs::MarkerArray::ConstPtr &array)
 Process a MarkerArray message. More...
 
virtual void load (const Config &config)
 Load the settings for this display from the given Config node, which must be a map. More...
 
virtual void onDisable ()
 Derived classes override this to do the actual work of disabling themselves. More...
 
virtual void onEnable ()
 Derived classes override this to do the actual work of enabling themselves. More...
 
virtual void subscribe ()
 Subscribes to the "visualization_marker" and "visualization_marker_array" topics. More...
 
virtual void unsubscribe ()
 Unsubscribes from the "visualization_marker" "visualization_marker_array" topics. More...
 
- Protected Member Functions inherited from rviz::Display
virtual void clearStatuses ()
 Delete all status children. This is thread-safe. More...
 
bool initialized () const
 Returns true if the display has been initialized. More...
 
- Protected Member Functions inherited from rviz::Property
void loadValue (const Config &config)
 Load the value of this property specifically, not including children. More...
 

Protected Attributes

ros::Subscriber array_sub_
 
RosTopicPropertymarker_topic_property_
 
IntPropertyqueue_size_property_
 
- Protected Attributes inherited from rviz::Display
DisplayContextcontext_
 This DisplayContext pointer is the main connection a Display has into the rest of rviz. This is how the FrameManager is accessed, the SelectionManager, etc. When a Display subclass wants to signal that a new render should be done right away, call context_->queueRender(). More...
 
QString fixed_frame_
 A convenience variable equal to context_->getFixedFrame(). More...
 
Ogre::SceneManager * scene_manager_
 A convenience variable equal to context_->getSceneManager(). More...
 
Ogre::SceneNode * scene_node_
 The Ogre::SceneNode to hold all 3D scene elements shown by this Display. More...
 
ros::NodeHandle threaded_nh_
 A NodeHandle whose CallbackQueue is run from a different thread than the GUI. More...
 
ros::NodeHandle update_nh_
 A NodeHandle whose CallbackQueue is run from the main GUI thread (the "update" thread). More...
 
- Protected Attributes inherited from rviz::Property
bool child_indexes_valid_
 True if row_number_within_parent_ of all children is valid, false if not. More...
 
QIcon icon_
 
PropertyTreeModelmodel_
 Pointer to the PropertyTreeModel managing this property tree. More...
 
QVariant value_
 This is the central property value. If you set it directly in a subclass, do so with care because many things depend on the aboutToChange() and changed() events emitted by setValue(). More...
 

Private Types

typedef std::map< QString, bool > M_EnabledState
 
typedef std::map< MarkerID, MarkerBasePtrM_IDToMarker
 
typedef QHash< QString, MarkerNamespace * > M_Namespace
 
typedef std::set< MarkerBasePtrS_MarkerBase
 
typedef std::vector< visualization_msgs::Marker::ConstPtr > V_MarkerMessage
 

Private Slots

void updateQueueSize ()
 
void updateTopic ()
 

Private Member Functions

void clearMarkers ()
 Removes all the markers. More...
 
void deleteMarkersInNamespace (const std::string &ns)
 Delete all the markers within the given namespace. More...
 
void failedMarker (const ros::MessageEvent< visualization_msgs::Marker > &marker_evt, tf::FilterFailureReason reason)
 
void incomingMarker (const visualization_msgs::Marker::ConstPtr &marker)
 ROS callback notifying us of a new marker. More...
 
void processAdd (const visualization_msgs::Marker::ConstPtr &message)
 Processes an "Add" marker message. More...
 
void processDelete (const visualization_msgs::Marker::ConstPtr &message)
 Processes a "Delete" marker message. More...
 
void processMessage (const visualization_msgs::Marker::ConstPtr &message)
 Processes a marker message. More...
 

Private Attributes

S_MarkerBase frame_locked_markers_
 
M_IDToMarker markers_
 Map of marker id to the marker info structure. More...
 
S_MarkerBase markers_with_expiration_
 
V_MarkerMessage message_queue_
 
M_EnabledState namespace_config_enabled_state_
 
M_Namespace namespaces_
 
Propertynamespaces_category_
 
boost::mutex queue_mutex_
 
message_filters::Subscriber< visualization_msgs::Marker > sub_
 
tf::MessageFilter< visualization_msgs::Marker > * tf_filter_
 

Friends

class MarkerNamespace
 

Additional Inherited Members

- Public Slots inherited from rviz::Display
virtual void onEnableChanged ()
 
void queueRender ()
 Convenience function which calls context_->queueRender(). More...
 
void setEnabled (bool enabled)
 Enable or disable this Display. More...
 
virtual void setIcon (const QIcon &icon)
 Set the Display's icon. More...
 
- Public Slots inherited from rviz::BoolProperty
bool setBool (bool value)
 
- Signals inherited from rviz::Display
void timeSignal (rviz::Display *display, ros::Time time)
 
- Signals inherited from rviz::Property
void aboutToChange ()
 Emitted by setValue() just before the value has changed. More...
 
void changed ()
 Emitted by setValue() just after the value has changed. More...
 
void childListChanged (Property *this_property)
 Emitted after insertions and deletions of child Properties. More...
 

Detailed Description

Displays "markers" sent in by other ROS nodes on the "visualization_marker" topic.

Markers come in as visualization_msgs::Marker messages. See the Marker message for more information.

Definition at line 70 of file marker_display.h.

Member Typedef Documentation

typedef std::map<QString, bool> rviz::MarkerDisplay::M_EnabledState
private

Definition at line 170 of file marker_display.h.

Definition at line 152 of file marker_display.h.

typedef QHash<QString, MarkerNamespace*> rviz::MarkerDisplay::M_Namespace
private

Definition at line 165 of file marker_display.h.

Definition at line 153 of file marker_display.h.

typedef std::vector<visualization_msgs::Marker::ConstPtr> rviz::MarkerDisplay::V_MarkerMessage
private

Definition at line 157 of file marker_display.h.

Constructor & Destructor Documentation

rviz::MarkerDisplay::MarkerDisplay ( )

Definition at line 54 of file marker_display.cpp.

rviz::MarkerDisplay::~MarkerDisplay ( )
virtual

Definition at line 87 of file marker_display.cpp.

Member Function Documentation

void rviz::MarkerDisplay::clearMarkers ( )
private

Removes all the markers.

Definition at line 112 of file marker_display.cpp.

void rviz::MarkerDisplay::deleteAllMarkers ( )

Delete all known markers to this plugin, regardless of id or namespace.

Definition at line 216 of file marker_display.cpp.

void rviz::MarkerDisplay::deleteMarker ( MarkerID  id)

Definition at line 178 of file marker_display.cpp.

void rviz::MarkerDisplay::deleteMarkersInNamespace ( const std::string &  ns)
private

Delete all the markers within the given namespace.

Definition at line 191 of file marker_display.cpp.

void rviz::MarkerDisplay::deleteMarkerStatus ( MarkerID  id)

Definition at line 239 of file marker_display.cpp.

void rviz::MarkerDisplay::failedMarker ( const ros::MessageEvent< visualization_msgs::Marker > &  marker_evt,
tf::FilterFailureReason  reason 
)
private

Definition at line 264 of file marker_display.cpp.

void rviz::MarkerDisplay::fixedFrameChanged ( )
virtual

Called by setFixedFrame(). Override to respond to changes to fixed_frame_.

Reimplemented from rviz::Display.

Definition at line 439 of file marker_display.cpp.

void rviz::MarkerDisplay::incomingMarker ( const visualization_msgs::Marker::ConstPtr &  marker)
private

ROS callback notifying us of a new marker.

Definition at line 256 of file marker_display.cpp.

void rviz::MarkerDisplay::incomingMarkerArray ( const visualization_msgs::MarkerArray::ConstPtr &  array)
protected

Process a MarkerArray message.

Definition at line 247 of file marker_display.cpp.

void rviz::MarkerDisplay::load ( const Config config)
protectedvirtual

Load the settings for this display from the given Config node, which must be a map.

Overridden from Property::load() to load the Display's name and enabled state, then call Property::load().

load() is called after initialize().

Reimplemented from rviz::Display.

Definition at line 99 of file marker_display.cpp.

void rviz::MarkerDisplay::onDisable ( )
protectedvirtual

Derived classes override this to do the actual work of disabling themselves.

Reimplemented from rviz::Display.

Definition at line 127 of file marker_display.cpp.

void rviz::MarkerDisplay::onEnable ( )
protectedvirtual

Derived classes override this to do the actual work of enabling themselves.

Reimplemented from rviz::Display.

Definition at line 122 of file marker_display.cpp.

void rviz::MarkerDisplay::onInitialize ( )
virtual

Override this function to do subclass-specific initialization.

This is called after vis_manager_ and scene_manager_ are set, and before load() or setEnabled().

setName() may or may not have been called before this.

Reimplemented from rviz::Display.

Definition at line 73 of file marker_display.cpp.

void rviz::MarkerDisplay::processAdd ( const visualization_msgs::Marker::ConstPtr &  message)
private

Processes an "Add" marker message.

Parameters
messageThe message to process

Definition at line 315 of file marker_display.cpp.

void rviz::MarkerDisplay::processDelete ( const visualization_msgs::Marker::ConstPtr &  message)
private

Processes a "Delete" marker message.

Parameters
messageThe message to process

Definition at line 381 of file marker_display.cpp.

void rviz::MarkerDisplay::processMessage ( const visualization_msgs::Marker::ConstPtr &  message)
private

Processes a marker message.

Parameters
messageThe message to process

Definition at line 287 of file marker_display.cpp.

void rviz::MarkerDisplay::reset ( )
virtual

Called to tell the display to clear its state.

Reimplemented from rviz::Display.

Definition at line 446 of file marker_display.cpp.

void rviz::MarkerDisplay::setMarkerStatus ( MarkerID  id,
StatusLevel  level,
const std::string &  text 
)

Definition at line 231 of file marker_display.cpp.

void rviz::MarkerDisplay::setTopic ( const QString &  topic,
const QString &  datatype 
)
virtual

Set the ROS topic to listen to for this display.

By default, do nothing. Subclasses should override this method if they subscribe to a single ROS topic.

setTopic() is used by the "New display by topic" window; it is called with a user selected topic and its type.

Parameters
topicThe published topic to be visualized.
datatypeThe datatype of the topic.

Reimplemented from rviz::Display.

Definition at line 452 of file marker_display.cpp.

void rviz::MarkerDisplay::subscribe ( )
protectedvirtual

Subscribes to the "visualization_marker" and "visualization_marker_array" topics.

Reimplemented in rviz::MarkerArrayDisplay.

Definition at line 146 of file marker_display.cpp.

void rviz::MarkerDisplay::unsubscribe ( )
protectedvirtual

Unsubscribes from the "visualization_marker" "visualization_marker_array" topics.

Reimplemented in rviz::MarkerArrayDisplay.

Definition at line 172 of file marker_display.cpp.

void rviz::MarkerDisplay::update ( float  wall_dt,
float  ros_dt 
)
virtual

Called periodically by the visualization manager.

Parameters
wall_dtWall-clock time, in seconds, since the last time the update list was run through.
ros_dtROS time, in seconds, since the last time the update list was run through.

Reimplemented from rviz::Display.

Definition at line 388 of file marker_display.cpp.

void rviz::MarkerDisplay::updateQueueSize ( )
privateslot

Definition at line 135 of file marker_display.cpp.

void rviz::MarkerDisplay::updateTopic ( )
privateslot

Definition at line 140 of file marker_display.cpp.

Friends And Related Function Documentation

friend class MarkerNamespace
friend

Definition at line 173 of file marker_display.h.

Member Data Documentation

ros::Subscriber rviz::MarkerDisplay::array_sub_
protected

Definition at line 111 of file marker_display.h.

S_MarkerBase rviz::MarkerDisplay::frame_locked_markers_
private

Definition at line 156 of file marker_display.h.

RosTopicProperty* rviz::MarkerDisplay::marker_topic_property_
protected

Definition at line 113 of file marker_display.h.

M_IDToMarker rviz::MarkerDisplay::markers_
private

Map of marker id to the marker info structure.

Definition at line 154 of file marker_display.h.

S_MarkerBase rviz::MarkerDisplay::markers_with_expiration_
private

Definition at line 155 of file marker_display.h.

V_MarkerMessage rviz::MarkerDisplay::message_queue_
private

Marker message queue. Messages are added to this as they are received, and then processed in our update() function

Definition at line 158 of file marker_display.h.

M_EnabledState rviz::MarkerDisplay::namespace_config_enabled_state_
private

Definition at line 171 of file marker_display.h.

M_Namespace rviz::MarkerDisplay::namespaces_
private

Definition at line 166 of file marker_display.h.

Property* rviz::MarkerDisplay::namespaces_category_
private

Definition at line 168 of file marker_display.h.

boost::mutex rviz::MarkerDisplay::queue_mutex_
private

Definition at line 160 of file marker_display.h.

IntProperty* rviz::MarkerDisplay::queue_size_property_
protected

Definition at line 114 of file marker_display.h.

message_filters::Subscriber<visualization_msgs::Marker> rviz::MarkerDisplay::sub_
private

Definition at line 162 of file marker_display.h.

tf::MessageFilter<visualization_msgs::Marker>* rviz::MarkerDisplay::tf_filter_
private

Definition at line 163 of file marker_display.h.


The documentation for this class was generated from the following files:


rviz
Author(s): Dave Hershberger, David Gossow, Josh Faust
autogenerated on Wed Aug 28 2019 04:01:53