roviz  0.7
Code Documentation of roviz
sparse_widget.h
1 #ifndef SPARSE_WIDGET_H
2 #define SPARSE_WIDGET_H
3 
4 #include <QPainter>
5 #include <functional>
6 #include "gui/image_widget.h"
7 
17 class ROVIZ_EXPORT SparseWidget : public ImageWidget
18 {
19 Q_OBJECT
20 
21 public:
22  SparseWidget(std::function<void (SparseWidget *)> draw_func, StreamObject default_item, std::function<Image (StreamObject)> image_fn, OutputPrivate *out);
23 
27  void reset(void) override;
28 
33  void newObject(StreamObject obj) override;
34 
40  template<class T>
41  void draw(void);
42 
43 protected:
52  void paintEvent(QPaintEvent *event) override;
53 
54 private:
55  StreamObject sparse_obj, def_item;
56  std::function<void (SparseWidget *)> draw_fn;
57  std::function<Image (StreamObject)> image_fn;
58 
59  template<class T>
60  void updatePenColor(QPainter &painter, T obj);
61  double xTF(double x);
62  double yTF(double y);
63  double wTF(double w);
64  double hTF(double h);
65 };
66 
67 #endif // SPARSE_WIDGET_H
Base class of all objects that can be transported with a stream.
Definition: stream_object.h:39
A widget to show sparse data.
Definition: sparse_widget.h:17
void newObject(StreamObject obj) override
Called when a new image arrived.
Definition: image_widget.cpp:43
Private part of the Ouput class.
Definition: output_p.h:16
void reset(void) override
Reset the widget to make it show the default image again.
Definition: image_widget.cpp:18
virtual void paintEvent(QPaintEvent *event) override
Paint the widget.
Definition: image_widget.cpp:27
A widget to show images.
Definition: image_widget.h:29
A portable image class with smart memory management.
Definition: image.h:35