ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ccCloudLayersDlg.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 // ##########################################################################
11 // # #
12 // # CloudViewer PLUGIN: qCloudLayers #
13 // # #
14 // # This program is free software; you can redistribute it and/or modify #
15 // # it under the terms of the GNU General Public License as published by #
16 // # the Free Software Foundation; version 2 of the License. #
17 // # #
18 // # This program is distributed in the hope that it will be useful, #
19 // # but WITHOUT ANY WARRANTY; without even the implied warranty of #
20 // # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
21 // # GNU General Public License for more details. #
22 // # #
23 // # COPYRIGHT: WigginsTech 2022 #
24 // # #
25 // ##########################################################################
26 
27 // local
28 #include <ui_ccCloudLayersDlg.h>
29 
30 #include "ccAsprsModel.h"
31 #include "ccCloudLayersHelper.h"
32 
33 // CC
34 #include <ecvOverlayDialog.h>
35 
36 class ccPointCloud;
37 class ccMouseCircle;
38 
39 class ccCloudLayersDlg : public ccOverlayDialog, public Ui::ccCloudLayersDlg {
40  Q_OBJECT
41 
42 public:
45  QWidget* parent = nullptr);
46 
48  virtual ~ccCloudLayersDlg();
49 
51  bool start() override;
52  void stop(bool accepted) override;
53 
54  void setPointCloud(ccPointCloud* cloud);
55 
56 private:
57  void resetUI();
58  void initTableView();
59 
60  void saveSettings();
61  void loadSettings();
62 
63  bool eventFilter(QObject* obj, QEvent* event) override;
64  void reject() override;
65 
66 private Q_SLOTS:
67 
69  void addClicked();
70 
72  void deleteClicked();
73 
75  void startClicked();
76 
78  void pauseClicked();
79 
81  void applyClicked();
82 
84  void closeClicked();
85 
86  void scalarFieldIndexChanged(int index);
87  void inputClassIndexChanged(int index);
88  void outputClassIndexChanged(int index);
89 
91  void codeChanged(ccAsprsModel::AsprsItem& item, int oldCode);
92  void colorChanged(ccAsprsModel::AsprsItem& item);
93 
95  void tableViewDoubleClicked(const QModelIndex& index);
96 
98  void updateInputOutput();
99  void swapInputOutput();
100 
101  void mouseMoved(int x, int y, Qt::MouseButtons buttons);
102 
103 private:
104  ecvMainAppInterface* m_app;
105  ccAsprsModel m_asprsModel;
106  ccCloudLayersHelper* m_helper;
107  ccMouseCircle* m_mouseCircle;
108  QList<QString> m_presets;
109 };
MouseEvent event
void stop(bool accepted) override
Stops process/dialog.
void setPointCloud(ccPointCloud *cloud)
bool start() override
inherited from ccOverlayDialog
virtual ~ccCloudLayersDlg()
Destructor.
ccCloudLayersDlg(ecvMainAppInterface *app, QWidget *parent=nullptr)
Default constructor.
Generic overlay dialog interface.
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Main application interface (for plugins)