include
tuw_multi_robot_rviz
VoronoiGraphDisplay.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012, Willow Garage, Inc.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
8
* * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* * Neither the name of the Willow Garage, Inc. nor the names of its
14
* contributors may be used to endorse or promote products derived from
15
* this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
* POSSIBILITY OF SUCH DAMAGE.
28
*/
29
30
#ifndef VORONOIGRAPHDISPLAY_H
31
#define VORONOIGRAPHDISPLAY_H
32
33
#include <boost/circular_buffer.hpp>
34
35
#include <
rviz/message_filter_display.h
>
36
#include <tuw_multi_robot_msgs/Graph.h>
37
38
39
#ifndef Q_MOC_RUN
40
#include <boost/circular_buffer.hpp>
41
42
#include <
rviz/message_filter_display.h
>
43
#include <nav_msgs/Path.h>
44
#include <
rviz/ogre_helpers/arrow.h
>
45
#endif
46
47
48
#include <
rviz/properties/enum_property.h
>
49
50
namespace
Ogre
51
{
52
class
SceneNode;
53
}
54
55
namespace
rviz
56
{
57
class
ColorProperty;
58
class
EnumProperty;
59
class
FloatProperty;
60
class
IntProperty;
61
}
62
63
// All the source in this plugin is in its own namespace. This is not
64
// required but is good practice.
65
namespace
tuw_multi_robot_rviz
66
{
67
68
class
VoronoiGraphVisual;
69
70
// BEGIN_TUTORIAL
71
// Here we declare our new subclass of rviz::Display. Every display
72
// which can be listed in the "Displays" panel is a subclass of
73
// rviz::Display.
74
//
75
// ImuDisplay will show a 3D arrow showing the direction and magnitude
76
// of the IMU acceleration vector. The base of the arrow will be at
77
// the frame listed in the header of the Imu message, and the
78
// direction of the arrow will be relative to the orientation of that
79
// frame. It will also optionally show a history of recent
80
// acceleration vectors, which will be stored in a circular buffer.
81
//
82
// The ImuDisplay class itself just implements the circular buffer,
83
// editable parameters, and Display subclass machinery. The visuals
84
// themselves are represented by a separate class, ImuVisual. The
85
// idiom for the visuals is that when the objects exist, they appear
86
// in the scene, and when they are deleted, they disappear.
87
class
VoronoiGraphDisplay
:
public
rviz::MessageFilterDisplay
<tuw_multi_robot_msgs::Graph>
88
{
89
Q_OBJECT
90
public
:
91
// Constructor. pluginlib::ClassLoader creates instances by calling
92
// the default constructor, so make sure you have one.
93
VoronoiGraphDisplay
();
94
virtual
~VoronoiGraphDisplay
();
95
96
// Overrides of protected virtual functions from Display. As much
97
// as possible, when Displays are not enabled, they should not be
98
// subscribed to incoming data and should not show anything in the
99
// 3D view. These functions are where these connections are made
100
// and broken.
101
protected
:
102
virtual
void
onInitialize
();
103
104
// A helper to clear this display back to the initial state.
105
virtual
void
reset
();
106
107
// These Qt slots get connected to signals indicating changes in the user-editable properties.
108
private
Q_SLOTS:
109
void
updatePathColor
();
110
void
updatePointScale
();
111
void
updatePathScale
();
112
113
void
updateHistoryLength
();
114
115
// Function to handle an incoming ROS message.
116
private
:
117
void
processMessage
(
const
tuw_multi_robot_msgs::Graph::ConstPtr& msg );
118
119
// Storage for the list of visuals. It is a circular buffer where
120
// data gets popped from the front (oldest) and pushed to the back (newest)
121
boost::circular_buffer<boost::shared_ptr<VoronoiGraphVisual> >
visuals_
;
122
123
124
// User-editable property variables.
125
rviz::ColorProperty
*
color_path_property_
;
126
rviz::FloatProperty
*
scale_point_property_
;
127
rviz::FloatProperty
*
scale_path_property_
;
128
rviz::IntProperty
*
history_length_property_
;
129
130
enum
LineStyle
{
131
LINES
,
132
BILLBOARDS
133
};
134
};
135
136
}
// end namespace rviz_plugin_tutorials
137
138
#endif // IMU_DISPLAY_H
139
// %EndTag(FULL_SOURCE)%
rviz::MessageFilterDisplay
tuw_multi_robot_rviz::VoronoiGraphDisplay::visuals_
boost::circular_buffer< boost::shared_ptr< VoronoiGraphVisual > > visuals_
Definition:
VoronoiGraphDisplay.h:121
Ogre
tuw_multi_robot_rviz::VoronoiGraphDisplay::onInitialize
virtual void onInitialize()
Definition:
VoronoiGraphDisplay.cpp:80
tuw_multi_robot_rviz::VoronoiGraphDisplay::VoronoiGraphDisplay
VoronoiGraphDisplay()
Definition:
VoronoiGraphDisplay.cpp:51
tuw_multi_robot_rviz::VoronoiGraphDisplay::LINES
@ LINES
Definition:
VoronoiGraphDisplay.h:131
tuw_multi_robot_rviz
Definition:
MultiRobotGoalSelector.h:61
tuw_multi_robot_rviz::VoronoiGraphDisplay::updatePathScale
void updatePathScale()
Definition:
VoronoiGraphDisplay.cpp:111
enum_property.h
tuw_multi_robot_rviz::VoronoiGraphDisplay::reset
virtual void reset()
Definition:
VoronoiGraphDisplay.cpp:89
tuw_multi_robot_rviz::VoronoiGraphDisplay::scale_point_property_
rviz::FloatProperty * scale_point_property_
Definition:
VoronoiGraphDisplay.h:126
rviz::ColorProperty
tuw_multi_robot_rviz::VoronoiGraphDisplay::history_length_property_
rviz::IntProperty * history_length_property_
Definition:
VoronoiGraphDisplay.h:128
rviz::FloatProperty
tuw_multi_robot_rviz::VoronoiGraphDisplay::processMessage
void processMessage(const tuw_multi_robot_msgs::Graph::ConstPtr &msg)
Definition:
VoronoiGraphDisplay.cpp:118
tuw_multi_robot_rviz::VoronoiGraphDisplay
Definition:
VoronoiGraphDisplay.h:87
tuw_multi_robot_rviz::VoronoiGraphDisplay::updateHistoryLength
void updateHistoryLength()
Definition:
VoronoiGraphDisplay.cpp:101
rviz
message_filter_display.h
tuw_multi_robot_rviz::VoronoiGraphDisplay::updatePathColor
void updatePathColor()
Definition:
VoronoiGraphDisplay.cpp:95
tuw_multi_robot_rviz::VoronoiGraphDisplay::~VoronoiGraphDisplay
virtual ~VoronoiGraphDisplay()
Definition:
VoronoiGraphDisplay.cpp:85
arrow.h
tuw_multi_robot_rviz::VoronoiGraphDisplay::BILLBOARDS
@ BILLBOARDS
Definition:
VoronoiGraphDisplay.h:132
tuw_multi_robot_rviz::VoronoiGraphDisplay::updatePointScale
void updatePointScale()
Definition:
VoronoiGraphDisplay.cpp:105
tuw_multi_robot_rviz::VoronoiGraphDisplay::color_path_property_
rviz::ColorProperty * color_path_property_
Definition:
VoronoiGraphDisplay.h:125
tuw_multi_robot_rviz::VoronoiGraphDisplay::LineStyle
LineStyle
Definition:
VoronoiGraphDisplay.h:130
tuw_multi_robot_rviz::VoronoiGraphDisplay::scale_path_property_
rviz::FloatProperty * scale_path_property_
Definition:
VoronoiGraphDisplay.h:127
rviz::IntProperty
tuw_multi_robot_rviz
Author(s): Benjamin Binder
autogenerated on Wed Mar 2 2022 01:10:08