00001 ////////////////////////////////////////////////////////////////////////////////////////////////// 00002 /*! \file OrbitFrame.h 00003 * \brief Interface to the Orbit Frame abstract Class. 00004 * \author $Author: jayhawk_hokie $ 00005 * \version $Revision: 1.2 $ 00006 * \date $Date: 2005/06/10 12:53:28 $ 00007 *////////////////////////////////////////////////////////////////////////////////////////////////// 00008 /* 00009 * 00010 */ 00011 ////////////////////////////////////////////////////////////////////////////////////////////////// 00012 00013 #ifndef __SSF_ORBIT_FRAME_H__ 00014 #define __SSF_ORBIT_FRAME_H__ 00015 #include <rotation/Rotation.h> 00016 00017 ////////////////////////////////////////////////////////////////////////////////////////////////// 00018 /*! \defgroup OrbitFrames Orbit Frames 00019 * \ingroup OrbitToolkit 00020 * 00021 * \detail 00022 */ 00023 00024 /*! \brief Abstract class representating an orbital reference frame. 00025 * \ingroup OrbitFrames 00026 * 00027 * \detail 00028 */ 00029 00030 class OrbitFrame 00031 { 00032 public: 00033 virtual Rotation GetRotation2IJK() const = 0; 00034 virtual Rotation GetRotationFromIJK() const = 0; 00035 virtual OrbitFrame* NewPointer() = 0; 00036 virtual OrbitFrame* Clone() = 0; 00037 virtual ~OrbitFrame(); 00038 00039 protected: 00040 OrbitFrame(); 00041 OrbitFrame(const Rotation &_Transformation); 00042 private: 00043 /** pointer to the origin object */ 00044 // void *m_Origin; 00045 // m_FundamentalPlane; 00046 // m_PreferredDirection; 00047 RotationSense m_Sense; 00048 Rotation m_Transformation2IJK; 00049 00050 }; 00051 00052 inline OrbitFrame::OrbitFrame(): m_Sense(RIGHT_HAND) {}; 00053 inline OrbitFrame::OrbitFrame(const Rotation &_Transformation) : m_Sense(RIGHT_HAND), m_Transformation2IJK(_Transformation) {}; 00054 inline OrbitFrame::~OrbitFrame() {}; 00055 00056 #endif 00057 00058 // Do not change the comments below - they will be added automatically by CVS 00059 /***************************************************************************** 00060 * $Log: OrbitFrame.h,v $ 00061 * Revision 1.2 2005/06/10 12:53:28 jayhawk_hokie 00062 * Changed header file format to make it easier to link to the spacecraft code by only having to specify dsacss/dep/spacecraft/src (ex. "file.h" changed to <dir/file.h> where dir is a folder in src). 00063 * 00064 * Revision 1.1.1.1 2005/04/26 17:40:59 cakinli 00065 * Adding OpenSESSAME to DSACSS distrib to capture fixed version. 00066 * 00067 * Revision 1.9 2003/05/20 17:47:59 nilspace 00068 * Updated comments. 00069 * 00070 * Revision 1.8 2003/04/29 20:17:39 nilspace 00071 * Added NewPointer() and Clone() functions. 00072 * 00073 * Revision 1.7 2003/04/29 18:45:30 nilspace 00074 * Moved all function definitions out of class interface definition. 00075 * 00076 * Revision 1.6 2003/04/27 21:14:02 nilspace 00077 * Added to the namespace O_SESSAME. 00078 * Moved function definitions outside of the class interface definition. 00079 * 00080 * Revision 1.5 2003/04/25 14:02:41 nilspace 00081 * Made the destructor public. 00082 * 00083 * Revision 1.4 2003/04/24 20:05:54 nilspace 00084 * Made GetRotation functions const. 00085 * 00086 * Revision 1.3 2003/04/23 16:26:05 nilspace 00087 * Updated directory structure & default parameters. 00088 * 00089 * Revision 1.2 2003/04/22 17:37:24 nilspace 00090 * Added reference frames. 00091 * 00092 * Revision 1.1 2003/04/08 22:48:03 nilspace 00093 * Initial Submission. 00094 * 00095 * 00096 * 00097 ******************************************************************************/