forked from nightn/CloudViewer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcloudviewer.h
167 lines (144 loc) · 3.9 KB
/
cloudviewer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#ifndef CLOUDVIEWER_H
#define CLOUDVIEWER_H
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
#include "MyCloud.h"
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/vtk_io.h>
#include <pcl/io/obj_io.h>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/common/common.h>
#include <pcl/ModelCoefficients.h>
#include <pcl/features/normal_3d.h>
#include <pcl/search/kdtree.h>
#include <pcl/surface/gp3.h>
#include <QtWidgets/QMainWindow>
#include "GBK.h"
#include "ui_cloudviewer.h"
#include "AboutWin.h"
#include "Tools.h"
#include <vector>
#include <QtWidgets/QMainWindow>
#include <QString>
#include <QDebug>
#include <QLabel>
#include <QMessageBox>
#include <QAction>
#include <QMenu>
#include <QMenuBar>
#include <QToolBar>
#include <QStatusBar>
#include <QFileDialog>
#include <QColorDialog>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include "QVTKWidget.h"
#include <vtkRenderWindow.h>
#include <QTextEdit>
#include <QTime>
#include <QMouseEvent>
#include <QDesktopServices>
#include <QUrl>
typedef pcl::PointXYZRGBA PointT;
typedef pcl::PointCloud<PointT> PointCloudT;
class CloudViewer : public QMainWindow
{
Q_OBJECT
public:
CloudViewer(QWidget *parent = 0);
~CloudViewer();
private:
Ui::CloudViewerClass ui;
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_xyz;
MyCloud mycloud;
std::vector<MyCloud> mycloud_vec;
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer;
QString save_filename;
long total_points = 0; //Total amount of points in the viewer
unsigned int red = 255;
unsigned int green = 255;
unsigned int blue = 255;
unsigned int p = 2;
std::vector<int> pointcolor;
std::vector<int> bgcolor;
QVBoxLayout *layout;
int theme_id = 1; // 0: Windows theme, 1: Darcula theme
bool enable_console = true; // console 的可用状态
bool save_as_binary = false;
QString time_cost = "0"; // 记录某个动作执行的时间
/***** Slots of QMenuBar and QToolBar *****/
// File menu slots
void open();
void add();
void clear();
void save();
void saveBinary();
void savemulti();
void change();
void exit();
// Display menu slots
void pointcolorChanged();
void bgcolorChanged();
void mainview();
void leftview();
void topview();
// View menu slots
void data();
void properties();
void console();
void rgbDock();
// Generate menu slots
void cube();
void createSphere();
void createCylinder();
// Process menu slots
int convertSurface(); //法线估计、曲面重建、网格面片显示
int convertWireframe(); //法线估计、曲面重建、网格线框显示
// Option menu slots
void windowsTheme();
void darculaTheme();
void langEnglish();
void langChinese();
// About menu slots
void about();
void help();
/***** Utils Methods ***/
void initial();
void showPointcloud(); //显示点云
void showPointcloudAdd(); //添加给viewer,显示点云
void setCloudColor(unsigned int r, unsigned int g, unsigned int b);
void setA(unsigned int a);
void setPropertyTable();
void setConsoleTable();
void consoleLog(QString operation, QString subname, QString filename, QString note);
public slots:
/***** Slots of RGB widget *****/
// Change color or size of cloud when slider is released or colorBtn is pressed
void colorBtnPressed();
void RGBsliderReleased();
void psliderReleased();
void pSliderChanged(int value);
void rSliderChanged(int value);
void gSliderChanged(int value);
void bSliderChanged(int value);
// Slots of checkBox
void cooCbxChecked(int value);
void bgcCbxChecked(int value);
/***** Slots of dataTree(QTreeWidget) widget *****/
// Item in dataTree is left-clicked
void itemSelected(QTreeWidgetItem*, int);
// Item in dataTree is right-clicked
void popMenu(const QPoint&);
void hideItem();
void showItem();
void deleteItem();
void popMenuInConsole(const QPoint&);
void clearConsole();
void enableConsole();
void disableConsole();
};
#endif // CLOUDVIEWER_H