00001 00002 00008 /* 00009 */ 00011 00012 #ifndef __OSESSAME_MAGNETIC_MODEL_H__ 00013 #define __OSESSAME_MAGNETIC_MODEL_H__ 00014 00015 #include "Matrix.h" 00016 #include "Time.h" 00017 00018 namespace O_SESSAME { 00019 00021 typedef struct { 00022 ssfTime modelEpoch; 00023 double H0; 00024 double DipoleCoelevation; 00025 double DipoleEastLongitude; 00026 double CBAvgRotationRate; 00027 double CBRadius; 00028 } MagneticFieldCoefficients; 00029 00033 class MagneticModel 00034 { 00035 public: 00036 virtual ~MagneticModel() {} 00037 00038 virtual Vector GetMagneticField(const ssfTime& _currentTime, const Vector& _PositionVector) = 0; 00039 virtual void SetMagFieldCoefficients(const MagneticFieldCoefficients& _newMagFieldCoeffs) {m_MagFieldCoeffs = _newMagFieldCoeffs;} 00040 00041 protected: 00042 MagneticModel() {} 00043 00044 MagneticFieldCoefficients m_MagFieldCoeffs; 00045 00046 private: 00047 00048 }; 00049 } 00050 #endif 00051 // Do not change the comments below - they will be added automatically by CVS 00052 /***************************************************************************** 00053 * $Log: MagneticModel.h,v $ 00054 * Revision 1.3 2003/06/12 18:00:31 nilspace 00055 * Fixed references to CentralBody. 00056 * 00057 * Revision 1.2 2003/06/10 14:45:43 nilspace 00058 * Changed include from Vector.h to Matrix.h 00059 * 00060 * Revision 1.1 2003/06/10 14:26:50 nilspace 00061 * Initial Submission. 00062 * 00063 * 00064 ******************************************************************************/