forked from windless1015/Qt3DViewer
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathQt3DViewer.cpp
More file actions
78 lines (64 loc) · 2.06 KB
/
Copy pathQt3DViewer.cpp
File metadata and controls
78 lines (64 loc) · 2.06 KB
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
#include "Qt3DViewer.h"
#include "openmeshApps/MeshViewerWidget.h"
#include <qstyle.h>
#include <qfiledialog.h>
#include <qstandardpaths.h>
#include <qdebug.h>
Qt3DViewer::Qt3DViewer(QWidget *parent)
: QMainWindow(parent)
, _meshViewerWidget(new MeshViewerWidget())
, _importMeshAction(new QAction(this))
,_setTexture(new QAction(this))
{
ui.setupUi(this);
OpenMesh::IO::Options opt;
// enable most options for now
opt += OpenMesh::IO::Options::VertexColor;
opt += OpenMesh::IO::Options::VertexNormal;
opt += OpenMesh::IO::Options::VertexTexCoord;
opt += OpenMesh::IO::Options::FaceColor;
opt += OpenMesh::IO::Options::FaceNormal;
opt += OpenMesh::IO::Options::FaceTexCoord;
_meshViewerWidget->setOptions(opt);
setCentralWidget(_meshViewerWidget);
createActions();
createMenus();
createToolbars();
}
void Qt3DViewer::displayMesh()
{
OpenMesh::IO::Options opt;
_meshViewerWidget->open_mesh("E:/skull.stl", opt);
}
void Qt3DViewer::createMenus()
{
QMenu *fileMenu = this->menuBar()->addMenu(tr("File"));
fileMenu->addAction(_importMeshAction);
fileMenu->addAction(_setTexture);
}
void Qt3DViewer::createToolbars()
{
ui.mainToolBar->addAction(_importMeshAction);
}
void Qt3DViewer::createActions()
{
_importMeshAction->setIcon(QIcon(":/Qt3DViewer/Resources/images/importMesh.png"));
_importMeshAction->setText(tr("Import Mesh"));
connect(_importMeshAction, &QAction::triggered, this, &Qt3DViewer::importMesh);
_setTexture->setText(tr("Set Texture"));
connect(_setTexture, &QAction::triggered, this, &Qt3DViewer::setTexture);
}
void Qt3DViewer::importMesh()
{
_meshViewerWidget->query_open_mesh_file();
/*QString fileName = QFileDialog::getOpenFileName(this, tr("Import Mesh"), QStandardPaths::writableLocation(QStandardPaths::DesktopLocation), "STL(*.stl)");
if (!fileName.isEmpty())
{
OpenMesh::IO::Options opt;
_meshViewerWidget->open_mesh(fileName.toLocal8Bit().data(), opt);
}*/
}
void Qt3DViewer::setTexture()
{
_meshViewerWidget->query_open_texture_file();
}