diff options
author | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-04-14 14:23:20 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-04-14 14:26:46 +0300 |
commit | 5ba7f70d0d94de720d49b37b2d257b51b9afd026 (patch) | |
tree | 19f8f355a85a913a194cf610731ceebd8d8fb643 /tests/galaxy/cumulativedistributor.h | |
parent | 62f90e25eec23cfac83985993f355feeac5b9f2c (diff) | |
parent | 916d67d2664b0262cd03b28ad0c694924dd09b13 (diff) |
Merge branch 'develop'v1.2.1
Change-Id: I58fa595eee1cf9ab934cb3187981355d6a856d05
Diffstat (limited to 'tests/galaxy/cumulativedistributor.h')
-rw-r--r-- | tests/galaxy/cumulativedistributor.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/galaxy/cumulativedistributor.h b/tests/galaxy/cumulativedistributor.h new file mode 100644 index 00000000..6e3a2f2c --- /dev/null +++ b/tests/galaxy/cumulativedistributor.h @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd +** All rights reserved. +** For any questions to The Qt Company, 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 The Qt Company. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.io +** +****************************************************************************/ + +/* + * Galaxy creation code obtained from http://beltoforion.de/galaxy/galaxy_en.html + * Thanks to Ingo Berg, great work. + * Licensed under a Creative Commons Attribution 3.0 License + * http://creativecommons.org/licenses/by/3.0/ + */ + +#ifndef CUMULATIVEDISTRIBUTOR_H +#define CUMULATIVEDISTRIBUTOR_H + +#include <QtCore/qglobal.h> +#include <QtGui/QVector2D> +#include <QtCore/QVector> + +class CumulativeDistributor +{ +public: + typedef qreal (CumulativeDistributor::*dist_fun_t)(qreal x); + + CumulativeDistributor(); + virtual ~CumulativeDistributor(); + + qreal PropFromVal(qreal fVal); + qreal ValFromProp(qreal fVal); + + void setupRealistic(qreal I0, qreal k, qreal a, qreal RBulge, qreal min, + qreal max, int nSteps); + qreal valFromProp(qreal fVal); + +private: + dist_fun_t m_pDistFun; + qreal m_fMin; + qreal m_fMax; + qreal m_fWidth; + int m_nSteps; + + // parameters for realistic star distribution + qreal m_I0; + qreal m_k; + qreal m_a; + qreal m_RBulge; + + QVector<qreal> m_vM1; + QVector<qreal> m_vY1; + QVector<qreal> m_vX1; + + QVector<qreal> m_vM2; + QVector<qreal> m_vY2; + QVector<qreal> m_vX2; + + void buildCDF(int nSteps); + + qreal IntensityBulge(qreal R, qreal I0, qreal k); + qreal IntensityDisc(qreal R, qreal I0, qreal a); + qreal Intensity(qreal x); +}; + +#endif // CUMULATIVEDISTRIBUTOR_H |