diff options
author | Mika Salmela <mika.salmela@theqtcompany.com> | 2014-12-04 09:57:20 +0200 |
---|---|---|
committer | Mika Salmela <mika.salmela@theqtcompany.com> | 2014-12-04 09:57:57 +0200 |
commit | deaab27525898386ff9bf655e58810e744b518ee (patch) | |
tree | a8089be6fdd8c5e37f6719bf73510e2a889f0757 /tests/galaxy/galaxydata.h | |
parent | 9644652e37d13430e318332652288b05866a432f (diff) |
Initial version of Galaxy.
Change-Id: I29898bed342022290c8c8a6c4459969ffba3df56
Reviewed-by: Mika Salmela <mika.salmela@theqtcompany.com>
Diffstat (limited to 'tests/galaxy/galaxydata.h')
-rw-r--r-- | tests/galaxy/galaxydata.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/galaxy/galaxydata.h b/tests/galaxy/galaxydata.h new file mode 100644 index 00000000..88a9025a --- /dev/null +++ b/tests/galaxy/galaxydata.h @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.io +** +** This file is part of the Qt Data Visualization module. +** +** Licensees holding valid commercial license for Qt may use this file in +** accordance with the Qt License Agreement provided with the Software +** or, alternatively, in accordance with the terms contained in a written +** agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.io +** +****************************************************************************/ + +#ifndef SCATTERDATAMODIFIER_H +#define SCATTERDATAMODIFIER_H + +#include "star.h" + +#include <QtDataVisualization/q3dscatter.h> +#include <QtDataVisualization/qabstract3dseries.h> +#include <QtGui/QFont> +#include <QtWidgets/QSlider> + +using namespace QtDataVisualization; + +class GalaxyData : public QObject +{ + Q_OBJECT +public: + explicit GalaxyData(Q3DScatter *scatter, + qreal rad = 13000, + qreal radCore = 4000.0, + qreal deltaAng = 0.0004, + qreal ex1 = 0.9, + qreal ex2 = 0.9); + ~GalaxyData(); + + qreal getExcentricity(qreal r) const; + qreal getAngularOffset(qreal rad) const; + + void radiusGalaxyChanged(int value); + void radiusCoreChanged(int value); + void angleOffsetChanged(int value); + void eccentricityInnerChanged(int value); + void eccentricityOuterChanged(int value); + void resetValues(); + void setFilteredEnabled(bool enabled); + inline void setSliders(QSlider *rg, + QSlider *rc, + QSlider *ao, + QSlider *ei, + QSlider *eo) { + m_radiusGalaxySlider = rg; + m_radiusCoreSlider = rc; + m_angleOffsetSlider = ao; + m_eccentricityInnerSlider = ei; + m_eccentricityOuterSlider = eo; + } + +private: + void createGalaxy(); + void checkMinMax(const Star &star); + void createNormalDataView(); + void createFilteredView(); + void createNormalSeries(); + void createFilteredSeries(int tableSize); + qreal value; + +private: + Q3DScatter *m_graph; + QScatterDataArray *m_dataArray; + Star *m_pStars; + + qreal m_elEx1; // Excentricity of the innermost ellipse + qreal m_elEx2; // Excentricity of the outermost ellipse + + qreal m_angleOffset; // Angular offset per parsec + + qreal m_radCore; // Radius of the inner core + qreal m_radGalaxy; // Radius of the galaxy + qreal m_radFarField; // The radius after which all density waves must have circular shape + + QSlider *m_radiusGalaxySlider; + QSlider *m_radiusCoreSlider; + QSlider *m_angleOffsetSlider; + QSlider *m_eccentricityInnerSlider; + QSlider *m_eccentricityOuterSlider; + + qreal m_minx = 9999.9; + qreal m_maxx = -9999.0; + qreal m_miny = 9999.9; + qreal m_maxy = -9999.0; + int m_range; + bool m_filtered; + int m_tableSize; +}; + +#endif |