00001
00002
00008
00009
00011
00012 #ifndef __ATTITUDE_HISTORY_H__
00013 #define __ATTITUDE_HISTORY_H__
00014
00015 #include "Rotation.h"
00016 #include "AttitudeState.h"
00017 #include "Time.h"
00018 #include "History.h"
00019 #include <vector>
00020 using namespace std;
00021 namespace O_SESSAME {
00022
00049 class AttitudeHistory : public History
00050 {
00051 public:
00054 AttitudeHistory();
00055
00058 ~AttitudeHistory();
00059
00070 void AppendHistory(const double &_appendTime, const Rotation &_appendRotation, const Vector &_appendAngVel);
00071
00082 void AppendHistory(const ssfTime &_appendTime, const Rotation &_appendRotation, const Vector &_appendAngVel);
00083
00093 void AppendHistory(const double &_appendTime, const AttitudeState &_appendAttitudeState);
00094
00104 void AppendHistory(const ssfTime &_appendTime, const AttitudeState &_appendAttitudeState);
00105
00114 void AppendHistory(const vector<ssfTime> &_appendTime, const vector<AttitudeState> &_appendAttitudeState);
00115
00125 void AppendHistory(const vector<ssfTime> &_appendTime, const vector<Rotation> &_appendRotation, const vector<Vector> &_appendAngVel);
00126
00128 void ResetHistory();
00129
00139 Matrix GetHistory(const RotationType &_rotType = Quaternion_Type);
00140
00150 void GetState(const ssfTime& _requestedTime, Rotation& _returnRotation, Vector& _returnAngVelVector);
00151
00161 AttitudeState GetState(const ssfTime& _requestedTime);
00162 private:
00164 vector<AttitudeState> m_AttitudeHistory;
00166 vector<Interpolator*> m_AttitudeInterpolations;
00167
00168 };
00169 }
00170
00171 #endif
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208