00001 00002 00008 /* 00009 * 00010 */ 00012 00013 #ifndef __SSF_ATTITUDE_STATE_H__ 00014 #define __SSF_ATTITUDE_STATE_H__ 00015 00016 #include "Matrix.h" 00017 #include "Rotation.h" 00018 00019 namespace O_SESSAME { 00020 typedef int AttitudeFrame; 00021 class OrbitState; 00022 00045 class AttitudeState 00046 { 00047 public: 00050 AttitudeState(); 00053 virtual ~AttitudeState(); 00054 00059 AttitudeState(const Rotation &_Rot, AttitudeFrame* _pAttFrame = NULL); 00060 00066 AttitudeState(const Rotation &_Rot, const Vector &_AngVel, AttitudeFrame* _pAttFrame = NULL); 00067 00072 void SetAttitudeFrame(AttitudeFrame* _pNewAttitudeFrame); 00073 00077 AttitudeFrame* GetAttitudeFrame() const; 00078 00084 void SetState(const Rotation& _Rotation, const Vector& _AngVel, AttitudeFrame* _attFrame = NULL); 00085 00092 Vector GetState(const RotationType& _rotType = Quaternion_Type, AttitudeFrame* _attFrame = NULL, const int& _Sequence = 123) const; 00093 00097 void SetRotation(const Rotation &_Rot); 00098 00103 void SetRotation(const Rotation &_Rot, AttitudeFrame* _pAttFrame); 00104 00108 Rotation GetRotation() const; 00109 00113 void SetAngularVelocity(const Vector &_angVel); 00114 00118 Vector GetAngularVelocity() const; 00119 00126 Rotation GetRotation2Orbital(const OrbitState& _orbState) const; 00127 00128 private: 00129 Rotation m_AttitudeRotation; 00130 Vector m_AngularVelocity; 00131 AttitudeFrame* m_pAttitudeFrame; 00132 }; 00133 00134 } // close namespace O_SESSAME 00135 #endif 00136 00137 // Do not change the comments below - they will be added automatically by CVS 00138 /***************************************************************************** 00139 * $Log: AttitudeState.h,v $ 00140 * Revision 1.7 2003/06/12 23:07:08 nilspace 00141 * Fixed to calculate Orbital rotation. 00142 * 00143 * Revision 1.6 2003/06/12 17:59:35 nilspace 00144 * Added GetRotation2Orbit function. 00145 * 00146 * Revision 1.5 2003/05/20 17:46:25 nilspace 00147 * Updated comments. 00148 * 00149 * Revision 1.4 2003/05/13 18:50:24 nilspace 00150 * Fixed comments. 00151 * 00152 * Revision 1.3 2003/04/27 22:04:31 nilspace 00153 * Created the namespace O_SESSAME. 00154 * 00155 * Revision 1.2 2003/04/23 16:30:58 nilspace 00156 * Various bugfixes & uploading of all changed code for new programmers. 00157 * 00158 * Revision 1.1 2003/04/08 22:51:24 nilspace 00159 * Initial submission in new directory. 00160 * 00161 ******************************************************************************/