-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathmainwindow.cpp
58 lines (45 loc) · 1.33 KB
/
mainwindow.cpp
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
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFile>
#include <QFileDialog>
#include <QMessageBox>
#include <vtkDataSetReader.h>
MainWindow::MainWindow(QWidget* parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow() { delete ui; }
void MainWindow::showAboutDialog()
{
QMessageBox::information(
this, "About",
"By Martijn Koopman.\nSource code available under Apache License 2.0.");
}
void MainWindow::showOpenFileDialog()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open file"), "",
"VTK Files (*.vtk)");
// Open file
QFile file(fileName);
file.open(QIODevice::ReadOnly);
// Return on Cancel
if (!file.exists())
return;
openFile(fileName);
}
void MainWindow::openFile(const QString& fileName)
{
ui->sceneWidget->removeDataSet();
// Create reader
vtkSmartPointer<vtkDataSetReader> reader = vtkSmartPointer<vtkDataSetReader>::New();
reader->SetFileName(fileName.toStdString().c_str());
// Read the file
reader->Update();
// Add data set to 3D view
vtkSmartPointer<vtkDataSet> dataSet = reader->GetOutput();
if (dataSet != nullptr) {
ui->sceneWidget->addDataSet(reader->GetOutput());
}
}