21 #ifndef _ASTROCALCDIALOG_HPP_ 22 #define _ASTROCALCDIALOG_HPP_ 25 #include <QTreeWidget> 26 #include <QTreeWidgetItem> 31 #include "StelDialog.hpp" 32 #include "StelCore.hpp" 34 #include "SolarSystem.hpp" 36 #include "NebulaMgr.hpp" 37 #include "StarMgr.hpp" 39 class Ui_astroCalcDialogForm;
40 class QListWidgetItem;
86 static QVector<Vec3d> EphemerisListJ2000;
87 static QVector<QString> EphemerisListDates;
88 static int DisplayedPositionIndex;
96 Ui_astroCalcDialogForm *ui;
100 void currentPlanetaryPositions();
101 void selectCurrentPlanetaryPosition(
const QModelIndex &modelIndex);
102 void onChangedEphemerisPosition(
const QModelIndex &modelIndex);
105 void generateEphemeris();
106 void cleanupEphemeris();
107 void selectCurrentEphemeride(
const QModelIndex &modelIndex);
108 void saveEphemeris();
111 void calculatePhenomena();
112 void selectCurrentPhenomen(
const QModelIndex &modelIndex);
113 void savePhenomena();
115 void drawAltVsTimeDiagram();
116 void drawCurrentTimeDiagram();
117 void mouseOverLine(QMouseEvent *event);
119 void changePage(QListWidgetItem *current, QListWidgetItem *previous);
121 void updateSolarSystemData();
129 QTimer *currentTimeLine;
132 void setPlanetaryPositionsHeaderNames();
134 void setEphemerisHeaderNames();
136 void setPhenomenaHeaderNames();
139 void initListPlanetaryPositions();
141 void initListEphemeris();
143 void initListPhenomena();
149 void populateCelestialBodyList();
151 void populateEphemerisTimeStepsList();
153 void populateMajorPlanetList();
155 void populateGroupCelestialBodyList();
157 void prepareAxesAndGraph();
163 QMap<double, double> findClosestApproach(PlanetP& object1, PlanetP& object2,
double startJD,
double stopJD,
double maxSeparation,
bool opposition);
164 double findDistance(
double JD, PlanetP object1, PlanetP object2,
bool opposition);
165 bool findPrecise(QPair<double, double>* out, PlanetP object1, PlanetP object2,
double JD,
double step,
int prevSign,
bool opposition);
166 void fillPhenomenaTable(
const QMap<double, double> list,
const PlanetP object1,
const PlanetP object2,
bool opposition);
168 QMap<double, double> findClosestApproach(PlanetP& object1, NebulaP& object2,
double startJD,
double stopJD,
double maxSeparation);
169 double findDistance(
double JD, PlanetP object1, NebulaP object2);
170 bool findPrecise(QPair<double, double>* out, PlanetP object1, NebulaP object2,
double JD,
double step,
int prevSign);
171 void fillPhenomenaTable(
const QMap<double, double> list,
const PlanetP object1,
const NebulaP object2);
173 QMap<double, double> findClosestApproach(PlanetP& object1,
StelObjectP& object2,
double startJD,
double stopJD,
double maxSeparation);
174 double findDistance(
double JD, PlanetP object1,
StelObjectP object2);
175 bool findPrecise(QPair<double, double>* out, PlanetP object1,
StelObjectP object2,
double JD,
double step,
int prevSign);
176 void fillPhenomenaTable(
const QMap<double, double> list,
const PlanetP object1,
const StelObjectP object2);
178 QString delimiter, acEndl;
179 QStringList ephemerisHeader, phenomenaHeader, planetaryPositionsHeader;
180 static float brightLimit;
181 static float minY, maxY;
185 void updateTabBarListWidgetWidth();
193 : QTreeWidgetItem(parent)
198 bool operator < (
const QTreeWidgetItem &other)
const 200 int column = treeWidget()->sortColumn();
204 return text(column).toFloat() < other.text(column).toFloat();
208 return text(column).toLower() < other.text(column).toLower();
213 #endif // _ASTROCALCDIALOG_HPP_ EphemerisColumns
Defines the number and the order of the columns in the ephemeris table.
date and time of ephemeris
Main class for Stellarium core processing.
Base class for all the GUI windows in Stellarium.
PhenomenaColumns
Defines the number and the order of the columns in the phenomena table.
This StelObjectModule derivative is used to model SolarSystem bodies.
virtual void createDialogContent()
Initialize the dialog widgets and connect the signals/slots.
date and time of ephemeris
Stores the star catalogue data.
Manage the selection and queries on one or more StelObjects.
void styleChanged()
Notify that the application style changed.
PlanetaryPositionsColumns
Defines the number and the order of the columns in the table that lists planetary positions...
Manage a collection of nebulae.