20 #ifndef _STELCORE_HPP_
21 #define _STELCORE_HPP_
23 #include "StelProjector.hpp"
25 #include "StelLocation.hpp"
26 #include "StelSkyDrawer.hpp"
28 #include <QStringList>
49 Q_ENUMS(ProjectionType)
50 Q_ENUMS(DeltaTAlgorithm)
59 FrameHeliocentricEcliptic,
60 FrameObservercentricEcliptic,
71 ProjectionPerspective,
73 ProjectionStereographic,
78 ProjectionOrthographic
97 AstronomicalEphemeris,
102 MorrisonStephenson1982,
103 StephensonMorrison1984,
109 StephensonMorrison1995,
116 MorrisonStephenson2004,
130 void update(
double deltaTime);
133 void windowHasBeenResized(
float x,
float y,
float width,
float height);
147 StelProjectorP getProjection(FrameType frameType, RefractionMode refractionMode=RefractionAuto)
const;
172 void setClippingPlanes(
double znear,
double zfar);
174 void getClippingPlanes(
double* zn,
double* zf)
const;
177 QString projectionTypeKeyToNameI18n(
const QString& key)
const;
180 QString projectionNameI18nToTypeKey(
const QString& nameI18n)
const;
188 void lookAtJ2000(
const Vec3d& pos,
const Vec3d& up);
190 Vec3d altAzToEquinoxEqu(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
191 Vec3d equinoxEquToAltAz(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
192 Vec3d altAzToJ2000(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
193 Vec3d j2000ToAltAz(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
195 Vec3d equinoxEquToJ2000(
const Vec3d& v)
const;
196 Vec3d j2000ToEquinoxEqu(
const Vec3d& v)
const;
200 Vec3d heliocentricEclipticToAltAz(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
203 Vec3d heliocentricEclipticToEquinoxEqu(
const Vec3d& v)
const;
206 Vec3d heliocentricEclipticToEarthPosEquinoxEqu(
const Vec3d& v)
const;
227 static const Mat4d matJ2000ToVsop87;
229 static const Mat4d matVsop87ToJ2000;
231 static const Mat4d matJ2000ToGalactic;
233 static const Mat4d matGalacticToJ2000;
236 Vec3d getObserverHeliocentricEclipticPos()
const;
241 const QSharedPointer<class Planet> getCurrentPlanet()
const;
248 void moveObserverTo(
const StelLocation& target,
double duration=1.,
double durationIfPlanetChange=1.);
251 static const double JD_SECOND;
252 static const double JD_MINUTE;
253 static const double JD_HOUR;
254 static const double JD_DAY;
258 double getLocalSideralTime()
const;
261 double getLocalSideralDayLength()
const;
264 QString getStartupTimeMode();
265 void setStartupTimeMode(
const QString& s);
271 double getDeltaT(
double jDay)
const;
277 QString getCurrentDeltaTAlgorithmValidRange(
double jDay, QString* marker)
const;
282 ProjectionType getCurrentProjectionType()
const;
517 ProjectionType currentProjectionType;
520 DeltaTAlgorithm currentDeltaTAlgorithm;
525 void updateTransformMatrices();
526 void updateTime(
double deltaTime);
529 Mat4d matHeliocentricEclipticToAltAz;
530 Mat4d matAltAzToHeliocentricEcliptic;
531 Mat4d matAltAzToEquinoxEqu;
532 Mat4d matEquinoxEquToAltAz;
533 Mat4d matHeliocentricEclipticToEquinoxEqu;
534 Mat4d matEquinoxEquToJ2000;
535 Mat4d matJ2000ToEquinoxEqu;
536 Mat4d matJ2000ToAltAz;
538 Mat4d matAltAzModelView;
539 Mat4d invertMatAltAzModelView;
544 QString defaultLocationID;
549 double presetSkyTime;
551 QString startupTimeMode;
554 Vec3f customEquationCoeff;
560 #endif // _STELCORE_HPP_