Stellarium
HEAD
|
The base abstract class for sky objects used in Stellarium like Stars, Planets, Constellations etc... More...
#include <StelObject.hpp>
Public Types | |
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 , SolarLunarPosition = 0x00800000 , Script = 0x01000000 , DebugAid = 0x02000000 , NoFont = 0x04000000 , PlainText = 0x08000000 } |
Used as named bitfield flags as specifiers to filter results of getInfoString. More... | |
Public Slots | |
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... | |
Public Member Functions | |
SphericalRegionP | getRegion () const override |
Default implementation of the getRegion method. More... | |
Vec3d | getPointInRegion () const override |
Default implementation of the getPointInRegion method. More... | |
virtual QString | getInfoString (const StelCore *core, const InfoStringGroup &flags=StelObject::AllInfo) const =0 |
Write I18n information about the object in QString. More... | |
virtual QVariantMap | getInfoMap (const StelCore *core) const |
Return a key/value map with data about an object's position, magnitude and so on. More... | |
virtual QString | getType () const =0 |
Return object's type. It should be the name of the class. | |
virtual QString | getObjectType () const =0 |
Return object's type. More... | |
virtual QString | getObjectTypeI18n () const =0 |
Return object's type. It should be translated lowercase name of the type of the object. | |
virtual QString | getID () const =0 |
Returns a unique identifier for this object. More... | |
virtual QString | getEnglishName () const =0 |
Return object's name in english. | |
virtual QString | getNameI18n () const =0 |
Return translated object's name. | |
virtual Vec3d | getJ2000EquatorialPos (const StelCore *core) const =0 |
Get observer-centered equatorial coordinates at equinox J2000, including aberration. | |
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... | |
virtual Vec4d | getRTSTime (const StelCore *core, const double altitude=0.) const |
Compute time of rise, transit and set for celestial object for current location. More... | |
virtual float | getVMagnitude (const StelCore *core) const |
Return object's apparent V magnitude as seen from observer, without including extinction. | |
float | getVMagnitudeWithExtinction (const StelCore *core, const float knownVMag=-1000.f) const |
Return object's apparent V magnitude as seen from observer including extinction. More... | |
virtual float | getSelectPriority (const StelCore *) const |
Return a priority value which is used to discriminate objects by priority As for magnitudes, the lower is the higher priority. | |
virtual Vec3f | getInfoColor () const |
Get a color used to display info about the object. | |
virtual double | getCloseViewFov (const StelCore *) const |
Return the best FOV in degree to use for a close view of the object. | |
virtual double | getSatellitesFov (const StelCore *) const |
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 *) const |
virtual double | getAngularRadius (const StelCore *core) const |
Return the angular radius of a circle containing the object as seen from the observer with the circle center assumed to be at getJ2000EquatorialPos(). More... | |
virtual float | getAirmass (const StelCore *core) const |
Return airmass value for the object (for atmosphere-dependent calculations) More... | |
Static Public Attributes | |
static constexpr InfoStringGroup | AllInfo |
A pre-defined "all available" set of specifiers for the getInfoString flags argument to getInfoString. More... | |
static constexpr InfoStringGroup | DefaultInfo |
A pre-defined "default" set of specifiers for the getInfoString flags argument to getInfoString It appears useful to propose this set as post-install settings and let users configure more on demand. More... | |
static constexpr InfoStringGroup | ShortInfo = static_cast<InfoStringGroup>(Name|CatalogNumber|Magnitude|RaDecJ2000) |
A pre-defined "shortest useful" set of specifiers for the getInfoString flags argument to getInfoString. | |
Protected Member Functions | |
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 int decimals=1) const |
Format the magnitude info string for the object. More... | |
QString | getSolarLunarInfoString (const StelCore *core, const InfoStringGroup &flags) const |
Add a section to the InfoString with just horizontal data for the Sun and Moon, when observed from Earth. More... | |
void | postProcessInfoString (QString &str, const InfoStringGroup &flags) const |
Apply post processing on the info string. More... | |
The base abstract class for sky objects used in Stellarium like Stars, Planets, Constellations etc...
Normally you should use StelObjectP instead of StelObject* which have by default the same behaviour, but which can be added reference counting if needed.
Used as named bitfield flags as specifiers to filter results of getInfoString.
The precise definition of these should be documented in the getInfoString documentation for the derived classes for all specifiers which are defined in that derivative. Use InfoStringGroup instead.
|
virtualslot |
Add str to the extra string.
This should be preferable over hard setting. Can be used by plugins to show extra info for the selected object, or for debugging. The strings will be shown in the InfoString for the selected object, below the default fields per-flag. Additional coordinates not fitting into one of the predefined coordinate sets should be flagged with OtherCoords, and must be adapted to table or non-table layout as required. The line ending must be given explicitly, usually just end a line with "<br/>", except when it may end up in a Table or appended to a line. See getCommonInfoString() or the respective getInfoString() in the subclasses for details of use.
|
virtual |
Return airmass value for the object (for atmosphere-dependent calculations)
core |
Get observer-centered alt/az position It is the apparent position, i.e.
taking the refraction effect into account. The frame has its Z axis at the zenith
Get observer-centered alt/az position It is the automatic position, i.e.
taking the refraction effect into account if atmosphere is on. The frame has its Z axis at the zenith
Get observer-centered alt/az position It is the geometric position, i.e.
without taking refraction effect into account. The frame has its Z axis at the zenith
|
inlinevirtual |
Return the angular radius of a circle containing the object as seen from the observer with the circle center assumed to be at getJ2000EquatorialPos().
Reimplemented in Planet, NomenclatureItem, Nebula, and Satellite.
|
protected |
Format the positional info string containing J2000/of date/altaz/hour angle positions and constellation, sidereal time, etc.
for the object FIXME: We should split this and provide shorter virtual methods for various parts of the InfoString. The ExtraInfoStrings should be placed per flag, where they best fit.
|
slot |
Retrieve an (unsorted) QStringList of all extra info strings that match flags.
Normally the order matches the order of addition, but this cannot be guaranteed.
|
pure virtual |
Returns a unique identifier for this object.
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.
Implemented in StarWrapper3, StarWrapper2, StarWrapper1, Planet, NomenclatureItem, CustomObject, Supernova, Satellite, Quasar, Pulsar, Nova, MissingStar, MeteorShower, Exoplanet, Nebula, and TelescopeClient.
|
virtual |
Return a key/value map with data about an object's position, magnitude and so on.
Useful in a context like scripting. Derived objects can add their own special information tags.
core | the current StelCore |
Reimplemented in StarWrapper1, Planet, Nebula, Comet, Supernova, Satellite, Quasar, Pulsar, Nova, MeteorShower, and Exoplanet.
|
pure virtual |
Write I18n information about the object in QString.
core | the StelCore object to use |
flags | a set of InfoStringGroup flags which are used to filter the return value - including specified types of information and altering the output format. |
Implemented in StarWrapper1, StarWrapperBase, Planet, NomenclatureItem, Nebula, CustomObject, TelescopeClient, Supernova, Satellite, Quasar, Pulsar, Nova, MissingStar, MeteorShower, and Exoplanet.
|
protectedvirtual |
|
pure virtual |
Return object's type.
It should be English lowercase name of the astronomical type of the object. The purpose of this string is a distinction or further refinement over object class name retrieved with getType(): Planet objects can be planets, moons, or even the Sun. The Sun should however return "star". Nebula objects should return their actual type like "open cluster", "galaxy", "nebula", ...
Implemented in StarWrapperBase, Planet, NomenclatureItem, CustomObject, TelescopeClient, Supernova, Satellite, Quasar, Pulsar, Nova, MissingStar, MeteorShower, Exoplanet, StarWrapper1, and Nebula.
|
inlineoverridevirtual |
Default implementation of the getPointInRegion method.
Return the J2000 Equatorial Position of the object.
Implements StelRegionObject.
|
inlineoverridevirtual |
Default implementation of the getRegion method.
Return the spatial region of the object.
Implements StelRegionObject.
|
virtual |
Compute time of rise, transit and set for celestial object for current location.
core | the currently active StelCore object |
altitude | (optional; default=0) altitude of the object, degrees. Setting this to -6. for the Sun will find begin and end for civil twilight. |
Reimplemented in Planet, and NomenclatureItem.
Get observer-centered hour angle + declination (at current equinox) It is the apparent position, i.e.
taking the refraction effect into account. The frame has its Z axis at the planet's current rotation axis
Get observer-centered hour angle + declination (at current equinox) It is the geometric position, i.e.
without taking refraction effect into account. The frame has its Z axis at the planet's current rotation axis
|
protected |
Add a section to the InfoString with just horizontal data for the Sun and Moon, when observed from Earth.
The application of this is to have quick info while observing other objects.
float StelObject::getVMagnitudeWithExtinction | ( | const StelCore * | core, |
const float | knownVMag = -1000.f |
||
) | const |
Return object's apparent V magnitude as seen from observer including extinction.
Extinction obviously only if atmosphere=on. If you already know vMag, it is wise to provide it in the optional
knownVMag. | Else it is called from getVMagnitude() which may be costly. |
bool StelObject::isAboveHorizon | ( | const StelCore * | core | ) | const |
Checking position an object above mathematical horizon for current location.
bool StelObject::isAboveRealHorizon | ( | const StelCore * | core | ) | const |
Checking position an object above real horizon for current location.
|
protected |
Apply post processing on the info string.
This also removes all extraInfoStrings possibly injected by modules (plugins) etc., except for Script and DebugAid types.
|
slot |
Remove the extraInfoStrings with the given flags.
This is a finer-grained removal than just extraInfoStrings.remove(flags), as it allows a combination of flags. After display, InfoPanel::setTextFromObjects() auto-clears the strings of the selected object using the AllInfo constant. extraInfoStrings having been set with the DebugAid and Script flags have to be removed by separate calls of this method. Those which have been set by scripts have to persist at least as long as the selection remains active. The behaviour of DebugAid texts depends on the use case.
|
virtualslot |
Allow additions to the Info String.
Can be used by plugins to show extra info for the selected object, or for debugging. Hard-set this string group to a single str, or delete all messages when str==""
|
staticconstexpr |
A pre-defined "all available" set of specifiers for the getInfoString flags argument to getInfoString.
|
staticconstexpr |
A pre-defined "default" set of specifiers for the getInfoString flags argument to getInfoString It appears useful to propose this set as post-install settings and let users configure more on demand.