00001 00002 00008 /* 00009 * 00010 */ 00012 00013 #ifndef __HISTORY_H__ 00014 #define __HISTORY_H__ 00015 #include <vector> 00016 #include <functional> 00017 #include <algorithm> 00018 #include "Time.h" 00019 #include "Interpolator.h" 00020 using namespace std; 00021 namespace O_SESSAME { 00023 00036 #define HISTORY_RESERVE_SIZE 1000 00057 class History 00058 { 00059 public: 00062 History(); 00063 00066 virtual ~History(); 00067 00075 virtual void AppendHistory(const double &_appendTime); 00076 00084 virtual void AppendHistory(const ssfTime &_appendTime); 00085 00093 virtual vector<ssfTime>::difference_type AppendHistory(const vector<ssfTime> &_appendTime); 00094 00096 void ResetHistory(); 00097 00101 virtual Matrix GetHistory(); 00102 00115 virtual void SetInterpolator(Interpolator* _newInterpolator); 00116 00117 protected: 00125 vector<ssfTime>::difference_type GetState(const ssfTime& _requestedTime); 00126 00128 vector<ssfTime> m_TimeHistory; 00129 00131 Interpolator* m_OriginalInterpolator; 00132 00134 vector<Interpolator*> m_TimeInterpolations; 00135 00136 00137 }; 00138 00139 } // close namespace O_SESSAME 00140 00141 #endif 00142 00143 00144 // Do not change the comments below - they will be added automatically by CVS 00145 /***************************************************************************** 00146 * $Log: History.h,v $ 00147 * Revision 1.13 2003/06/06 00:34:16 nilspace 00148 * ? 00149 * 00150 * Revision 1.12 2003/05/27 17:35:52 nilspace 00151 * Updated to prevent errors. 00152 * 00153 * Revision 1.11 2003/05/22 21:01:45 nilspace 00154 * Updated comments. 00155 * 00156 * Revision 1.10 2003/05/20 17:50:01 nilspace 00157 * Updated comments. 00158 * 00159 * Revision 1.9 2003/05/15 18:10:24 nilspace 00160 * Added <functional> and <algorithm> to the include files. 00161 * 00162 * Revision 1.8 2003/05/13 18:45:35 nilspace 00163 * Added interpolation functionality. 00164 * 00165 * Revision 1.7 2003/05/01 23:59:48 nilspace 00166 * Commented the API. 00167 * 00168 * Revision 1.6 2003/05/01 18:24:36 nilspace 00169 * Prevented overlapping Appends by removing the old states and times. 00170 * 00171 * Revision 1.5 2003/04/27 22:04:33 nilspace 00172 * Created the namespace O_SESSAME. 00173 * 00174 * Revision 1.4 2003/04/25 17:15:00 nilspace 00175 * Added OrbitHistory & made sure it builds. 00176 * Moved Appending time to History.cpp. 00177 * 00178 * Revision 1.3 2003/04/23 17:01:02 nilspace 00179 * Time is now stored as an ssfTime object. 00180 * 00181 * Revision 1.2 2003/04/23 16:30:58 nilspace 00182 * Various bugfixes & uploading of all changed code for new programmers. 00183 * 00184 * Revision 1.1 2003/03/27 20:29:02 nilspace 00185 * Initial Submission. 00186 * 00187 ******************************************************************************/