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,
132 void update(
double deltaTime);
135 void windowHasBeenResized(
float x,
float y,
float width,
float height);
149 StelProjectorP getProjection(FrameType frameType, RefractionMode refractionMode=RefractionAuto)
const;
174 void setClippingPlanes(
double znear,
double zfar);
176 void getClippingPlanes(
double* zn,
double* zf)
const;
179 QString projectionTypeKeyToNameI18n(
const QString& key)
const;
182 QString projectionNameI18nToTypeKey(
const QString& nameI18n)
const;
190 void lookAtJ2000(
const Vec3d& pos,
const Vec3d& up);
192 Vec3d altAzToEquinoxEqu(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
193 Vec3d equinoxEquToAltAz(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
194 Vec3d altAzToJ2000(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
195 Vec3d j2000ToAltAz(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
197 Vec3d equinoxEquToJ2000(
const Vec3d& v)
const;
198 Vec3d j2000ToEquinoxEqu(
const Vec3d& v)
const;
202 Vec3d heliocentricEclipticToAltAz(
const Vec3d& v, RefractionMode refMode=RefractionAuto)
const;
205 Vec3d heliocentricEclipticToEquinoxEqu(
const Vec3d& v)
const;
208 Vec3d heliocentricEclipticToEarthPosEquinoxEqu(
const Vec3d& v)
const;
229 static const Mat4d matJ2000ToVsop87;
231 static const Mat4d matVsop87ToJ2000;
233 static const Mat4d matJ2000ToGalactic;
235 static const Mat4d matGalacticToJ2000;
238 Vec3d getObserverHeliocentricEclipticPos()
const;
243 const QSharedPointer<class Planet> getCurrentPlanet()
const;
250 void moveObserverTo(
const StelLocation& target,
double duration=1.,
double durationIfPlanetChange=1.);
253 static const double JD_SECOND;
254 static const double JD_MINUTE;
255 static const double JD_HOUR;
256 static const double JD_DAY;
260 double getLocalSideralTime()
const;
263 double getLocalSideralDayLength()
const;
266 double getLocalSideralYearLength()
const;
269 QString getStartupTimeMode();
270 void setStartupTimeMode(
const QString& s);
276 double getDeltaT(
double jDay)
const;
282 QString getCurrentDeltaTAlgorithmValidRange(
double jDay, QString* marker)
const;
287 ProjectionType getCurrentProjectionType()
const;
522 ProjectionType currentProjectionType;
525 DeltaTAlgorithm currentDeltaTAlgorithm;
530 void updateTransformMatrices();
531 void updateTime(
double deltaTime);
534 Mat4d matHeliocentricEclipticToAltAz;
535 Mat4d matAltAzToHeliocentricEcliptic;
536 Mat4d matAltAzToEquinoxEqu;
537 Mat4d matEquinoxEquToAltAz;
538 Mat4d matHeliocentricEclipticToEquinoxEqu;
539 Mat4d matEquinoxEquToJ2000;
540 Mat4d matJ2000ToEquinoxEqu;
541 Mat4d matJ2000ToAltAz;
543 Mat4d matAltAzModelView;
544 Mat4d invertMatAltAzModelView;
549 QString defaultLocationID;
554 double presetSkyTime;
556 QString startupTimeMode;
559 Vec3f customEquationCoeff;
565 #endif // _STELCORE_HPP_