summaryrefslogtreecommitdiffstats
path: root/tests/galaxy/star.cpp
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@theqtcompany.com>2014-12-04 09:57:20 +0200
committerMika Salmela <mika.salmela@theqtcompany.com>2014-12-04 09:57:57 +0200
commitdeaab27525898386ff9bf655e58810e744b518ee (patch)
treea8089be6fdd8c5e37f6719bf73510e2a889f0757 /tests/galaxy/star.cpp
parent9644652e37d13430e318332652288b05866a432f (diff)
Initial version of Galaxy.
Change-Id: I29898bed342022290c8c8a6c4459969ffba3df56 Reviewed-by: Mika Salmela <mika.salmela@theqtcompany.com>
Diffstat (limited to 'tests/galaxy/star.cpp')
-rw-r--r--tests/galaxy/star.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/galaxy/star.cpp b/tests/galaxy/star.cpp
new file mode 100644
index 00000000..dd94698c
--- /dev/null
+++ b/tests/galaxy/star.cpp
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** 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
+**
+****************************************************************************/
+
+#include "star.h"
+
+#include <QtCore/qmath.h>
+
+static const double DEG_TO_RAD = M_PI / 180.0;
+
+Star::Star()
+ : m_theta(0),
+ m_a(0),
+ m_b(0),
+ m_center(QVector2D(0.0f, 0.0f))
+{
+}
+
+const void Star::calcXY()
+{
+ qreal &a = m_a;
+ qreal &b = m_b;
+ qreal &theta = m_theta;
+ const QVector2D &p = m_center;
+
+ qreal beta = -m_angle;
+ qreal alpha = theta * DEG_TO_RAD;
+
+ // temporaries to save cpu time
+ qreal cosalpha = qCos(alpha);
+ qreal sinalpha = qSin(alpha);
+ qreal cosbeta = qCos(beta);
+ qreal sinbeta = qSin(beta);
+
+ m_pos = QVector2D(p.x() + (a * cosalpha * cosbeta - b * sinalpha * sinbeta),
+ p.y() + (a * cosalpha * sinbeta + b * sinalpha * cosbeta));
+}