rock_widget_collection  0.1
SonarDisplay.h
Go to the documentation of this file.
1 /*
2  * File: SonarDisplay.h
3  * Author: blueck
4  *
5  * Created on 17. Juni 2010, 14:14
6  */
7 
8 #ifndef SONARDISPLAY_H
9 #define SONARDISPLAY_H
10 
11 #include <MultiWidget.h>
12 #include <QtGui/QWidget>
13 #include <QtGui/QPaintEvent>
14 #include <QtGui/QPainter>
15 #include <QtGui/QImage>
16 #include <QtGui/QPen>
17 #include <QtCore/QByteArray>
18 #include <QtCore/QList>
19 #include <QtGui/qfiledialog.h>
20 #include <QtGui/QMenu>
21 #include <QtCore/QString>
22 #include <QtDesigner/QDesignerExportWidget>
23 
24 #include <QVTKWidget.h>
25 #include <vtkSmartPointer.h>
26 #include <vtkUnsignedCharArray.h>
27 #include <vtkStructuredGrid.h>
28 #include <vtkStructuredGridGeometryFilter.h>
29 #include <vtkPolyDataMapper.h>
30 #include <vtkActor.h>
31 #include <vtkXYPlotActor.h>
32 
33 #include <vtkRenderWindowInteractor.h>
34 #include <vtkCommand.h>
35 
36 #include <iostream>
37 #include <vector>
38 class SonarDisplay;
39 
40 class KeyEvent : public vtkCommand
41 {
42  public:
43  KeyEvent(SonarDisplay* p){p_sonar_display = p;bin_number=100;};
44  virtual void Execute (vtkObject *caller, unsigned long eventId, void *callData);
45 
46  private:
47  SonarDisplay *p_sonar_display;
48  int bin_number;
49 };
50 
51 class QDESIGNER_WIDGET_EXPORT SonarDisplay : public QVTKWidget
52 {
53  Q_OBJECT
54  Q_CLASSINFO("Author", "Alexander Duda")
55 
56  public:
57  SonarDisplay(QWidget *parent = NULL);
58  virtual ~SonarDisplay(){};
59 
60  vtkSmartPointer<vtkStructuredGrid> generateStructuredGrid(int number_of_beams, int number_of_bins ,
61  float horizontal_resolution, float distance_resolution,
62  float vertical_resolution = 0);
63 
64  void setUpStructuredGrid(vtkSmartPointer<vtkStructuredGrid> sgrid,
65  int number_of_beams, int number_of_bins,
66  float horizontal_resolution, float distance_resolution,
67  float vertical_resolution, float start_angle = 0);
68 
69  int getActorID(const vtkActor *actor);
70  vtkStructuredGridGeometryFilter* getFilter(int id);
71  vtkUnsignedCharArray* getData(int id);
72 
73  public slots:
74  void addSonarBeam(float bearing,int number_of_bins,const char* pbuffer);
75  void setUpSonar(int number_of_beams, int number_of_bins,float horizontal_resolution,
76  float distance_resolution, float vertical_resolution);
77  void setParameterToAuto(bool value);
78  void deleteBeams(int from, int to);
79 
80  int getNumberOfBins(){return number_of_bins;};
81  int getNumberOfBeams(){return number_of_beams;};
82  void setPlotData(int id);
83  void reset();
84  bool isPlotVisible();
85  void setPlotVisible(bool val);
86 
87  private:
88  int number_of_beams;
89  int number_of_bins;
90  float start_bearing;
91  float end_bearing;
92  float horizontal_resolution;
93  float vertical_resolution;
94  float distance_resolution;
95  bool paramerter_auto;
96  bool smooth;
97  int last_index;
98 
99  KeyEvent key_event;
100 
101  vtkSmartPointer<vtkStructuredGrid> sonar_wireframe;
102  vtkSmartPointer<vtkRenderWindow> render_window;
103  vtkSmartPointer<vtkRenderer> renderer;
104 
105 
106  std::vector<vtkSmartPointer<vtkUnsignedCharArray> > sonar_data;
107  std::vector<vtkSmartPointer<vtkStructuredGrid> > sonar_grid;
108  std::vector<vtkSmartPointer<vtkStructuredGridGeometryFilter> > sonar_filter;
109  std::vector<vtkSmartPointer<vtkPolyDataMapper> > sonar_mapper;
110  std::vector<vtkSmartPointer<vtkActor> > sonar_actor;
111 
112  vtkSmartPointer<vtkXYPlotActor> plot_actor;
113 
114  protected:
115  int normalizeDelata(int delta);
116 };
117 
118 #endif /* IMAGEVIEWWIDGET_H */
119 
KeyEvent(SonarDisplay *p)
Definition: SonarDisplay.h:43
virtual ~SonarDisplay()
Definition: SonarDisplay.h:58
int getNumberOfBins()
Definition: SonarDisplay.h:80
virtual void Execute(vtkObject *caller, unsigned long eventId, void *callData)
Definition: SonarDisplay.cc:28
int getNumberOfBeams()
Definition: SonarDisplay.h:81