Stellarium  HEAD
Public Member Functions | Static Public Attributes | Friends
Constellation Class Reference

The Constellation class models a grouping of stars in a Sky Culture. More...

#include <Constellation.hpp>

Public Member Functions

QString getInfoString (const StelCore *, const InfoStringGroup &flags) const override
 Get a string with data about the Constellation. More...
 
QString getType () const override
 Get the module/object type string. More...
 
QString getObjectType () const override
 Return object's type. More...
 
QString getObjectTypeI18n () const override
 Return object's type. It should be translated lowercase name of the type of the object.
 
QString getID () const override
 Returns a unique identifier for this object. More...
 
Vec3d getJ2000EquatorialPos (const StelCore *) const override
 observer centered J2000 coordinates. More...
 
SphericalRegionP getRegion () const override
 Specialized implementation of the getRegion method. More...
 
bool read (const QJsonObject &data, StarMgr *starMgr)
 
void drawName (const Vec3d &xyName, StelPainter &sPainter) const
 Draw the constellation name. Depending on completeness of names and data, there may be a rich set of options to display.
 
void drawArt (StelPainter &sPainter) const
 Draw the constellation art.
 
void drawBoundaryOptim (StelPainter &sPainter, const Vec3d &obsVelocity) const
 Draw the constellation boundary. obsVelocity used for aberration.
 
void drawHullOptim (StelPainter &sPainter, const Vec3d &obsVelocity) const
 Draw the constellation hull. obsVelocity used for aberration.
 
const ConstellationisStarIn (const StelObject *) const
 Test if a star is part of a Constellation. More...
 
StelObjectP getBrightestStarInConstellation (void) const
 Get the brightest star in a Constellation. More...
 
QString getNameI18n () const override
 Get the translated name for the Constellation.
 
QString getEnglishName () const override
 Get the English name for the Constellation.
 
QString getNameNative () const override
 Get the native name for the Constellation.
 
QString getNamePronounce () const override
 Get (translated) pronouncement of the native name for the Constellation.
 
QString getShortName () const
 Get the short name for the Constellation (returns the translated version of abbreviation).
 
QString getScreenLabel () const override
 Combine screen label from various components, depending on settings in SkyCultureMgr.
 
QString getInfoLabel () const override
 Combine InfoString label from various components, depending on settings in SkyCultureMgr.
 
void setNarration (const QString &narration)
 set narration text. narration may contain Markdown syntax.
 
QString getNarration (const StelCore *core, const InfoStringGroup &flags=StelObject::AllInfo) const override
 retrieve narration text, i.e. the text from description.md. More...
 
- Public Member Functions inherited from StelObject
SphericalRegionP getRegion () const override
 Default implementation of the getRegion method. More...
 
Vec3d getPointInRegion () const override
 Default implementation of the getPointInRegion method. 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 getNameTransliteration () const
 Return a secondary scientific transliteration of the native name. More...
 
virtual QString getNameIPA () const
 Return native name in International Phonetic Alphabet. Optional.
 
virtual QString getByname () const
 Return byname. Optional.
 
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 float &magOffset=0.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 const QString CONSTELLATION_TYPE
 
- Static Public Attributes inherited from StelObject
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.
 

Friends

class ConstellationMgr
 

Additional Inherited Members

- Public Types inherited from StelObject
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 , CulturalConstellation = 0x00200000 , SiderealTime = 0x00400000 ,
  RTSTime = 0x00800000 , SolarLunarPosition = 0x01000000 , Script = 0x02000000 , DebugAid = 0x04000000 ,
  NoFont = 0x08000000 , PlainText = 0x10000000
}
 Used as named bitfield flags as specifiers to filter results of getInfoString. More...
 
