summaryrefslogtreecommitdiffstats
path: root/tests/manual/galaxy/galaxydata.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/galaxy/galaxydata.h')
-rw-r--r--tests/manual/galaxy/galaxydata.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/tests/manual/galaxy/galaxydata.h b/tests/manual/galaxy/galaxydata.h
new file mode 100644
index 00000000..9f6f14cf
--- /dev/null
+++ b/tests/manual/galaxy/galaxydata.h
@@ -0,0 +1,117 @@
+/******************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Data Visualization module.
+**
+** $QT_BEGIN_LICENSE:COMM$
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** $QT_END_LICENSE$
+**
+******************************************************************************/
+
+#ifndef SCATTERDATAMODIFIER_H
+#define SCATTERDATAMODIFIER_H
+
+#include "star.h"
+
+#include <QtDataVisualization/q3dscatter.h>
+#include <QtDataVisualization/qabstract3dseries.h>
+#include <QtGui/QFont>
+#include <QtWidgets/QSlider>
+#include <QtWidgets/QLabel>
+
+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);
+ void setStaticEnabled(bool enabled);
+ void setStarsVisible(bool enabled);
+ void setDustVisible(bool enabled);
+ void setH2Visible(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;
+ }
+ void setFpsLabel(QLabel *fpsLabel) { m_fpsLabel = fpsLabel; }
+ void handleFpsChange(qreal fps);
+
+private:
+ void createGalaxy();
+ void checkMinMax(const Star &star);
+ void createNormalDataView();
+ void createFilteredView();
+ void createSeries();
+ qreal value;
+
+private:
+ Q3DScatter *m_graph;
+ QScatter3DSeries *m_normalSeries;
+ QScatter3DSeries *m_dustSeries;
+ QScatter3DSeries *m_H2Series;
+ QScatter3DSeries *m_filteredSeries;
+ Star *m_pStars;
+ Star *m_pDust;
+ Star *m_pH2;
+
+ 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;
+ QLabel *m_fpsLabel;
+
+ qreal m_minx;
+ qreal m_maxx;
+ qreal m_miny;
+ qreal m_maxy;
+ int m_range;
+ bool m_filtered;
+};
+
+#endif