#ifndef COSY_SlaPlanets
#define COSY_SlaPlanets

#ifndef COSY_SlaStars
#include "SlaStars.h"
#endif

#ifndef MARS_MPointing
#include "MPointing.h"
#endif

typedef enum
{
    kESun      = 0,
    kEMercury  = 1,
    kEVenus    = 2,
    kEMoon     = 3, // earth moon barycentre
    kEMars     = 4,
    kEJupiter  = 5,
    kESaturn   = 6,
    kEUranus   = 7,
    kENeptune  = 8,
    kEPluto    = 9
} ePlanets_t;

class SlaPlanets : public SlaStars
{
private:
    //double fDt;        // [mjd] The result is a rough estimate of ET-UT (after 1984, TT-UT1) at the given epoch, in seconds

    ZdAz fZdAz[10];    // [rad]

    //double fEarth[3];  // heliocentric coordinates

    //ZdAz   GetMoonPos() const;

public:
    SlaPlanets(MObservatory::LocationName_t key);

    void SetMjd(double mjd);

    RaDec CalcPlanetRaDec(ePlanets_t planet);
    void  UpdatePlanetPos(ePlanets_t planet);
    ZdAz  GetPlanetPos(ePlanets_t planet) const { return fZdAz[planet]; }

    void SetPlanet(ePlanets_t planet) { Set(CalcPlanetRaDec(planet)/TMath::DegToRad()); }

    ClassDef(SlaPlanets, 0)

};

#endif
