![]() |
Stellarium
0.20.4
|
Data Structures | |
struct | PlanetOBJModel |
Public Types | |
enum | PlanetType { isStar, isPlanet, isMoon, isObserver, isArtificial, isAsteroid, isPlutino, isComet, isDwarfPlanet, isCubewano, isSDO, isOCO, isSednoid, isInterstellar, isUNDEFINED } |
numeric typecodes for the type descriptions in ssystem.ini | |
enum | PlanetOrbitColorStyle { ocsOneColor, ocsGroups, ocsMajorPlanets } |
enum | ApparentMagnitudeAlgorithm { Mueller_1893, AstronomicalAlmanac_1984, ExplanatorySupplement_1992, ExplanatorySupplement_2013, UndefinedAlgorithm, Generic } |
![]() | |
enum | InfoStringGroupFlags { None = 0x00000000, Name = 0x00000001, CatalogNumber = 0x00000002, Magnitude = 0x00000004, RaDecJ2000 = 0x00000008, RaDecOfDate = 0x00000010, AltAzi = 0x00000020, Distance = 0x00000040, Elongation = 0x00000080, Size = 0x00000100, Velocity = 0x00000200, ProperMotion = 0x00000400, Extra = 0x00000800, HourAngle = 0x00001000, AbsoluteMagnitude = 0x00002000, GalacticCoord = 0x00004000, SupergalacticCoord = 0x00008000, OtherCoord = 0x00010000, ObjectType = 0x00020000, EclipticCoordJ2000 = 0x00040000, EclipticCoordOfDate = 0x00080000, IAUConstellation = 0x00100000, SiderealTime = 0x00200000, RTSTime = 0x00400000, Script = 0x00800000, DebugAid = 0x01000000, NoFont = 0x02000000, PlainText = 0x04000000 } |
Used as named bitfield flags as specifiers to filter results of getInfoString. More... | |
Public Member Functions | |
Planet (const QString &englishName, double equatorialRadius, double oblateness, Vec3f halocolor, float albedo, float roughness, const QString &texMapName, const QString &normalMapName, const QString &objModelName, posFuncType _coordFunc, Orbit *anOrbitPtr, OsculatingFunctType *osculatingFunc, bool closeOrbit, bool hidden, bool hasAtmosphere, bool hasHalo, const QString &pTypeStr) | |
virtual QString | getInfoString (const StelCore *core, const InfoStringGroup &flags) const Q_DECL_OVERRIDE |
Get a string with data about the Planet. More... | |
virtual QVariantMap | getInfoMap (const StelCore *core) const Q_DECL_OVERRIDE |
In addition to the entries from StelObject::getInfoMap(), Planet objects provide. More... | |
virtual double | getCloseViewFov (const StelCore *core) const Q_DECL_OVERRIDE |
Return the best FOV in degree to use for a close view of the object. | |
virtual double | getSatellitesFov (const StelCore *core) const Q_DECL_OVERRIDE |
Return the best FOV in degree to use for a global view of the object satellite system (if there are satellites) | |
virtual double | getParentSatellitesFov (const StelCore *core) const Q_DECL_OVERRIDE |
virtual float | getVMagnitude (const StelCore *core) const Q_DECL_OVERRIDE |
Return object's apparent V magnitude as seen from observer, without including extinction. | |
virtual float | getSelectPriority (const StelCore *core) const Q_DECL_OVERRIDE |
Return a priority value which is used to discriminate objects by priority As for magnitudes, the lower is the higher priority. | |
virtual Vec3f | getInfoColor (void) const Q_DECL_OVERRIDE |
Get a color used to display info about the object. | |
virtual QString | getType (void) const Q_DECL_OVERRIDE |
Return object's type. It should be the name of the class. | |
virtual QString | getID (void) const Q_DECL_OVERRIDE |
Returns a unique identifier for this object. More... | |
virtual Vec3d | getJ2000EquatorialPos (const StelCore *core) const Q_DECL_OVERRIDE |
Get observer-centered equatorial coordinates at equinox J2000. | |
virtual QString | getEnglishName (void) const Q_DECL_OVERRIDE |
Return object's name in english. | |
virtual QString | getNameI18n (void) const Q_DECL_OVERRIDE |
Return translated object's name. | |
QString | getCommonEnglishName (void) const |
QString | getCommonNameI18n (void) const |
virtual double | getAngularSize (const StelCore *core) const Q_DECL_OVERRIDE |
Get angular semidiameter, degrees. If planet display is artificially enlarged (e.g. Moon upscale), value will also be increased. | |
virtual bool | hasAtmosphere (void) |
virtual bool | hasHalo (void) |
float | getAxisRotation (void) |
virtual void | translateName (const StelTranslator &trans) |
return axisRotation last computed in computeTransMatrix(). More... | |
virtual void | draw (StelCore *core, float maxMagLabels, const QFont &planetNameFont) |
double | getEquatorialRadius (void) const |
Get the equator radius of the planet in AU. More... | |
double | getOneMinusOblateness (void) const |
Get the value (1-f) for oblateness f. | |
double | getPolarRadius (void) const |
Get the polar radius of the planet in AU. More... | |
double | getSiderealDay (void) const |
Get duration of sidereal day. | |
virtual double | getSiderealPeriod (void) const |
Get duration of sidereal year. | |
double | getMeanSolarDay (void) const |
Get duration of mean solar day, in earth days. | |
double | getAlbedo (void) const |
Get albedo. | |
const QString & | getTextMapName () const |
const QString | getPlanetTypeString () const |
PlanetType | getPlanetType () const |
Orbit * | getOrbit () const |
void | setNativeName (QString planet) |
void | setIAUMoonNumber (QString designation) |
set the IAU moon number (designation of the moon), if any. | |
float | getAbsoluteMagnitude () const |
Return the absolute magnitude (read from file ssystem.ini) | |
float | getMeanOppositionMagnitude () const |
Return the mean opposition magnitude, defined as V(1,0)+5log10(a(a-1)) A return value of 100 signals invalid result. More... | |
double | getSiderealTime (double JD, double JDE) const |
Compute the z rotation to use from equatorial to geographic coordinates. More... | |
Mat4d | getRotEquatorialToVsop87 (void) const |
void | setRotEquatorialToVsop87 (const Mat4d &m) |
const RotationElements & | getRotationElements (void) const |
void | setRotationElements (float _period, float _offset, double _epoch, float _obliquity, float _ascendingNode, float _precessionRate, double _siderealPeriod) |
double | getRotAscendingNode (void) const |
double | getRotObliquity (double JDE) const |
virtual void | computePosition (const double dateJDE) |
Compute the position in the parent Planet coordinate system. | |
void | computeTransMatrix (double JD, double JDE) |
Compute the transformation matrix from the local Planet coordinate to the parent Planet coordinate. More... | |
double | getPhaseAngle (const Vec3d &obsPos) const |
Get the phase angle (radians) for an observer at pos obsPos in heliocentric coordinates (in AU) | |
double | getElongation (const Vec3d &obsPos) const |
Get the elongation angle (radians) for an observer at pos obsPos in heliocentric coordinates (in AU) | |
double | getSpheroidAngularSize (const StelCore *core) const |
Get the angular radius (degrees) of the planet spheroid (i.e. without the rings) | |
float | getPhase (const Vec3d &obsPos) const |
Get the planet phase (illuminated fraction of the planet disk, [0=dark..1=full]) for an observer at pos obsPos in heliocentric coordinates (in AU) | |
Vec3d | getEclipticPos (double dateJDE) const |
Get the Planet position in the parent Planet ecliptic coordinate in AU. | |
Vec3d | getEclipticPos () const |
Vec3d | getHeliocentricEclipticPos () const |
Return the heliocentric ecliptical position. | |
Vec3d | getHeliocentricEclipticPos (double dateJDE) const |
Vec3d | getHeliocentricPos (Vec3d p) const |
Return the heliocentric transformation for local (parentocentric) coordinate. More... | |
void | setHeliocentricEclipticPos (const Vec3d &pos) |
Propagate the heliocentric coordinates to parentocentric coordinates. More... | |
Vec3d | getEclipticVelocity () const |
Get the planet velocity around the parent planet in ecliptical coordinates in AU/d. | |
Vec3d | getHeliocentricEclipticVelocity () const |
Get the planet's heliocentric velocity in the solar system in ecliptical coordinates in AU/d. Required for aberration! | |
double | computeDistance (const Vec3d &obsHelioPos) |
Compute and return the distance to the given position in heliocentric ecliptical (J2000) coordinates (in AU) | |
double | getDistance (void) const |
Return the last computed distance to the given position in heliocentric ecliptical (J2000) coordinates (in AU) | |
void | setRings (Ring *r) |
void | setSphereScale (double s) |
double | getSphereScale () const |
const QSharedPointer< Planet > | getParent (void) const |
virtual void | update (int deltaTime) |
void | setFlagHints (bool b) |
bool | getFlagHints (void) const |
void | setFlagLabels (bool b) |
bool | getFlagLabels (void) const |
void | setFlagNativeName (bool b) |
bool | getFlagNativeName (void) const |
void | setFlagTranslatedName (bool b) |
bool | getFlagTranslatedName (void) const |
void | setFlagOrbits (bool b) |
bool | getFlagOrbits (void) const |
void | drawOrbit (const StelCore *) |
QVector< const Planet * > | getCandidatesForShadow () const |
Return the list of planets which project some shadow on this planet. | |
![]() | |
virtual SphericalRegionP | getRegion () const |
Default implementation of the getRegion method. More... | |
virtual Vec3d | getPointInRegion () const |
Default implementation of the getPointInRegion method. More... | |
Vec3d | getEquinoxEquatorialPos (const StelCore *core) const |
Get observer-centered equatorial coordinate at the current equinox The frame has its Z axis at the planet's current rotation axis At time 2000-01-01 this frame is almost the same as J2000, but ONLY if the observer is on earth. | |
Vec3d | getEquinoxEquatorialPosApparent (const StelCore *core) const |
Like getEquinoxEquatorialPos(core), but always adds refraction correction to the position. | |
Vec3d | getEquinoxEquatorialPosAuto (const StelCore *core) const |
Like getEquinoxEquatorialPos(core), but adds refraction correction to the position if atmosphere is active. | |
Vec3d | getGalacticPos (const StelCore *core) const |
Get observer-centered galactic coordinates. | |
Vec3d | getSupergalacticPos (const StelCore *core) const |
Get observer-centered supergalactic coordinates. | |
Vec3d | getSiderealPosGeometric (const StelCore *core) const |
Get observer-centered hour angle + declination (at current equinox) It is the geometric position, i.e. More... | |
Vec3d | getSiderealPosApparent (const StelCore *core) const |
Get observer-centered hour angle + declination (at current equinox) It is the apparent position, i.e. More... | |
Vec3d | getAltAzPosGeometric (const StelCore *core) const |
Get observer-centered alt/az position It is the geometric position, i.e. More... | |
Vec3d | getAltAzPosApparent (const StelCore *core) const |
Get observer-centered alt/az position It is the apparent position, i.e. More... | |
Vec3d | getAltAzPosAuto (const StelCore *core) const |
Get observer-centered alt/az position It is the automatic position, i.e. More... | |
float | getParallacticAngle (const StelCore *core) const |
Get parallactic angle, which is the deviation between zenith angle and north angle. [radians]. | |
bool | isAboveHorizon (const StelCore *core) const |
Checking position an object above mathematical horizon for current location. More... | |
bool | isAboveRealHorizon (const StelCore *core) const |
Checking position an object above real horizon for current location. More... | |
Vec3f | getRTSTime (StelCore *core) const |
Get today's time of rise, transit and set for celestial object for current location. More... | |
float | getVMagnitudeWithExtinction (const StelCore *core) const |
Return object's apparent V magnitude as seen from observer including extinction. More... | |
Static Public Member Functions | |
static void | init () |
Initializes static vars. Must be called before creating first planet. | |
static ApparentMagnitudeAlgorithm | getApparentMagnitudeAlgorithm () |
static const QString | getApparentMagnitudeAlgorithmString () |
static void | setApparentMagnitudeAlgorithm (QString algorithm) |
static void | setApparentMagnitudeAlgorithm (ApparentMagnitudeAlgorithm algorithm) |
static float | getPAsun (const Vec3d &sunPos, const Vec3d &objPos) |
Get the position angle of the illuminated limb of a planet The result depends on the arguments' coordinate system which must be identical. More... | |
static void | setLabelColor (const Vec3f &lc) |
static const Vec3f & | getLabelColor (void) |
static void | setOrbitColor (const Vec3f &oc) |
static const Vec3f & | getOrbitColor () |
static void | setMajorPlanetOrbitColor (const Vec3f &oc) |
static const Vec3f & | getMajorPlanetOrbitColor () |
static void | setMoonOrbitColor (const Vec3f &oc) |
static const Vec3f & | getMoonOrbitColor () |
static void | setMinorPlanetOrbitColor (const Vec3f &oc) |
static const Vec3f & | getMinorPlanetOrbitColor () |
static void | setDwarfPlanetOrbitColor (const Vec3f &oc) |
static const Vec3f & | getDwarfPlanetOrbitColor () |
static void | setCubewanoOrbitColor (const Vec3f &oc) |
static const Vec3f & | getCubewanoOrbitColor () |
static void | setPlutinoOrbitColor (const Vec3f &oc) |
static const Vec3f & | getPlutinoOrbitColor () |
static void | setScatteredDiscObjectOrbitColor (const Vec3f &oc) |
static const Vec3f & | getScatteredDiscObjectOrbitColor () |
static void | setOortCloudObjectOrbitColor (const Vec3f &oc) |
static const Vec3f & | getOortCloudObjectOrbitColor () |
static void | setCometOrbitColor (const Vec3f &oc) |
static const Vec3f & | getCometOrbitColor () |
static void | setSednoidOrbitColor (const Vec3f &oc) |
static const Vec3f & | getSednoidOrbitColor () |
static void | setInterstellarOrbitColor (const Vec3f &oc) |
static const Vec3f & | getInterstellarOrbitColor () |
static void | setMercuryOrbitColor (const Vec3f &oc) |
static const Vec3f & | getMercuryOrbitColor () |
static void | setVenusOrbitColor (const Vec3f &oc) |
static const Vec3f & | getVenusOrbitColor () |
static void | setEarthOrbitColor (const Vec3f &oc) |
static const Vec3f & | getEarthOrbitColor () |
static void | setMarsOrbitColor (const Vec3f &oc) |
static const Vec3f & | getMarsOrbitColor () |
static void | setJupiterOrbitColor (const Vec3f &oc) |
static const Vec3f & | getJupiterOrbitColor () |
static void | setSaturnOrbitColor (const Vec3f &oc) |
static const Vec3f & | getSaturnOrbitColor () |
static void | setUranusOrbitColor (const Vec3f &oc) |
static const Vec3f & | getUranusOrbitColor () |
static void | setNeptuneOrbitColor (const Vec3f &oc) |
static const Vec3f & | getNeptuneOrbitColor () |
Data Fields | |
bool | flagNativeName |
bool | flagTranslatedName |
LinearFader | orbitFader |
Vec3d | orbit [ORBIT_SEGMENTS+1] |
double | deltaJDE |
double | deltaOrbitJDE |
bool | closeOrbit |
Static Public Attributes | |
static const QString | PLANET_TYPE |
static Vec3f | orbitColor |
static Vec3f | orbitMajorPlanetsColor |
static Vec3f | orbitMoonsColor |
static Vec3f | orbitMinorPlanetsColor |
static Vec3f | orbitDwarfPlanetsColor |
static Vec3f | orbitCubewanosColor |
static Vec3f | orbitPlutinosColor |
static Vec3f | orbitScatteredDiscObjectsColor |
static Vec3f | orbitOortCloudObjectsColor |
static Vec3f | orbitCometsColor |
static Vec3f | orbitSednoidsColor |
static Vec3f | orbitInterstellarColor |
static Vec3f | orbitMercuryColor |
static Vec3f | orbitVenusColor |
static Vec3f | orbitEarthColor |
static Vec3f | orbitMarsColor |
static Vec3f | orbitJupiterColor |
static Vec3f | orbitSaturnColor |
static Vec3f | orbitUranusColor |
static Vec3f | orbitNeptuneColor |
static PlanetOrbitColorStyle | orbitColorStyle |
![]() | |
static const InfoStringGroupFlags | AllInfo |
A pre-defined set of specifiers for the getInfoString flags argument to getInfoString. More... | |
static const InfoStringGroupFlags | ShortInfo = static_cast<InfoStringGroupFlags>(Name|CatalogNumber|Magnitude|RaDecJ2000) |
A pre-defined set of specifiers for the getInfoString flags argument to getInfoString. | |
Protected Member Functions | |
virtual QString | getInfoStringName (const StelCore *core, const InfoStringGroup &flags) const |
virtual QString | getInfoStringAbsoluteMagnitude (const StelCore *core, const InfoStringGroup &flags) const |
virtual QString | getInfoStringExtraMag (const StelCore *core, const InfoStringGroup &flags) const |
Any flag=Extra information to be displayed after the magnitude strings. | |
virtual QString | getInfoStringSize (const StelCore *core, const InfoStringGroup &flags) const |
Any flag=Size information to be displayed. | |
virtual QString | getInfoStringEloPhase (const StelCore *core, const InfoStringGroup &flags, const bool withIllum) const |
Return elongation and phase angle when flags=Elongation. | |
virtual QString | getInfoStringPeriods (const StelCore *core, const InfoStringGroup &flags) const |
Return sidereal and synodic periods when flags=Extra. | |
virtual QString | getInfoStringExtra (const StelCore *core, const InfoStringGroup &flags) const |
Any flag=Extra information to be displayed at the end. | |
void | computeModelMatrix (Mat4d &result) const |
void | computeOrbit () |
Update the orbit position values. | |
Vec3f | getCurrentOrbitColor () const |
QString | getSkyLabel (const StelCore *core) const |
void | draw3dModel (StelCore *core, StelProjector::ModelViewTranformP transfo, float screenSz, bool drawOnlyRing=false) |
bool | drawObjModel (StelPainter *painter, float screenSz) |
bool | drawObjShadowMap (StelPainter *painter, QMatrix4x4 &shadowMatrix) |
bool | ensureObjLoaded () |
Starts the OBJ loading process, if it has not been done yet. More... | |
void | drawSphere (StelPainter *painter, float screenSz, bool drawOnlyRing=false) |
void | drawSurvey (StelCore *core, StelPainter *painter) |
void | drawHints (const StelCore *core, const QFont &planetNameFont) |
PlanetOBJModel * | loadObjModel () const |
![]() | |
QString | getCommonInfoString (const StelCore *core, const InfoStringGroup &flags) const |
Format the positional info string containing J2000/of date/altaz/hour angle positions and constellation, sidereal time, etc. More... | |
virtual QString | getMagnitudeInfoString (const StelCore *core, const InfoStringGroup &flags, const double alt_app, const int decimals=1) const |
Format the magnitude info string for the object. More... | |
void | postProcessInfoString (QString &str, const InfoStringGroup &flags) const |
Apply post processing on the info string. More... | |
Protected Attributes | |
QString | englishName |
QString | nameI18 |
QString | nativeName |
QString | texMapName |
QString | normalMapName |
RotationElements | re |
double | equatorialRadius |
double | oneMinusOblateness |
Vec3d | eclipticPos |
Vec3d | eclipticVelocity |
Vec3d | screenPos |
Vec3f | haloColor |
float | absoluteMagnitude |
float | albedo |
float | roughness |
float | outgas_intensity |
float | outgas_falloff |
Mat4d | rotLocalToParent |
float | axisRotation |
StelTextureSP | texMap |
StelTextureSP | normalMap |
PlanetOBJModel * | objModel |
QFuture< PlanetOBJModel * > * | objModelLoader |
QString | objModelPath |
HipsSurveyP | survey |
Ring * | rings |
double | distance |
double | sphereScale |
double | lastJDE |
posFuncType | coordFunc |
Orbit * | orbitPtr |
OsculatingFunctType *const | osculatingFunc |
QSharedPointer< Planet > | parent |
QList< QSharedPointer< Planet > > | satellites |
LinearFader | hintFader |
LinearFader | labelsFader |
bool | flagLabels |
bool | hidden |
bool | atmosphere |
bool | halo |
PlanetType | pType |
bool | multisamplingEnabled_ |
QOpenGLFunctions * | gl |
Static Protected Attributes | |
static StelTextureSP | texEarthShadow |
static ApparentMagnitudeAlgorithm | vMagAlgorithm |
static bool | shaderError |
static Vec3f | labelColor |
static StelTextureSP | hintCircleTex |
static const QMap< PlanetType, QString > | pTypeMap |
static const QMap< ApparentMagnitudeAlgorithm, QString > | vMagAlgorithmMap |
static bool | drawMoonHalo |
static bool | permanentDrawingOrbits |
If true, planet orbits will be drawn even if planet is off screen. | |
static bool | flagCustomGrsSettings |
static double | customGrsJD |
static int | customGrsLongitude |
static double | customGrsDrift |
static int | orbitsThickness |
Friends | |
class | SolarSystem |
Additional Inherited Members | |
![]() | |
virtual void | setExtraInfoString (const InfoStringGroup &flags, const QString &str) |
Allow additions to the Info String. More... | |
virtual void | addToExtraInfoString (const StelObject::InfoStringGroup &flags, const QString &str) |
Add str to the extra string. More... | |
QStringList | getExtraInfoStrings (const InfoStringGroup &flags) const |
Retrieve an (unsorted) QStringList of all extra info strings that match flags. More... | |
void | removeExtraInfoStrings (const InfoStringGroup &flags) |
Remove the extraInfoStrings with the given flags. More... | |
void Planet::computeTransMatrix | ( | double | JD, |
double | JDE | ||
) |
This requires both flavours of JD in cases involving Earth.
|
protected |
Returns true when the OBJ is ready to draw
|
inline |
|
inlinevirtual |
The ID should be unique for all objects of the same type, but may freely conflict with IDs of other types, so getType() must also be tested.
With this it should be possible to at least identify the same object in a different instance of Stellarium running the same version, but it would even be better if the ID provides some degree of forward-compatibility. For some object types (e.g. planets) this may simply return getEnglishName(), but better candidates may be official designations or at least (stable) internal IDs.
An object may have multiple IDs (different catalog numbers, etc). StelObjectMgr::searchByID() should search through all ID variants, but this method only returns one of them.
Implements StelObject.
|
virtual |
Reimplemented from StelObject.
Reimplemented in Comet.
|
virtual |
Planets support the following InfoStringGroup flags:
core | the StelCore object |
flags | a set of InfoStringGroup items to include in the return value. |
Implements StelObject.
float Planet::getMeanOppositionMagnitude | ( | ) | const |
E.g. if both are equatorial for equinox of date or J2000, the angle is zero when the bright limb is towards the north of the disk. An angle of 90° indicates a bright limb on the eastern limb, like an old moon. Source: Meeus, Astr.Algorithms (2nd ed.), 48.5.
|
inline |
double Planet::getSiderealTime | ( | double | JD, |
double | JDE | ||
) | const |
For general applicability we need both time flavours:
JD | is JD(UT) for Earth |
JDE | is used for other locations |
void Planet::setHeliocentricEclipticPos | ( | const Vec3d & | pos | ) |
|
virtual |
Translate planet name using the passed translator
Reimplemented in Comet, and MinorPlanet.