enum class  CulturalDisplayStyle {
  NONE = 0x00 , Modern = 0x01 , IPA = 0x02 , IPA_Modern = 0x03 ,
  Translated = 0x04 , Translated_Modern = 0x05 , Translated_IPA = 0x06 , Translated_IPA_Modern = 0x07 ,
  Translit = 0x08 , Translit_Modern = 0x09 , Translit_IPA = 0x0A , Translit_IPA_Modern = 0x0B ,
  Translit_Translated = 0x0C , Translit_Translated_Modern = 0x0D , Translit_Translated_IPA = 0x0E , Translit_Translated_IPA_Modern = 0x0F ,
  Pronounce = 0x10 , Pronounce_Modern = 0x11 , Pronounce_IPA = 0x12 , Pronounce_IPA_Modern = 0x13 ,
  Pronounce_Translated = 0x14 , Pronounce_Translated_Modern = 0x15 , Pronounce_Translated_IPA = 0x16 , Pronounce_Translated_IPA_Modern = 0x17 ,
  Pronounce_Translit = 0x18 , Pronounce_Translit_Modern = 0x19 , Pronounce_Translit_IPA = 0x1A , Pronounce_Translit_IPA_Modern = 0x1B ,
  Pronounce_Translit_Translated = 0x1C , Pronounce_Translit_Translated_Modern = 0x1D , Pronounce_Translit_Translated_IPA = 0x1E , Pronounce_Translit_Translated_IPA_Modern = 0x1F ,
  Native = 0x20 , Native_Modern = 0x21 , Native_IPA = 0x22 , Native_IPA_Modern = 0x23 ,
  Native_Translated = 0x24 , Native_Translated_Modern = 0x25 , Native_Translated_IPA = 0x26 , Native_Translated_IPA_Modern = 0x27 ,
  Native_Translit = 0x28 , Native_Translit_Modern = 0x29 , Native_Translit_IPA = 0x2A , Native_Translit_IPA_Modern = 0x2B ,
  Native_Translit_Translated = 0x2C , Native_Translit_Translated_Modern = 0x2D , Native_Translit_Translated_IPA = 0x2E , Native_Translit_Translated_IPA_Modern = 0x2F ,
  Native_Pronounce = 0x30 , Native_Pronounce_Modern = 0x31 , Native_Pronounce_IPA = 0x32 , Native_Pronounce_IPA_Modern = 0x33 ,
  Native_Pronounce_Translated = 0x34 , Native_Pronounce_Translated_Modern = 0x35 , Native_Pronounce_Translated_IPA = 0x36 , Native_Pronounce_Translated_IPA_Modern = 0x37 ,
  Native_Pronounce_Translit = 0x38 , Native_Pronounce_Translit_Modern = 0x39 , Native_Pronounce_Translit_IPA = 0x3A , Native_Pronounce_Translit_IPA_Modern = 0x3B ,
  Native_Pronounce_Translit_Translated = 0x3C , Native_Pronounce_Translit_Translated_Modern = 0x3D , Native_Pronounce_Translit_Translated_IPA = 0x3E , Native_Pronounce_Translit_Translated_IPA_Modern = 0x3F ,
  Byname = 0x40 , Byname_Modern = 0x41 , IPA_Byname = 0x42 , IPA_Byname_Modern = 0x43 ,
  Translated_Byname = 0x44 , Translated_Byname_Modern = 0x45 , Translated_IPA_Byname = 0x46 , Translated_IPA_Byname_Modern = 0x47 ,
  Translit_Byname = 0x48 , Translit_Byname_Modern = 0x49 , Translit_IPA_Byname = 0x4A , Translit_IPA_Byname_Modern = 0x4B ,
  Translit_Translated_Byname = 0x4C , Translit_Translated_Byname_Modern = 0x4D , Translit_Translated_IPA_Byname = 0x4E , Translit_Translated_IPA_Byname_Modern = 0x4F ,
  Pronounce_Byname = 0x50 , Pronounce_Byname_Modern = 0x51 , Pronounce_IPA_Byname = 0x52 , Pronounce_IPA_Byname_Modern = 0x53 ,
  Pronounce_Translated_Byname = 0x54 , Pronounce_Translated_Byname_Modern = 0x55 , Pronounce_Translated_IPA_Byname = 0x56 , Pronounce_Translated_IPA_Byname_Modern = 0x57 ,
  Pronounce_Translit_Byname = 0x58 , Pronounce_Translit_Byname_Modern = 0x59 , Pronounce_Translit_IPA_Byname = 0x5A , Pronounce_Translit_IPA_Byname_Modern = 0x5B ,
  Pronounce_Translit_Translated_Byname = 0x5C , Pronounce_Translit_Translated_Byname_Modern = 0x5D , Pronounce_Translit_Translated_IPA_Byname = 0x5E , Pronounce_Translit_Translated_IPA_Byname_Modern = 0x5F ,
  Native_Byname = 0x60 , Native_Byname_Modern = 0x61 , Native_IPA_Byname = 0x62 , Native_IPA_Byname_Modern = 0x63 ,
  Native_Translated_Byname = 0x64 , Native_Translated_Byname_Modern = 0x65 , Native_Translated_IPA_Byname = 0x66 , Native_Translated_IPA_Byname_Modern = 0x67 ,
  Native_Translit_Byname = 0x68 , Native_Translit_Byname_Modern = 0x69 , Native_Translit_IPA_Byname = 0x6A , Native_Translit_IPA_Byname_Modern = 0x6B ,
  Native_Translit_Translated_Byname = 0x6C , Native_Translit_Translated_Byname_Modern = 0x6D , Native_Translit_Translated_IPA_Byname = 0x6E , Native_Translit_Translated_IPA_Byname_Modern = 0x6F ,
  Native_Pronounce_Byname = 0x70 , Native_Pronounce_Byname_Modern = 0x71 , Native_Pronounce_IPA_Byname = 0x72 , Native_Pronounce_IPA_Byname_Modern = 0x73 ,
  Native_Pronounce_Translated_Byname = 0x74 , Native_Pronounce_Translated_Byname_Modern = 0x75 , Native_Pronounce_Translated_IPA_Byname = 0x76 , Native_Pronounce_Translated_IPA_Byname_Modern = 0x77 ,
  Native_Pronounce_Translit_Byname = 0x78 , Native_Pronounce_Translit_Byname_Modern = 0x79 , Native_Pronounce_Translit_IPA_Byname = 0x7A , Native_Pronounce_Translit_IPA_Byname_Modern = 0x7B ,
  Native_Pronounce_Translit_Translated_Byname = 0x7C , Native_Pronounce_Translit_Translated_Byname_Modern = 0x7D , Native_Pronounce_Translit_Translated_IPA_Byname = 0x7E , Native_Pronounce_Translit_Translated_IPA_Byname_Modern = 0x7F
}
 A 7-bit code with all options for displaying relevant CulturalName parts. More...
 
