Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef RTABMAP_EDITDEPTHAREA_H
00029 #define RTABMAP_EDITDEPTHAREA_H
00030
00031 #include "rtabmap/gui/RtabmapGuiExp.h"
00032
00033 #include <QColor>
00034 #include <QImage>
00035 #include <QPoint>
00036 #include <QWidget>
00037 #include <opencv2/opencv.hpp>
00038
00039 class QMenu;
00040 class QAction;
00041
00042 namespace rtabmap {
00043
00044 class RTABMAPGUI_EXP EditDepthArea : public QWidget
00045 {
00046 Q_OBJECT
00047
00048 public:
00049 EditDepthArea(QWidget *parent = 0);
00050
00051 void setImage(const cv::Mat & depth, const cv::Mat & rgb = cv::Mat());
00052 cv::Mat getModifiedImage() const;
00053 bool isModified() const {return modified_;}
00054
00055 void setPenWidth(int newWidth);
00056 int penWidth() const { return myPenWidth_; }
00057
00058 public Q_SLOTS:
00059 void resetChanges();
00060
00061 protected:
00062 virtual void mousePressEvent(QMouseEvent *event);
00063 virtual void mouseMoveEvent(QMouseEvent *event);
00064 virtual void mouseReleaseEvent(QMouseEvent *event);
00065 virtual void paintEvent(QPaintEvent *event);
00066 virtual void resizeEvent(QResizeEvent *event);
00067 virtual void contextMenuEvent(QContextMenuEvent * e);
00068
00069 private:
00070 void drawLineTo(const QPoint &endPoint);
00071 void computeScaleOffsets(const QRect & targetRect, float & scale, float & offsetX, float & offsetY) const;
00072
00073 bool modified_;
00074 bool scribbling_;
00075 int myPenWidth_;
00076 QImage imageRGB_;
00077 QImage image_;
00078 cv::Mat originalImage_;
00079 QPoint lastPoint_;
00080
00081 QMenu * menu_;
00082 QAction * showRGB_;
00083 QAction * removeCluster_;
00084 QAction * resetChanges_;
00085 QAction * setPenWidth_;
00086 };
00087
00088 }
00089
00090 #endif