EditDepthArea.h
Go to the documentation of this file.
00001 /*
00002 Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
00003 All rights reserved.
00004 
00005 Redistribution and use in source and binary forms, with or without
00006 modification, are permitted provided that the following conditions are met:
00007     * Redistributions of source code must retain the above copyright
00008       notice, this list of conditions and the following disclaimer.
00009     * Redistributions in binary form must reproduce the above copyright
00010       notice, this list of conditions and the following disclaimer in the
00011       documentation and/or other materials provided with the distribution.
00012     * Neither the name of the Universite de Sherbrooke nor the
00013       names of its contributors may be used to endorse or promote products
00014       derived from this software without specific prior written permission.
00015 
00016 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00017 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00018 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00019 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
00020 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00021 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00022 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00023 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00024 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00025 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00026 */
00027 
00028 #ifndef RTABMAP_EDITDEPTHAREA_H
00029 #define RTABMAP_EDITDEPTHAREA_H
00030 
00031 #include "rtabmap/gui/RtabmapGuiExp.h" // DLL export/import defines
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


rtabmap
Author(s): Mathieu Labbe
autogenerated on Thu Jun 6 2019 21:59:19