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

OrbitFramePQW.h

Go to the documentation of this file.
00001 //////////////////////////////////////////////////////////////////////////////////////////////////
00002 /*! \file OrbitFramePQW.h
00003 *  \brief Interface to the Perifocal Satellite Coordinate System 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_PQW_H__
00014 #define __SSF_ORBIT_FRAME_PQW_H__
00015 #include "OrbitFrame.h"
00016 
00017 /*! \brief Satellite Radial Coordinate System
00018 * \ingroup OrbitFrames
00019 *
00020 * \detail The fundamental plane is the satellite's orbit, and the origin is at the 
00021 * center of the Earth. The P axis points towards perigee, and the Q axis is \f$90^{\circ}\f$
00022 * from the P axis in the direction of satellite motion. The W axis is then normal to the orbit. 
00023 * The PQW system always maintains an orientation towards perigee and is therefore best
00024 * suited for robits with a well-defined eccentricity. (Vallado, pg 41)
00025 *       
00026 */
00027 class OrbitFramePQW : public OrbitFrame
00028 {
00029     /*! \brief Constructor
00030         * @param _LongAscNode Longitude of the Ascending Node (rad)
00031         * @param _Inclination Inclination (rad)
00032         * @param _ArgPerigee Argument of Perigee (rad)
00033         */
00034     OrbitFramePQW(const double &_LongAscNode, const double &_Inclination, const double &_ArgPerigee);
00035     
00036     /*! \brief Deconstructor */
00037     virtual ~OrbitFramePQW();
00038     /*! \brief Return the rotation \f$R^{PQW-IJK}\f$
00039         * \f${\bf r}_{IJK} = R_{3}\left(-\Omega\right)R_{1}\left(-i\right)R_{3}\left(-\omega\right){\bf r}_{ECEF}\f$
00040         * @return rotation from PQW to IJK
00041         */
00042     Rotation GetRotation2IJK() const;
00043     
00044     /*! \brief Return the rotation \f$R^{IJK-PQW}\f$
00045         * \f${\bf r}_{ECEF} = R_{3}\left(\omega\right)R_{1}\left(i\right)R_{3}\left(\Omega\right){\bf r}_{IJK}\f$
00046         * @return rotation from IJK to PQW
00047         */
00048     Rotation GetRotationFromIJK() const;
00049     
00050     OrbitFramePQW* NewPointer();
00051     OrbitFramePQW* Clone();
00052 protected:
00053     
00054 private:
00055 
00056 };
00057 inline OrbitFramePQW::OrbitFramePQW(const double &_LongAscNode, const double &_Inclination, const double &_ArgPerigee): OrbitFrame(R3(-_LongAscNode)*R1(-_Inclination)*R3(-_ArgPerigee)) {};
00058 inline OrbitFramePQW::~OrbitFramePQW() {};
00059 
00060 inline Rotation OrbitFramePQW::GetRotation2IJK() const {return m_Transformation2IJK;};
00061 inline Rotation OrbitFramePQW::GetRotationFromIJK() const {return ~m_Transformation2IJK;};
00062 inline OrbitFramePQW* OrbitFrameIJK::NewPointer()               { return new OrbitFramePQW(); }
00063 inline OrbitFramePQW* OrbitFrameIJK::Clone()                    { return new OrbitFramePQW(*this); }
00064 
00065 #endif
00066 
00067 // Do not change the comments below - they will be added automatically by CVS
00068 /*****************************************************************************
00069 *       $Log: OrbitFramePQW.h,v $
00070 *       Revision 1.1.1.1  2005/04/26 17:40:59  cakinli
00071 *       Adding OpenSESSAME to DSACSS distrib to capture fixed version.
00072 *       
00073 *       Revision 1.8  2003/05/21 03:51:38  nilspace
00074 *       Fixed spelling of "the" in comments.
00075 *       
00076 *       Revision 1.7  2003/05/20 17:47:59  nilspace
00077 *       Updated comments.
00078 *       
00079 *       Revision 1.6  2003/04/29 20:17:40  nilspace
00080 *       Added NewPointer() and Clone() functions.
00081 *       
00082 *       Revision 1.5  2003/04/29 18:45:35  nilspace
00083 *       Moved all function definitions out of class interface definition.
00084 *       
00085 *       Revision 1.4  2003/04/24 20:05:55  nilspace
00086 *       Made GetRotation functions const.
00087 *       
00088 *       Revision 1.3  2003/04/23 16:26:06  nilspace
00089 *       Updated directory structure & default parameters.
00090 *       
00091 *       Revision 1.2  2003/04/22 17:37:25  nilspace
00092 *       Added reference frames.
00093 *       
00094 *       Revision 1.1  2003/04/08 22:48:04  nilspace
00095 *       Initial Submission.
00096 *       
00097 *
00098 ******************************************************************************/

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