summaryrefslogtreecommitdiffstats
path: root/tests/manual/galaxy/star.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/galaxy/star.cpp')
-rw-r--r--tests/manual/galaxy/star.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/manual/galaxy/star.cpp b/tests/manual/galaxy/star.cpp
new file mode 100644
index 00000000..3a7db28a
--- /dev/null
+++ b/tests/manual/galaxy/star.cpp
@@ -0,0 +1,54 @@
+/******************************************************************************
+**
+** 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$
+**
+******************************************************************************/
+
+#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));
+}