Skip to content

Commit 4f5f147

Browse files
committed
combine image_transport_display and image_display
1 parent 2dc6b05 commit 4f5f147

File tree

5 files changed

+139
-277
lines changed

5 files changed

+139
-277
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
@@ -52,7 +52,7 @@
5252
# include "sensor_msgs/msg/camera_info.hpp"
5353
# include "tf2_ros/message_filter.h"
5454

55-
# include "rviz_default_plugins/displays/image/image_transport_display.hpp"
55+
# include "rviz_default_plugins/displays/image/image_display.hpp"
5656
# include "rviz_default_plugins/displays/image/ros_image_texture_iface.hpp"
5757
# include "rviz_default_plugins/visibility_control.hpp"
5858
# include "rviz_rendering/render_window.hpp"
@@ -101,7 +101,7 @@ struct ImageDimensions
101101
*
102102
*/
103103
class RVIZ_DEFAULT_PLUGINS_PUBLIC CameraDisplay
104-
: public rviz_default_plugins::displays::ImageTransportDisplay<sensor_msgs::msg::Image>,
104+
: public ImageDisplay,
105105
public Ogre::RenderTargetListener
106106
{
107107
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 & 225 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
@@ -165,7 +165,7 @@ CameraDisplay::~CameraDisplay()
165165

166166
void CameraDisplay::onInitialize()
167167
{
168-
ITDClass::onInitialize();
168+
ImageDisplay::onInitialize();
169169

170170
setupSceneNodes();
171171
setupRenderPanel();
@@ -309,7 +309,7 @@ void CameraDisplay::fixedFrameChanged()
309309

310310
void CameraDisplay::subscribe()
311311
{
312-
ITDClass::subscribe();
312+
ImageDisplay::subscribe();
313313

314314
if (!subscription_) {
315315
return;
@@ -378,7 +378,7 @@ void CameraDisplay::createCameraInfoSubscription()
378378

379379
void CameraDisplay::unsubscribe()
380380
{
381-
ITDClass::unsubscribe();
381+
ImageDisplay::unsubscribe();
382382
caminfo_sub_.reset();
383383
tf_filter_.reset();
384384
}
@@ -669,7 +669,7 @@ void CameraDisplay::processMessage(sensor_msgs::msg::Image::ConstSharedPtr msg)
669669

670670
void CameraDisplay::reset()
671671
{
672-
ITDClass::reset();
672+
ImageDisplay::reset();
673673
clear();
674674
}
675675

0 commit comments

Comments
 (0)