-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpandora.h
102 lines (81 loc) · 3.44 KB
/
pandora.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
#ifndef PANDORA_H
#define PANDORA_H
#include <QObject>
#include <QString>
#include "atlas.h"
extern Atlas prometheusModel;
class Pandora : public QObject
{
Q_OBJECT
public:
explicit Pandora(QObject *parent = 0);
~Pandora();
void setupLookupTables();
void pandoraError (QString message);
void pandoraInfo(QString message);
/*******************************************************************************************
* These functions hold instructions specific to parsing data in the given format and
* delivering that data to the viewer for display.
*******************************************************************************************/
void parseDataFile (QString fileType, QString fileName);
void parseBGF(QString fileName);
void parseCIF();
void parseCML();
void parseLammpsInput(QString fileName);
void parseLammpsTrajectory();
void parseMOL();
void parseMOL2();
void parseMSI();
void parsePBD();
void parseXYZ();
// void parseMMCIF();
// void parsePBDML();
/********************************************************************************************
* These functions hold instructins specific to writing data files of given format and
* saving them to a location specified by the User.
*******************************************************************************************/
void writeDataFile (QString fileType, QString fileName);
void writeBGF(QString fileName);
void writeCIF();
void writeCML();
void writeLammpsInput(QString fileName);
void writeMOL();
void writeMOL2();
void writeMSI();
void writePBD();
void writeXYZ();
// void writeMMCIF();
// void writePBDML();
/********************************************************************************************
* These functions hold instructins specific to typing atoms according to a given
* force field specified by the User.
*******************************************************************************************/
void assignFFTypes(int ForceField);
void typeAIREBO();
void typeAMBER();
void typeCHARMM();
void typeDREIDING();
void typeGAFF();
void typeReaxFF();
void typeREBO();
void typeUFF();
// Book-keeping functions that will be helpful in reading and displaying chemical data.
QString findElementalSymbol(int atomicNumber);
int findAtomicNumber(QString forceFieldType);
QVector<float> findRadii(QVector<int> &ListOfAtomicNumbers);
QVector<QVector<float> > findColor(QVector<int> &ListOfAtomicNumbers);
void findBondData(QVector<QVector<int> > ListOfBonds, int activeModel, QVector<float> &BondLengths, QVector<QVector<float> > &BondCenters, QVector<QVector<float> > &BondNormals);
void nameAllAtoms();
void checkForAromaticity(QVector<int> &Atoms, QVector<QString> &FFType, QVector<QVector<int> > &BondList, QVector<int> &AromaticAtoms);
signals:
public slots:
private:
int activeModel;
/***************************************************************************************************************************
* These arrays will hold lookup data that make data manipulation easier.
****************************************************************************************************************************/
QVector<QString> elementLookup;
QVector<float> vanderWaalsLookup;
QVector<QVector<float> > colorLookup;
};
#endif // PANDORA_H