ExportScansDialog.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 EXPORTSCANSDIALOG_H_
00029 #define EXPORTSCANSDIALOG_H_
00030 
00031 #include <QDialog>
00032 #include <QMap>
00033 #include <QtCore/QSettings>
00034 
00035 #include <rtabmap/core/Signature.h>
00036 
00037 #include <pcl/point_cloud.h>
00038 #include <pcl/point_types.h>
00039 #include <pcl/PolygonMesh.h>
00040 #include <pcl/TextureMesh.h>
00041 #include <pcl/pcl_base.h>
00042 
00043 class Ui_ExportScansDialog;
00044 class QAbstractButton;
00045 
00046 namespace rtabmap {
00047 class ProgressDialog;
00048 
00049 class ExportScansDialog : public QDialog
00050 {
00051         Q_OBJECT
00052 
00053 public:
00054         ExportScansDialog(QWidget *parent = 0);
00055 
00056         virtual ~ExportScansDialog();
00057 
00058         void saveSettings(QSettings & settings, const QString & group = "") const;
00059         void loadSettings(QSettings & settings, const QString & group = "");
00060 
00061         void exportScans(
00062                         const std::map<int, Transform> & poses,
00063                         const std::map<int, int> & mapIds,
00064                         const QMap<int, Signature> & cachedSignatures,
00065                         const std::map<int, cv::Mat> & createdScans,
00066                         const QString & workingDirectory);
00067 
00068         void viewScans(
00069                         const std::map<int, Transform> & poses,
00070                         const std::map<int, int> & mapIds,
00071                         const QMap<int, Signature> & cachedSignatures,
00072                         const std::map<int, cv::Mat> & createdScans,
00073                         const QString & workingDirectory);
00074 
00075 signals:
00076         void configChanged();
00077 
00078 public slots:
00079         void restoreDefaults();
00080 
00081 private:
00082         std::map<int, pcl::PointCloud<pcl::PointNormal>::Ptr> getScans(
00083                         const std::map<int, Transform> & poses,
00084                         const QMap<int, Signature> & cachedSignatures,
00085                         const std::map<int, cv::Mat> & createdScans) const;
00086         bool getExportedScans(
00087                                 const std::map<int, Transform> & poses,
00088                                 const std::map<int, int> & mapIds,
00089                                 const QMap<int, Signature> & cachedSignatures,
00090                                 const std::map<int, cv::Mat> & createdScans,
00091                                 const QString & workingDirectory,
00092                                 std::map<int, pcl::PointCloud<pcl::PointNormal>::Ptr> & clouds);
00093         void saveScans(const QString & workingDirectory,
00094                         const std::map<int, Transform> & poses,
00095                         const std::map<int, pcl::PointCloud<pcl::PointNormal>::Ptr> & clouds,
00096                         bool binaryMode = true);
00097 
00098         void setSaveButton();
00099         void setOkButton();
00100         void enableRegeneration(bool enabled);
00101 
00102 private:
00103         Ui_ExportScansDialog * _ui;
00104         ProgressDialog * _progressDialog;
00105 };
00106 
00107 }
00108 
00109 #endif /* EXPORTSCANSDIALOG_H_ */


rtabmap
Author(s): Mathieu Labbe
autogenerated on Sat Jul 23 2016 11:44:16