-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathatlas.h
More file actions
156 lines (121 loc) · 5.09 KB
/
atlas.h
File metadata and controls
156 lines (121 loc) · 5.09 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
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
#ifndef ATLAS_H
#define ATLAS_H
#include <QObject>
#include <QVector>
#include <QString>
#include <QQuaternion>
#include <QPoint>
class Atlas : public QObject
{
Q_OBJECT
public:
explicit Atlas(QObject *parent = 0);
~Atlas();
/***********************************
// The SET Functions
***********************************/
void createModel(int atomCount, bool periodicity);
void setModelPeriodicity(bool periodicity);
void setAtomChainName (int atomIndex, QString atomChainName);
void setAtomAtomicNumber (int atomIndex, int atomicNumber);
void setAtomForceFieldType (int atomIndex, QString atomForceFieldType);
void setAtomMaxCovalentBonds (int atomIndex, int atomMaxCovalentBonds);
void setAtomNumberOfLonePairs (int atomIndex, int atomNumberOfLonePairs);
void setAtomName (int atomIndex, QString atomName);
void setAtomPartialCharge (int atomIndex, float atomPartialCharge);
void setAtomPositionX (int atomIndex, float atomPositionX);
void setAtomPositionY (int atomIndex, float atomPositionY);
void setAtomPositionZ (int atomIndex, float atomPositionZ);
void setAtomResidueName (int atomIndex, QString atomResidueName);
void setAtomResidueNumber (int atomIndex, int atomResidueNumber);
void setAtomVelocity (int atomIndex, float atomVelocity);
void setBondList (QVector<int> bondLoader);
void setBondOrder (int bondOrder);
void setDrawingStyle(int style);
void setNumberOfAtoms();
void setNumberOfBonds();
void setSelectedAtom(int atomID);
void setSelectedBond(int bondID);
/***********************************
// The GET Functions
***********************************/
bool& getModelPeriodicity();
QVector<int>& getAtomAtomicNumber();
QVector<QString>& getAtomName();
QVector<QString>& getAtomForceFieldType();
QVector<float>& getAtomPartialCharge();
QVector<float>& getAtomPositionX();
QVector<float>& getAtomPositionY();
QVector<float>& getAtomPositionZ();
QVector<QVector<int> >& getBondList();
QVector<int>& getBondOrder();
int& getDrawingStyle();
int& getNumberOfAtoms();
int& getNumberOfBonds();
QVector<int>& getSelectedAtom();
QVector<int>& getSelectedBond();
/********************************************
* Other Functions that Manipulate the Model
********************************************/
void clearSelection();
void unSelectAtom(int atomID);
void unSelectBond(int bondID);
void deleteHighlightedObjects();
void singleSaveAtom(int atomID);
void singleRecoverAtom();
void editAtom(int atomID, int newAtomicNumber, bool atomBuilderMoved);
void addAtom(int newAtomicNumber, QVector<float> pos);
void placeNewAtom(QPoint cursorCoordinates, int windowWidth, int windowHeight, float xTrans, float yTrans, float zTrans, QQuaternion rotation, int atomicNumber, bool atomBuilderMoved);
void purgeLastRecord(int atomID);
void incrementBond();
void decrementBond();
private:
/***************************************************************************************************************************
* These arrays will be needed to store the atom (or electron, core, etc) properties. Atlas (brother of Prometheus) is the
* universal framework that supports Prometheus. The framework drives the format conversion abilities of Prometheus since
* data can be pulled or ported to files as needed. Instances of this class can be called to hold a number of models while
* the program is active.
****************************************************************************************************************************/
QVector<QString> atomChainName;
QVector<int> atomAtomicNumber;
QVector<QString> atomForceFieldType;
QVector<int> atomMaxCovalentBonds;
QVector<int> atomNumberOfLonePairs;
QVector<QString> atomName;
QVector<float> atomPartialCharge;
QVector<float> atomPositionX;
QVector<float> atomPositionY;
QVector<float> atomPositionZ;
QVector<QString> atomResidueName;
QVector<int> atomResidueNumber;
QVector<float> atomVelocity;
QVector<QVector<int> > bondList;
QVector<int> bondOrder;
bool isPeriodic;
int drawingStyle;
int numberOfAtoms;
int numberOfBonds;
QVector<int> selectedAtoms;
QVector<int> selectedBonds;
int atomBuilderOrigin;
int savedBondListSize;
int savedAtomListSize;
// These variables hold onto individual atoms that may need to be recovered during the use of the Atom Building Tool.
int singleSave_atomID;
QString singleSave_atomChainName;
int singleSave_atomAtomicNumber;
QString singleSave_atomForceFieldType;
int singleSave_atomMaxCovalentBonds;
int singleSave_atomNumberOfLonePairs;
QString singleSave_atomName;
float singleSave_atomPartialCharge;
float singleSave_atomPositionX;
float singleSave_atomPositionY;
float singleSave_atomPositionZ;
QString singleSave_atomResidueName;
int singleSave_atomResidueNumber;
float singleSave_atomVelocity;
signals:
public slots:
};
#endif // ATLAS_H