Stellarium  0.20.4
Public Member Functions | Protected Member Functions | Friends
Comet Class Reference

#include <Comet.hpp>

Public Member Functions

 Comet (const QString &englishName, double equatorialRadius, double oblateness, Vec3f halocolor, float albedo, float roughness, float outgas_intensity, float outgas_falloff, const QString &texMapName, const QString &objModelName, posFuncType _coordFunc, KeplerOrbit *orbitPtr, OsculatingFunctType *osculatingFunc, bool closeOrbit, bool hidden, const QString &pTypeStr, float dustTailWidthFact=1.5f, float dustTailLengthFact=0.4f, float dustTailBrightnessFact=1.5f)
 
virtual QVariantMap getInfoMap (const StelCore *core) const Q_DECL_OVERRIDE
 In addition to Planet::getInfoMap(), Comets provides estimates for. More...
 
virtual float getVMagnitude (const StelCore *core) const Q_DECL_OVERRIDE
 
virtual void translateName (const StelTranslator &trans) Q_DECL_OVERRIDE
 sets the nameI18 property with the appropriate translation. More...
 
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.
 
void setAbsoluteMagnitudeAndSlope (const float magnitude, const float slope)
 sets absolute magnitude and slope parameter. More...
 
virtual double getSiderealPeriod () const Q_DECL_OVERRIDE
 get sidereal period for comet, days, or returns 0 if not possible (parabolic, hyperbolic orbit)
 
virtual void draw (StelCore *core, float maxMagLabels, const QFont &planetNameFont) Q_DECL_OVERRIDE
 re-implementation of Planet's draw()
 
virtual void update (int deltaTime) Q_DECL_OVERRIDE
 
- Public Member Functions inherited from Planet
 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 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 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.
 
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)
 
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.
 
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
 
OrbitgetOrbit () 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 RotationElementsgetRotationElements (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< PlanetgetParent (void) const
 
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.
 
- Public Member Functions inherited from StelObject
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...
 

Protected Member Functions

virtual QString getInfoStringAbsoluteMagnitude (const StelCore *core, const InfoStringGroup &flags) const Q_DECL_OVERRIDE
 
virtual QString getInfoStringSize (const StelCore *core, const InfoStringGroup &flags) const Q_DECL_OVERRIDE
 Any flag=Size information to be displayed.
 
virtual QString getInfoStringExtra (const StelCore *core, const InfoStringGroup &flags) const Q_DECL_OVERRIDE
 Any flag=Extra information to be displayed at the end.
 
- Protected Member Functions inherited from Planet
virtual QString getInfoStringName (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 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.
 
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)
 
PlanetOBJModelloadObjModel () const
 
- 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...
 
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...
 

Friends

class SolarSystem
 

Additional Inherited Members

- Public Types inherited from Planet
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
}
 
- 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, 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 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...
 
- Static Public Member Functions inherited from Planet
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 Vec3fgetLabelColor (void)
 
static void setOrbitColor (const Vec3f &oc)
 
static const Vec3fgetOrbitColor ()
 
static void setMajorPlanetOrbitColor (const Vec3f &oc)
 
static const Vec3fgetMajorPlanetOrbitColor ()
 
static void setMoonOrbitColor (const Vec3f &oc)
 
static const Vec3fgetMoonOrbitColor ()
 
static void setMinorPlanetOrbitColor (const Vec3f &oc)
 
static const Vec3fgetMinorPlanetOrbitColor ()
 
static void setDwarfPlanetOrbitColor (const Vec3f &oc)
 
static const Vec3fgetDwarfPlanetOrbitColor ()
 
static void setCubewanoOrbitColor (const Vec3f &oc)
 
static const Vec3fgetCubewanoOrbitColor ()
 
static void setPlutinoOrbitColor (const Vec3f &oc)
 
static const Vec3fgetPlutinoOrbitColor ()
 
static void setScatteredDiscObjectOrbitColor (const Vec3f &oc)
 
static const Vec3fgetScatteredDiscObjectOrbitColor ()
 
static void setOortCloudObjectOrbitColor (const Vec3f &oc)
 
static const Vec3fgetOortCloudObjectOrbitColor ()
 
static void setCometOrbitColor (const Vec3f &oc)
 
static const Vec3fgetCometOrbitColor ()
 
static void setSednoidOrbitColor (const Vec3f &oc)
 
static const Vec3fgetSednoidOrbitColor ()
 
static void setInterstellarOrbitColor (const Vec3f &oc)
 
static const Vec3fgetInterstellarOrbitColor ()
 
static void setMercuryOrbitColor (const Vec3f &oc)
 
static const Vec3fgetMercuryOrbitColor ()
 
static void setVenusOrbitColor (const Vec3f &oc)
 
static const Vec3fgetVenusOrbitColor ()
 
static void setEarthOrbitColor (const Vec3f &oc)
 
static const Vec3fgetEarthOrbitColor ()
 
static void setMarsOrbitColor (const Vec3f &oc)
 
static const Vec3fgetMarsOrbitColor ()
 
static void setJupiterOrbitColor (const Vec3f &oc)
 
static const Vec3fgetJupiterOrbitColor ()
 
static void setSaturnOrbitColor (const Vec3f &oc)
 
static const Vec3fgetSaturnOrbitColor ()
 
static void setUranusOrbitColor (const Vec3f &oc)
 
static const Vec3fgetUranusOrbitColor ()
 
static void setNeptuneOrbitColor (const Vec3f &oc)
 
static const Vec3fgetNeptuneOrbitColor ()
 
- Data Fields inherited from Planet
bool flagNativeName
 
bool flagTranslatedName
 
LinearFader orbitFader
 
Vec3d orbit [ORBIT_SEGMENTS+1]
 
double deltaJDE
 
double deltaOrbitJDE
 
bool closeOrbit
 
- Static Public Attributes inherited from Planet
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 Public Attributes inherited from StelObject
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 Attributes inherited from Planet
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
 
PlanetOBJModelobjModel
 
QFuture< PlanetOBJModel * > * objModelLoader
 
QString objModelPath
 
HipsSurveyP survey
 
Ringrings
 
double distance
 
double sphereScale
 
double lastJDE
 
posFuncType coordFunc
 
OrbitorbitPtr
 
OsculatingFunctType *const osculatingFunc
 
QSharedPointer< Planetparent
 
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 inherited from Planet
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
 

Detailed Description

Author
Bogdan Marinov, Georg Zotti (orbit computation enhancements, tails)

Some of the code in this class is re-used from the parent Planet class.

Member Function Documentation

◆ getInfoMap()

virtual QVariantMap Comet::getInfoMap ( const StelCore core) const
virtual

Reimplemented from Planet.

◆ getVMagnitude()

virtual float Comet::getVMagnitude ( const StelCore core) const
virtual

Reimplemented from Planet.

◆ setAbsoluteMagnitudeAndSlope()

void Comet::setAbsoluteMagnitudeAndSlope ( const float  magnitude,
const float  slope 
)

These are the parameters in the IAU's two-parameter magnitude system for comets. They are used to calculate the apparent magnitude at different distances from the Sun. They are not used in the same way as the same parameters in MinorPlanet.

◆ translateName()

virtual void Comet::translateName ( const StelTranslator trans)
virtual

Function overriden to handle the problem with name conflicts.

Reimplemented from Planet.