All Classes Namespaces Files Functions Variables Enumerations Enumerator
programs/UrgScanner/UrgDataDraw.h
Go to the documentation of this file.
00001 #ifndef URG_DATA_DRAW_H
00002 #define URG_DATA_DRAW_H
00003 
00015 #include <QGLWidget>
00016 #include "Point3d.h"
00017 #include <memory>
00018 
00019 namespace qrk {
00020   class RangeSensor;
00021 }
00022 
00023 
00027 class UrgDataDraw : public QGLWidget {
00028   Q_OBJECT;
00029 
00030   UrgDataDraw(const UrgDataDraw& rhs);
00031   UrgDataDraw& operator = (const UrgDataDraw& rhs);
00032 
00033   struct pImpl;
00034   std::auto_ptr<pImpl> pimpl;
00035 
00036  protected:
00037   void initializeGL(void);
00038   void resizeGL(int width, int height);
00039   void paintGL(void);
00040   void mousePressEvent(QMouseEvent *event);
00041   void mouseMoveEvent(QMouseEvent *event);
00042 
00043   QSize minimumSizeHint(void) const;
00044 
00045 public slots:
00047   void setTypeH(bool checked);
00048 
00050   void setFrontOnly(bool front_only);
00051 
00053   void magnifyChanged(int value);
00054 
00056   void resetView(void);
00057 
00058 public:
00064   UrgDataDraw(QWidget* parent = 0);
00065   ~UrgDataDraw(void);
00066 
00067   void redraw(qrk::RangeSensor& sensor,
00068               qrk::Point3d<int>& wii_rotate, bool record, bool no_plot);
00069 
00070   void clearCaptureData(void);
00071 
00072   void loadVrml(const std::string& fileName);
00073   void saveVrml(const std::string& fileName);
00074 
00075   void setIntensityMode(bool on);
00076 };
00077 
00078 #endif /* !URG_DATA_DRAW_H */