1 #ifndef POSITIONREADER_H
2 #define POSITIONREADER_H
15 Q_PROPERTY(
int nSampleSteps READ nSampleSteps NOTIFY nSampleStepsChanged)
16 Q_PROPERTY(
double voxelEdgeMin READ voxelEdgeMin WRITE setVoxelEdgeMin NOTIFY voxelEdgeMinChanged)
17 Q_PROPERTY(
double voxelEdgeMax READ voxelEdgeMax WRITE setVoxelEdgeMax NOTIFY voxelEdgeMaxChanged)
19 Q_PROPERTY(QVector3D center READ center WRITE setCenter NOTIFY centerChanged)
20 Q_PROPERTY(
int orbital READ orbital WRITE setOrbital NOTIFY orbitalChanged)
21 Q_PROPERTY(
int orbitalCount READ orbitalCount NOTIFY orbitalCountChanged)
22 Q_PROPERTY(
double contrast READ contrast WRITE setContrast NOTIFY contrastChanged)
26 const cube& positions() const;
27 void generateRandomPoints();
28 int nSampleSteps()
const
30 return m_nSampleSteps;
32 uint voxelDataWidth();
33 uint voxelDataHeight();
34 uint voxelDataDepth();
36 GLuint *voxelData()
const;
40 return m_voxelEdgeMax;
45 return m_voxelEdgeMin;
65 return m_orbitalDensities.n_elem;
76 if (m_voxelEdgeMax != arg) {
78 emit voxelEdgeMaxChanged(arg);
84 if (m_voxelEdgeMin != arg) {
86 emit voxelEdgeMinChanged(arg);
92 if (m_center != arg) {
94 emit centerChanged(arg);
98 void setOrbital(
int arg);
102 if (m_contrast != arg) {
105 m_contrastInverse = 1.0 / arg;
107 m_contrastInverse = 1e9;
110 emit contrastChanged(arg);
115 void nSampleStepsChanged(
int arg);
118 void voxelEdgeMaxChanged(
double arg);
120 void voxelEdgeMinChanged(
double arg);
122 void centerChanged(QVector3D arg);
124 void energyChanged(
double arg);
126 void orbitalChanged(
int arg);
128 void orbitalCountChanged(
int arg);
130 void contrastChanged(
double arg);
133 void loadPointsFromFile();
134 void setupVoxelData();
136 cube m_filePositions;
137 field<cube> m_orbitalDensities;
141 double m_voxelEdgeMin;
142 double m_voxelEdgeMax;
147 double m_contrastInverse;
150 #endif // POSITIONREADER_H