Displays "markers" sent in by other ROS nodes on the "visualization_marker" topic. More...
#include <marker_display.h>
Public Member Functions | |
void | deleteAllMarkers () |
Delete all known markers to this plugin, regardless of id or namespace. More... | |
void | deleteMarker (const MarkerID &id) |
void | deleteMarkerStatus (const MarkerID &id) |
void | fixedFrameChanged () override |
Called by setFixedFrame(). Override to respond to changes to fixed_frame_. More... | |
MarkerDisplay () | |
void | onInitialize () override |
Override this function to do subclass-specific initialization. More... | |
void | reset () override |
Called to tell the display to clear its state. More... | |
void | setMarkerStatus (const MarkerID &id, StatusLevel level, const std::string &text) |
void | setTopic (const QString &topic, const QString &datatype) override |
Set the ROS topic to listen to for this display. More... | |
void | update (float wall_dt, float ros_dt) override |
Called periodically by the visualization manager. More... | |
~MarkerDisplay () override | |
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... | |
PanelDockWidget * | getAssociatedWidgetPanel () |
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... | |
QVariant | getViewData (int column, int role) const override |
Return data appropriate for the given column (0 or 1) and role for this Display. More... | |
Qt::ItemFlags | getViewFlags (int column) const override |
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... | |
void | load (const Config &config) override |
Load the settings for this display from the given Config node, which must be a map. More... | |
void | save (Config config) const override |
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) override |
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) |
~Display () override | |
Public Member Functions inherited from rviz::BoolProperty | |
template<typename Func , typename P > | |
BoolProperty (const QString &name, bool default_value, const QString &description, P *parent, Func &&changed_slot) | |
template<typename Func , typename R > | |
BoolProperty (const QString &name, bool default_value, const QString &description, Property *parent, Func &&changed_slot, const R *receiver) | |
BoolProperty (const QString &name=QString(), bool default_value=false, const QString &description=QString(), Property *parent=nullptr) | |
virtual bool | getBool () const |
bool | getDisableChildren () override |
If true, the children of this property should set their ItemIsEnabled flag to false. More... | |
bool | getDisableChildrenIfFalse () |
void | setDisableChildrenIfFalse (bool disable) |
~BoolProperty () override | |
Public Member Functions inherited from rviz::Property | |
virtual void | addChild (Property *child, int index=-1) |
Add a child property. More... | |
Property * | childAt (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 Property * | childAtUnchecked (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... | |
template<typename Func > | |
std::enable_if<!QtPrivate::FunctionPointer< Func >::IsPointerToMemberFunction, QMetaObject::Connection >::type | connect (const QObject *context, Func &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
Connect changed() signal to given slot functor, considering context. More... | |
QMetaObject::Connection | connect (const QObject *receiver, const char *slot, Qt::ConnectionType type=Qt::AutoConnection) |
Connect changed() signal to given slot of receiver. More... | |
template<typename Func , typename R > | |
std::enable_if< QtPrivate::FunctionPointer< Func >::IsPointerToMemberFunction, QMetaObject::Connection >::type | connect (const R *receiver, Func &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
Connect changed() signal to given slot member function of receiver object. More... | |
template<typename Func > | |
std::enable_if<!QtPrivate::FunctionPointer< Func >::IsPointerToMemberFunction, QMetaObject::Connection >::type | connect (Func &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
Connect changed() signal to given slot functor, using this as context. 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 |
PropertyTreeModel * | getModel () 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... | |
Property * | getParent () const |
Return the parent Property. More... | |
virtual bool | getReadOnly () const |
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... | |
void | insertChildSorted (Property *child) |
Insert a child property, sorted by name. 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... | |
template<typename Func , typename P > | |
Property (const QString &name, const QVariant &default_value, const QString &description, P *parent, Func &&changed_slot) | |
template<typename Func , typename R > | |
Property (const QString &name, const QVariant &default_value, const QString &description, Property *parent, Func &&changed_slot, const R *receiver) | |
Property (const QString &name=QString(), const QVariant &default_value=QVariant(), const QString &description=QString(), Property *parent=nullptr) | |
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 false, neither the property nor its children will get saved. If true (the default), the property itself will only get saved if it is not read-only; children will get saved in any case (according to their save + read-only flags). 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 has data worth saving. More... | |
void | show () |
Show this Property in any PropertyTreeWidgets. More... | |
virtual Property * | subProp (const QString &sub_name) |
Return the first child Property with the given name, or the FailureProperty if no child has the name. More... | |
Property * | takeChild (Property *child) |
Remove a given child object and return a pointer to it. More... | |
virtual Property * | takeChildAt (int index) |
Take a child out of the child list, but don't destroy it. More... | |
~Property () override | |
Destructor. Removes this property from its parent's list of children. More... | |
Protected Member Functions | |
void | deleteMarkerInternal (const MarkerID &id) |
void | incomingMarkerArray (const visualization_msgs::MarkerArray::ConstPtr &array) |
Process a MarkerArray message. More... | |
void | load (const Config &config) override |
Load the value of this property and/or its children from the given Config reference. More... | |
void | onDisable () override |
Derived classes override this to do the actual work of disabling themselves. More... | |
void | onEnable () override |
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_ |
RosTopicProperty * | marker_topic_property_ |
IntProperty * | queue_size_property_ |
Protected Attributes inherited from rviz::Display | |
DisplayContext * | context_ |
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_ |
PropertyTreeModel * | model_ |
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, MarkerBasePtr > | M_IDToMarker |
typedef QHash< QString, MarkerNamespace * > | M_Namespace |
typedef std::set< MarkerBasePtr > | S_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, tf2_ros::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_ |
in our update() function More... | |
M_EnabledState | namespace_config_enabled_state_ |
M_Namespace | namespaces_ |
Property * | namespaces_category_ |
boost::mutex | queue_mutex_ |
message_filters::Subscriber< visualization_msgs::Marker > | sub_ |
tf2_ros::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... | |
void | setIcon (const QIcon &icon) override |
Set the Display's icon. More... | |
Public Slots inherited from rviz::BoolProperty | |
bool | setBool (bool value) |
Signals inherited from rviz::Display | |
void | timeSignal (ros::Time time, QPrivateSignal) |
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... | |
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.
|
private |
Definition at line 174 of file marker_display.h.
|
private |
Definition at line 155 of file marker_display.h.
|
private |
Definition at line 169 of file marker_display.h.
|
private |
Definition at line 156 of file marker_display.h.
|
private |
Definition at line 160 of file marker_display.h.
rviz::MarkerDisplay::MarkerDisplay | ( | ) |
Definition at line 52 of file marker_display.cpp.
|
override |
Definition at line 88 of file marker_display.cpp.
|
private |
Removes all the markers.
Definition at line 113 of file marker_display.cpp.
void rviz::MarkerDisplay::deleteAllMarkers | ( | ) |
Delete all known markers to this plugin, regardless of id or namespace.
Definition at line 222 of file marker_display.cpp.
|
inline |
Definition at line 180 of file marker_display.cpp.
|
protected |
Definition at line 186 of file marker_display.cpp.
|
private |
Delete all the markers within the given namespace.
Definition at line 197 of file marker_display.cpp.
void rviz::MarkerDisplay::deleteMarkerStatus | ( | const MarkerID & | id | ) |
Definition at line 245 of file marker_display.cpp.
|
private |
Definition at line 268 of file marker_display.cpp.
|
overridevirtual |
Called by setFixedFrame(). Override to respond to changes to fixed_frame_.
Reimplemented from rviz::Display.
Definition at line 434 of file marker_display.cpp.
|
private |
ROS callback notifying us of a new marker.
Definition at line 262 of file marker_display.cpp.
|
protected |
Process a MarkerArray message.
Definition at line 253 of file marker_display.cpp.
|
overrideprotectedvirtual |
Load the value of this property and/or its children from the given Config reference.
Reimplemented from rviz::Property.
Definition at line 100 of file marker_display.cpp.
|
overrideprotectedvirtual |
Derived classes override this to do the actual work of disabling themselves.
Reimplemented from rviz::Display.
Definition at line 129 of file marker_display.cpp.
|
overrideprotectedvirtual |
Derived classes override this to do the actual work of enabling themselves.
Reimplemented from rviz::Display.
Definition at line 124 of file marker_display.cpp.
|
overridevirtual |
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 72 of file marker_display.cpp.
|
private |
Processes an "Add" marker message.
message | The message to process |
Definition at line 309 of file marker_display.cpp.
|
private |
Processes a "Delete" marker message.
message | The message to process |
Definition at line 376 of file marker_display.cpp.
|
private |
Processes a marker message.
message | The message to process |
Definition at line 284 of file marker_display.cpp.
|
overridevirtual |
Called to tell the display to clear its state.
Reimplemented from rviz::Display.
Definition at line 441 of file marker_display.cpp.
void rviz::MarkerDisplay::setMarkerStatus | ( | const MarkerID & | id, |
StatusLevel | level, | ||
const std::string & | text | ||
) |
Definition at line 237 of file marker_display.cpp.
|
overridevirtual |
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.
topic | The published topic to be visualized. |
datatype | The datatype of the topic. |
Reimplemented from rviz::Display.
Definition at line 447 of file marker_display.cpp.
|
protectedvirtual |
Subscribes to the "visualization_marker" and "visualization_marker_array" topics.
Reimplemented in rviz::MarkerArrayDisplay.
Definition at line 147 of file marker_display.cpp.
|
protectedvirtual |
Unsubscribes from the "visualization_marker" "visualization_marker_array" topics.
Reimplemented in rviz::MarkerArrayDisplay.
Definition at line 174 of file marker_display.cpp.
|
overridevirtual |
Called periodically by the visualization manager.
wall_dt | Wall-clock time, in seconds, since the last time the update list was run through. |
ros_dt | ROS time, in seconds, since the last time the update list was run through. |
Reimplemented from rviz::Display.
Definition at line 383 of file marker_display.cpp.
|
privateslot |
Definition at line 135 of file marker_display.cpp.
|
privateslot |
Definition at line 141 of file marker_display.cpp.
|
friend |
Definition at line 177 of file marker_display.h.
|
protected |
Definition at line 113 of file marker_display.h.
|
private |
Definition at line 159 of file marker_display.h.
|
protected |
Definition at line 115 of file marker_display.h.
|
private |
Map of marker id to the marker info structure.
Definition at line 157 of file marker_display.h.
|
private |
Definition at line 158 of file marker_display.h.
|
private |
in our update() function
Marker message queue. Messages are added to this as they are received, and then processed
Definition at line 161 of file marker_display.h.
|
private |
Definition at line 175 of file marker_display.h.
|
private |
Definition at line 170 of file marker_display.h.
|
private |
Definition at line 172 of file marker_display.h.
|
private |
Definition at line 164 of file marker_display.h.
|
protected |
Definition at line 116 of file marker_display.h.
|
private |
Definition at line 166 of file marker_display.h.
|
private |
Definition at line 167 of file marker_display.h.