-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathdata_io.h
80 lines (72 loc) · 2.06 KB
/
data_io.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
#ifndef DATA_IO_H
#define DATA_IO_H
#include <QObject>
#include <QString>
#include <QFile>
#include <QDir>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtkXMLPolyDataReader.h>
#include <vtkSTLReader.h>
#include <vtkMatrix4x4.h>
#include "observe_error.h"
#include <vtkCenterOfMass.h>
#include "vtkDistancePolyDataFilter.h"
#include <vtkPolyDataReader.h>
#include <QFile>
#include <QTextStream>
#include <vtkXMLPolyDataWriter.h>
#include <vtkTransformPolyDataFilter.h>
#include <vtkTransform.h>
#include <vtkSTLWriter.h>
#include <vtkPolyDataWriter.h>
class DataIO : public QObject
{
Q_OBJECT
public:
explicit DataIO(QObject* parent = 0);
~DataIO();
static void ComputeSurfaceDistance(vtkPolyData* source, vtkPolyData* target);
void SetSourcePath(QString);
void SetTargetPath(QString);
void SetInitialTransformSavePath(QString);
void SetRegistrationTransformSavePath(QString);
void SetTransformedSurfaceSavePath(QString);
vtkPolyData* GetSourceSurface();
vtkPolyData* GetTargetSurface();
vtkPolyData* GetOutputSurface();
double* GetSourceCentroid();
double* GetTargetCentroid();
bool WriteTransformedSurface();
void WriteInitialTransform();
void WriteRegistrationTransform();
vtkMatrix4x4* GetInitialTransform();
vtkMatrix4x4* GetRegistartionTransform();
bool ReadSource();
bool ReadTarget();
std::string GetErrorMessage();
public slots:
signals:
// 0 for success, 1 for fail
void sourceFileReadStatus(bool);
void targetFileReadStatus(bool);
void transformedFileSaveStatus(bool);
private:
QFileInfo m_sourceFile;
QFileInfo m_targetFile;
QFileInfo m_initialTransformSaveFile;
QFileInfo m_registrationTransformSaveFile;
QFileInfo m_transformedSurfaceSaveFile;
bool m_writeTransformedSTL = false;
bool m_writeTransformedVTP = false;
bool m_writeTransformedMatrix = false;
vtkPolyData* m_sourceSurface;
vtkPolyData* m_targetSurface;
vtkPolyData* m_outputSurface;
std::string m_errorMessage;
vtkMatrix4x4* m_initialTransform;
vtkMatrix4x4* m_registrationTransform;
double* m_sourceCentroid;
double* m_targetCentroid;
};
#endif // !DATA_IO_H