sgp4/Eci.h

70 lines
1.3 KiB
C
Raw Normal View History

2011-03-30 16:03:52 +00:00
#ifndef ECI_H_
#define ECI_H_
2011-04-23 11:18:51 +00:00
#include "CoordGeodetic.h"
2011-03-30 16:03:52 +00:00
#include "Vector.h"
#include "Julian.h"
2011-12-13 22:37:13 +00:00
#include "Globals.h"
2011-03-30 16:03:52 +00:00
2011-12-13 22:37:13 +00:00
class Eci
{
2011-03-30 16:03:52 +00:00
public:
2011-12-13 22:37:13 +00:00
/*
* in degrees
*/
Eci(const Julian& date, double latitude, double longitude, double altitude)
{
ToEci(date, CoordGeodetic(latitude, longitude, altitude));
}
Eci(const Julian& date, const CoordGeodetic& g)
{
ToEci(date, g);
}
Eci(const Julian &date, const Vector &position)
: date_(date), position_(position)
{
}
2011-03-30 16:03:52 +00:00
2011-12-13 22:37:13 +00:00
Eci(const Julian &date, const Vector &position, const Vector &velocity)
: date_(date), position_(position), velocity_(velocity)
{
}
virtual ~Eci()
{
}
Vector GetPosition() const
{
2011-03-30 16:03:52 +00:00
return position_;
}
2011-12-13 22:37:13 +00:00
Vector GetVelocity() const
{
2011-03-30 16:03:52 +00:00
return velocity_;
}
2011-12-13 22:37:13 +00:00
Julian GetDate() const
{
2011-03-30 16:03:52 +00:00
return date_;
}
CoordGeodetic ToGeodetic() const;
2011-12-13 22:37:13 +00:00
protected:
void ToEci(const Julian& date, double latitude, double longitude,
double altitude);
void ToEci(const Julian& date, const CoordGeodetic& g);
2011-03-30 16:03:52 +00:00
private:
Julian date_;
2011-03-30 16:03:52 +00:00
Vector position_;
Vector velocity_;
};
#endif