2011-03-30 15:18:19 +00:00
|
|
|
#ifndef OBSERVER_H_
|
|
|
|
#define OBSERVER_H_
|
|
|
|
|
|
|
|
#include "Coord.h"
|
2011-03-30 17:16:37 +00:00
|
|
|
#include "Julian.h"
|
|
|
|
#include "Eci.h"
|
2011-03-30 15:18:19 +00:00
|
|
|
|
|
|
|
class Observer {
|
|
|
|
public:
|
2011-03-30 16:03:52 +00:00
|
|
|
Observer(const double latitude, const double longitude, const double altitude);
|
|
|
|
Observer(const CoordGeodetic &geo);
|
2011-03-30 15:18:19 +00:00
|
|
|
virtual ~Observer(void);
|
2011-03-30 15:23:45 +00:00
|
|
|
|
|
|
|
void SetLocation(const CoordGeodetic& geo) {
|
|
|
|
geo_ = geo;
|
2011-03-30 17:16:37 +00:00
|
|
|
observers_eci_ = Eci(observers_eci_.GetDate(), geo_);
|
2011-03-30 15:23:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
CoordGeodetic GetLocation() const {
|
|
|
|
return geo_;
|
|
|
|
}
|
|
|
|
|
2011-03-30 17:16:37 +00:00
|
|
|
Eci GetEciPosition(const Julian &date) const {
|
|
|
|
return Eci(date, geo_);
|
|
|
|
}
|
|
|
|
|
|
|
|
CoordTopographic GetLookAngle(const Eci &eci);
|
|
|
|
|
2011-03-30 15:23:45 +00:00
|
|
|
private:
|
2011-03-30 17:16:37 +00:00
|
|
|
void UpdateObserversEci(const Julian &date);
|
|
|
|
|
2011-03-30 15:23:45 +00:00
|
|
|
/*
|
|
|
|
* the observers position
|
|
|
|
*/
|
|
|
|
CoordGeodetic geo_;
|
2011-03-30 21:32:44 +00:00
|
|
|
/*
|
|
|
|
* the observers eci for a particular time
|
|
|
|
*/
|
|
|
|
Eci observers_eci_;
|
2011-03-30 15:18:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|