enum class  CulturalNameSpecial { None = 0 , Morning = 1 , Evening = 2 }
 
- Public Slots inherited from StelObject
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...
 
- Protected Member Functions inherited from StelObject
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...
 
QString getCommonNarration (const StelCore *core, const InfoStringGroup &flags) const
 Format the positional narration 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 float &magOffset=0.f) const
 Format the magnitude info string for the object. More...
 
virtual QString getMagnitudeNarration (const StelCore *core, const InfoStringGroup &flags, const int decimals=1, const float &magOffset=0.f) const
 Narration version of getMagnitudeInfoString().
 
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...
 
QString getSolarLunarNarration (const StelCore *core, const InfoStringGroup &flags) const
 Narration version of getSolarLunarInfoString()
 
void postProcessInfoString (QString &str, const InfoStringGroup &flags) const
 Apply post processing on the info string. More...
 

Detailed Description

The Constellation class models a grouping of stars in a Sky Culture.

Each Constellation consists of a list of stars identified by their abbreviation and Hipparcos catalogue numbers (taken from file: constellationship.fab), another entry in file constellation_names.eng.fab with the defining abbreviated name, nativeName, and translatable englishName (translation goes into nameI18). GZ NEW: The nativeName should be accessible in a GUI option, so that e.g. original names as written in a concrete book where a skyculture has been taken from can be assured even when translation is available. TODO: There should be a distinction between constellations and asterisms, which are "unofficial" figures within a sky culture. For example, Western sky culture has a "Big Dipper", "Coathanger", etc. These would be nice to see, but in different style.

Member Function Documentation

◆ getBrightestStarInConstellation()

StelObjectP Constellation::getBrightestStarInConstellation ( void  ) const

Get the brightest star in a Constellation.

Checks all stars which make up the constellation lines, and returns a pointer to the one with the brightest apparent magnitude.

Returns
a pointer to the brightest star

◆ getID()

QString Constellation::getID ( ) const
inlineoverridevirtual

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.

Implements StelObject.

◆ getInfoString()

QString Constellation::getInfoString ( const StelCore ,
const InfoStringGroup &  flags 
) const
overridevirtual

Get a string with data about the Constellation.

Constellations support the following InfoStringGroup flags:

  • Name
    Parameters
    corethe StelCore object
    flagsa set of InfoStringGroup items to include in the return value.
    Returns
    a QString a description of the constellation.

Implements StelObject.

◆ getJ2000EquatorialPos()

Vec3d Constellation::getJ2000EquatorialPos ( const StelCore ) const
overridevirtual

observer centered J2000 coordinates.

These are either automatically computed from all stars forming the constellation lines, or from the manually defined label point(s).

Implements StelObject.

◆ getNarration()

QString Constellation::getNarration ( const StelCore core,
const InfoStringGroup &  flags = StelObject::AllInfo 
) const
overridevirtual

retrieve narration text, i.e. the text from description.md.

Parameters
flagsis ignored.

Reimplemented from StelObject.

◆ getObjectType()

QString Constellation::getObjectType ( ) const
inlineoverridevirtual

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", ...

Implements StelObject.

◆ getRegion()

SphericalRegionP Constellation::getRegion ( ) const
inlineoverridevirtual

Specialized implementation of the getRegion method.

Return the convex hull of the object.

Implements StelRegionObject.

◆ getType()

QString Constellation::getType ( void  ) const
inlineoverridevirtual

Get the module/object type string.

Returns
"Constellation"

Implements StelObject.

◆ isStarIn()

const Constellation* Constellation::isStarIn ( const StelObject ) const

Test if a star is part of a Constellation.

This member tests to see if a star is one of those which make up the lines of a Constellation.

Returns
a pointer to the constellation which the star is a part of, or nullptr if the star is not part of a constellation
Note
: Dark constellations by definition cannot be found here.

◆ read()

bool Constellation::read ( const QJsonObject &  data,
StarMgr starMgr 
)
Parameters
dataa JSON formatted constellation record from index.json
starMgra pointer to the StarManager object.
Returns
false if can't parse record (invalid result!), else true.