Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

OrbitFrameEQW.h

Go to the documentation of this file.
00001 //////////////////////////////////////////////////////////////////////////////////////////////////
00002 /*! \file OrbitFrameEQW.h
00003 *  \brief Interface to the EQW Orbit Frame Class.
00004 *  \author $Author: cakinli $
00005 *  \version $Revision: 1.1.1.1 $
00006 *  \date    $Date: 2005/04/26 17:40:59 $
00007 *//////////////////////////////////////////////////////////////////////////////////////////////////
00008 /* 
00009 *
00010 */
00011 //////////////////////////////////////////////////////////////////////////////////////////////////
00012 
00013 #ifndef __SSF_ORBIT_FRAME_EQW_H__
00014 #define __SSF_ORBIT_FRAME_EQW_H__
00015 #include "OrbitFrame.h"
00016 
00017 /*! \brief Equinoctial Coordinate System
00018 * \ingroup OrbitFrames
00019 *
00020 * \detail Detailed Description  
00021 */
00022 class OrbitFrameEQW : public OrbitFrame
00023 {
00024 public:
00025 {
00026     /*! \brief Constructor
00027         * @param _LongAscNode Longitude of the Ascending Node (rad)
00028         * @param _Inclination Inclination (rad)
00029         */
00030     OrbitFrameEQW(const double &_LongAscNode, const double &_Inclination);
00031     
00032     /*! \brief Deconstructor */
00033     virtual ~OrbitFrameEQW();
00034     
00035     /*! \brief Return the rotation \f$R^{IJK-SEZ}\f$
00036         * \f${\bf r}_{IJK} = R_{3}\left(-\theta_{LST}\right)R_{2}\left(\theta_{LST}-\pi\right){\bf r}_{ECEF}\f$
00037         * @return rotation from SEZ to IJK
00038         */
00039     Rotation GetRotation2IJK() const;
00040     
00041     /*! \brief Return the rotation \f$R^{ECEF-SEZ}\f$
00042         * \f${\bf r}_{ECEF} = R_{2}\left(\pi-\theta_{LST}\right)R_{3}\left(\theta_{LST}\right){\bf r}_{IJK}\f$
00043         * @return rotation from IJK to SEZ
00044         */
00045     Rotation GetRotationFromIJK() const;
00046     
00047     OrbitFrameEQW* NewPointer();
00048     OrbitFrameEQW* Clone();
00049     
00050 protected:
00051     int m_fr;
00052 private:
00053 
00054 };
00055 inline OrbitFrameEQW::OrbitFrameEQW(const double &_LongAscNode, const double &_Inclination)
00056             {
00057                 if(_Inclination>0 && _Inclination<=PI/2) {m_fr = 1;} 
00058                 else{m_fr = -1;} 
00059                 m_Transformation2IJK = R3(-m_fr*m_LongAscNode)*R1(-m_Inclination)*R3(m_LongAscNode);
00060             };
00061 inline OrbitFrameEQW::~OrbitFrameEQW() {};
00062 inline Rotation OrbitFrameEQW::GetRotation2IJK() const    {return m_Transformation2IJK;};
00063 inline Rotation OrbitFrameEQW::GetRotationFromIJK() const {return ~m_Transformation2IJK;};
00064 
00065 inline OrbitFrameEQW* OrbitFrameEQW::NewPointer()       { return new OrbitFrameEQW(); }
00066 inline OrbitFrameEQW* OrbitFrameEQW::Clone()            { return new OrbitFrameEQW(*this); }
00067 #endif
00068 
00069 // Do not change the comments below - they will be added automatically by CVS
00070 /*****************************************************************************
00071 *       $Log: OrbitFrameEQW.h,v $
00072 *       Revision 1.1.1.1  2005/04/26 17:40:59  cakinli
00073 *       Adding OpenSESSAME to DSACSS distrib to capture fixed version.
00074 *       
00075 *       Revision 1.7  2003/05/20 17:47:59  nilspace
00076 *       Updated comments.
00077 *       
00078 *       Revision 1.6  2003/04/29 20:17:39  nilspace
00079 *       Added NewPointer() and Clone() functions.
00080 *       
00081 *       Revision 1.5  2003/04/29 18:45:31  nilspace
00082 *       Moved all function definitions out of class interface definition.
00083 *       
00084 *       Revision 1.4  2003/04/24 20:05:55  nilspace
00085 *       Made GetRotation functions const.
00086 *       
00087 *       Revision 1.3  2003/04/23 16:26:05  nilspace
00088 *       Updated directory structure & default parameters.
00089 *       
00090 *       Revision 1.2  2003/04/22 17:37:25  nilspace
00091 *       Added reference frames.
00092 *       
00093 *       Revision 1.1  2003/04/08 22:48:03  nilspace
00094 *       Initial Submission.
00095 *               
00096 *
00097 ******************************************************************************/

Generated on Wed Sep 5 12:54:23 2007 for DSACSS Operational Code by  doxygen 1.3.9.1