Skip to content

Commit 0bc298d

Browse files
committed
combine image_transport_display and image_display
1 parent 60a69d2 commit 0bc298d

File tree

5 files changed

+139
-279
lines changed

5 files changed

+139
-279
lines changed

rviz_default_plugins/include/rviz_default_plugins/displays/camera/camera_display.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
# include "sensor_msgs/msg/camera_info.hpp"
5454
# include "tf2_ros/message_filter.h"
5555

56-
# include "rviz_default_plugins/displays/image/image_transport_display.hpp"
56+
# include "rviz_default_plugins/displays/image/image_display.hpp"
5757
# include "rviz_default_plugins/displays/image/ros_image_texture_iface.hpp"
5858
# include "rviz_default_plugins/visibility_control.hpp"
5959
# include "rviz_rendering/render_window.hpp"
@@ -102,7 +102,7 @@ struct ImageDimensions
102102
*
103103
*/
104104
class RVIZ_DEFAULT_PLUGINS_PUBLIC CameraDisplay
105-
: public rviz_default_plugins::displays::ImageTransportDisplay<sensor_msgs::msg::Image>,
105+
: public ImageDisplay,
106106
public Ogre::RenderTargetListener
107107
{
108108
Q_OBJECT

rviz_default_plugins/include/rviz_default_plugins/displays/image/image_display.hpp

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@
3838
#include <OgreSharedPtr.h>
3939

4040
#include <QObject> // NOLINT cpplint cannot handle include order here
41+
#include <QString> // NOLINT cpplint cannot handle include order here
4142

4243
#include <memory>
4344
#include <string>
45+
#include <unordered_map>
4446

4547
#include <sensor_msgs/msg/image.hpp>
4648

@@ -50,9 +52,12 @@
5052
#include "rviz_common/properties/float_property.hpp"
5153
#include "rviz_common/properties/int_property.hpp"
5254
#include "rviz_common/render_panel.hpp"
53-
#include "rviz_default_plugins/displays/image/image_transport_display.hpp"
5455
#include "rviz_default_plugins/displays/image/ros_image_texture_iface.hpp"
5556
#include "rviz_default_plugins/visibility_control.hpp"
57+
#include "get_transport_from_topic.hpp"
58+
#include "image_transport/image_transport.hpp"
59+
#include "image_transport/subscriber_filter.hpp"
60+
#include "rviz_common/ros_topic_display.hpp"
5661
#endif
5762

5863
namespace Ogre
@@ -70,8 +75,7 @@ namespace displays
7075
* \class ImageDisplay
7176
*
7277
*/
73-
class RVIZ_DEFAULT_PLUGINS_PUBLIC ImageDisplay
74-
: public rviz_default_plugins::displays::ImageTransportDisplay<sensor_msgs::msg::Image>
78+
class RVIZ_DEFAULT_PLUGINS_PUBLIC ImageDisplay : public rviz_common::_RosTopicDisplay
7579
{
7680
Q_OBJECT
7781

@@ -81,26 +85,41 @@ class RVIZ_DEFAULT_PLUGINS_PUBLIC ImageDisplay
8185
~ImageDisplay() override;
8286

8387
void onInitialize() override;
84-
void update(float wall_dt, float ros_dt) override;
88+
void update(float wall_dt, float ros_dt);
8589
void reset() override;
8690

8791
public Q_SLOTS:
8892
virtual void updateNormalizeOptions();
8993

9094
protected Q_SLOTS:
91-
void subscribe() override;
95+
virtual void subscribe();
9296

9397
protected:
9498
void onEnable() override;
9599
void onDisable() override;
96-
void unsubscribe() override;
97-
100+
virtual void unsubscribe();
101+
void updateTopic() override;
102+
void transformerChangedCallback() override;
103+
void resetSubscription();
98104
void incomingMessage(const sensor_msgs::msg::Image::ConstSharedPtr & img_msg);
105+
void setTopic(const QString & topic, const QString & datatype) override;
99106

100107
/* This is called by incomingMessage(). */
101-
void processMessage(sensor_msgs::msg::Image::ConstSharedPtr msg) override;
102-
103-
image_transport::Subscriber subscription_;
108+
virtual void processMessage(sensor_msgs::msg::Image::ConstSharedPtr msg);
109+
110+
std::shared_ptr<image_transport::SubscriberFilter> subscription_;
111+
uint32_t messages_received_;
112+
rclcpp::Time subscription_start_time_;
113+
message_filters::Connection subscription_callback_;
114+
const std::unordered_map<std::string, std::string> transport_message_types_ = {
115+
/* *INDENT-OFF* */
116+
{"raw", "sensor_msgs/msg/Image"},
117+
{"compressed", "sensor_msgs/msg/CompressedImage"},
118+
{"compressedDepth", "sensor_msgs/msg/CompressedImage"},
119+
{"theora", "theora_image_transport/msg/Packet"},
120+
{"zstd", "sensor_msgs/msg/CompressedImage"},
121+
/* *INDENT-ON* */
122+
};
104123

105124
private:
106125
void setupScreenRectangle();

rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp

Lines changed: 0 additions & 227 deletions
This file was deleted.

rviz_default_plugins/src/rviz_default_plugins/displays/camera/camera_display.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ CameraDisplay::~CameraDisplay()
167167

168168
void CameraDisplay::onInitialize()
169169
{
170-
ITDClass::onInitialize();
170+
ImageDisplay::onInitialize();
171171

172172
setupSceneNodes();
173173
setupRenderPanel();
@@ -311,7 +311,7 @@ void CameraDisplay::fixedFrameChanged()
311311

312312
void CameraDisplay::subscribe()
313313
{
314-
ITDClass::subscribe();
314+
ImageDisplay::subscribe();
315315

316316
if (!subscription_) {
317317
return;
@@ -380,7 +380,7 @@ void CameraDisplay::createCameraInfoSubscription()
380380

381381
void CameraDisplay::unsubscribe()
382382
{
383-
ITDClass::unsubscribe();
383+
ImageDisplay::unsubscribe();
384384
caminfo_sub_.reset();
385385
tf_filter_.reset();
386386
}
@@ -671,7 +671,7 @@ void CameraDisplay::processMessage(sensor_msgs::msg::Image::ConstSharedPtr msg)
671671

672672
void CameraDisplay::reset()
673673
{
674-
ITDClass::reset();
674+
ImageDisplay::reset();
675675
clear();
676676
}
677677

0 commit comments

Comments
 (0)