Stellarium 0.13.0
MinorPlanet.hpp
1 /*
2  * Stellarium
3  * Copyright (C) 2010 Bogdan Marinov
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
18  */
19 
20 #ifndef _MINOR_PLANET_HPP_
21 #define _MINOR_PLANET_HPP_
22 
23 #include "Planet.hpp"
24 
37 class MinorPlanet : public Planet
38 {
39 public:
40  MinorPlanet(const QString& englishName,
41  int flagLighting,
42  double radius,
43  double oblateness,
44  Vec3f color,
45  float albedo,
46  const QString& texMapName,
47  posFuncType _coordFunc,
48  void* userDataPtr,
49  OsculatingFunctType *osculatingFunc,
50  bool closeOrbit,
51  bool hidden,
52  const QString &pType);
53 
54  ~MinorPlanet();
55 
56  //Inherited from StelObject via Planet
69  virtual QString getInfoString(const StelCore *core, const InfoStringGroup &flags) const;
70  //The Comet class inherits the "Planet" type because the SolarSystem class
71  //was not designed to handle different types of objects.
72  // \todo Decide if this is going to be "MinorPlanet" or "Asteroid"
73  //virtual QString getType() const {return "MinorPlanet";}
74  virtual float getVMagnitude(const StelCore* core) const;
77  virtual void translateName(const StelTranslator& trans);
78 
84  void setMinorPlanetNumber(int number);
85 
91  void setProvisionalDesignation(QString designation);
92 
93 
98  void setAbsoluteMagnitudeAndSlope(double magnitude, double slope);
99 
103  static QString renderProvisionalDesignationinHtml(QString plainText);
104 
106  void setSemiMajorAxis(double value);
107 
109  double getSiderealPeriod() const;
110 
111 private:
112  int minorPlanetNumber;
113  double absoluteMagnitude;
114  double slopeParameter;
115  double semiMajorAxis;
116 
117  bool nameIsProvisionalDesignation;
118  QString provisionalDesignationHtml;
119  QString properName;
120 };
121 
122 #endif //_MINOR_PLANET_HPP_
virtual float getVMagnitude(const StelCore *core) const
Return object's apparent V magnitude as seen from observer, without including extinction.
void setAbsoluteMagnitudeAndSlope(double magnitude, double slope)
sets absolute magnitude (H) and slope parameter (G).
double getSiderealPeriod() const
get sidereal period for minor planet
Class used to translate strings to any language.
virtual void translateName(const StelTranslator &trans)
sets the nameI18 property with the appropriate translation.
Main class for Stellarium core processing.
Definition: StelCore.hpp:46
void setSemiMajorAxis(double value)
set value for semi-major axis in AU
void setProvisionalDesignation(QString designation)
sets a provisional designation.
virtual QString getInfoString(const StelCore *core, const InfoStringGroup &flags) const
Get a string with data about the MinorPlanet.
static QString renderProvisionalDesignationinHtml(QString plainText)
renders the subscript in a minor planet provisional designation with HTML.
void setMinorPlanetNumber(int number)
set the minor planet's number, if any.