/[PAMELA software]/yodaUtility/sgp4/cEci.h
ViewVC logotype

Annotation of /yodaUtility/sgp4/cEci.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Sun Apr 30 11:08:14 2006 UTC (18 years, 7 months ago) by kusanagi
Branch point for: MAIN
File MIME type: text/plain
Initial revision

1 kusanagi 1.1 //
2     // cEci.h
3     //
4     // Copyright (c) 2003 Michael F. Henry
5     //
6     #pragma once
7    
8     #include "cVector.h"
9     #include "cJulian.h"
10     #include "coord.h"
11    
12     //////////////////////////////////////////////////////////////////////
13     // class cEci
14     // Encapsulates an Earth-Centered Inertial position, velocity, and time.
15     class cEci
16     {
17     public:
18     cEci() { m_VecUnits = UNITS_NONE; }
19     cEci(const cCoordGeo &geo, const cJulian &cJulian);
20     cEci(const cVector &pos, const cVector &vel,
21     const cJulian &date, bool IsAeUnits = true);
22     virtual ~cEci() {};
23    
24     cCoordGeo toGeo();
25    
26     cVector getPos() const { return m_pos; }
27     cVector getVel() const { return m_vel; }
28     cJulian getDate() const { return m_date; }
29    
30     void setUnitsAe() { m_VecUnits = UNITS_AE; }
31     void setUnitsKm() { m_VecUnits = UNITS_KM; }
32     bool UnitsAreAe() const { return m_VecUnits == UNITS_AE; }
33     bool UnitsAreKm() const { return m_VecUnits == UNITS_KM; }
34     void ae2km(); // Convert position, velocity vector units from AE to km
35    
36     protected:
37     void MulPos(double factor) { m_pos.Mul(factor); }
38     void MulVel(double factor) { m_vel.Mul(factor); }
39    
40     enum VecUnits
41     {
42     UNITS_NONE, // not initialized
43     UNITS_AE,
44     UNITS_KM,
45     };
46    
47     cVector m_pos;
48     cVector m_vel;
49     cJulian m_date;
50     VecUnits m_VecUnits;
51     };

  ViewVC Help
Powered by ViewVC 1.1.23