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

OrbitFrameNTW.h

Go to the documentation of this file.
00001 //////////////////////////////////////////////////////////////////////////////////////////////////
00002 /*! \file OrbitFrameNTW.h
00003 *  \brief Interface to the NTW 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_NTW_H__
00014 #define __SSF_ORBIT_FRAME_NTW_H__
00015 #include "OrbitFrame.h"
00016 
00017 /*! \brief NTW Satellite Coordinate System
00018 *
00019 * Detailed Description. The primary axis lies in the orbital plane, normal to the velocity
00020 * vector. The T axis is tangential to the orbit, and the W axis is normal to the orbital plane.
00021 * In-track: deviations along the T axis.
00022 * Used mainly to analyze drag effects on the orbit because drag always acts along the velocity
00023 * vector. Also referred to as the Frenet System. (Vallado, pg. 43-44)   
00024 */
00025 class OrbitFrameNTW : public OrbitFrame
00026 {
00027     /*! \brief Constructor
00028         * @param _LongAscNode Longitude of the Ascending Node (rad)
00029         * @param _Inclination Inclination (rad)
00030         * @param _ArgPerigee Argument of Perigee (rad)
00031         * @param _ArgLatitude Argument of Latitude (rad)
00032         */
00033     OrbitFrameNTW(const double &_LongAscNode, const double &_Inclination, const double &_ArgPerigee, const double &_ArgLatitude);
00034     
00035     /*! \brief Deconstructor */
00036     virtual ~OrbitFrameNTW();
00037     
00038     /*! \brief Return the rotation \f$R^{NTW-IJK}\f$
00039         * \f${\bf r}_{IJK} = R_{3}(-\Omega)R_{1}(-i)R_{3}(-u)R_{3}(-\phi_{fpa}){\bf r}_{NTW}\f$
00040         * @return rotation from NTW to IJK
00041         */
00042     Rotation GetRotation2IJK() const;
00043     
00044     /*! \brief Return the rotation \f$R^{IJK-NTW}\f$
00045         * \f${\bf r}_{NTW} = R_{3}(\phi_{fpa})R_{3}(u)R_{1}(i)R_{3}(\Omega){\bf r}_{IJK}\f$
00046         * @return rotation from IJK to NTW
00047         */
00048     Rotation GetRotationFromIJK() const;
00049 
00050     OrbitFrameNTW* NewPointer();
00051     OrbitFrameNTW* Clone();
00052 protected:
00053     
00054 private:
00055 
00056 };
00057 inline OrbitFrameNTW::OrbitFrameNTW(const double &_LongAscNode, const double &_Inclination, const double &_ArgPerigee, const double &_ArgLatitude): OrbitFrame(R3(-_LongAscNode)*R1(-_Inclination)*R3(-_ArgPerigee)*R3(-_ArgLatitude)) {};
00058 inline OrbitFrameNTW::~OrbitFrameNTW() {};
00059 
00060 inline Rotation OrbitFrameNTW::GetRotation2IJK() const {return m_Transformation2IJK;};
00061 inline Rotation OrbitFrameNTW::GetRotationFromIJK() const {return ~m_Transformation2IJK;};
00062 inline OrbitFrameNTW* OrbitFrameNTW::NewPointer()               { return new OrbitFrameNTW(); }
00063 inline OrbitFrameNTW* OrbitFrameNTW::Clone()                    { return new OrbitFrameNTW(*this); }
00064 #endif
00065 
00066 // Do not change the comments below - they will be added automatically by CVS
00067 /*****************************************************************************
00068 *       $Log: OrbitFrameNTW.h,v $
00069 *       Revision 1.1.1.1  2005/04/26 17:40:59  cakinli
00070 *       Adding OpenSESSAME to DSACSS distrib to capture fixed version.
00071 *       
00072 *       Revision 1.6  2003/04/29 20:17:39  nilspace
00073 *       Added NewPointer() and Clone() functions.
00074 *       
00075 *       Revision 1.5  2003/04/29 18:45:35  nilspace
00076 *       Moved all function definitions out of class interface definition.
00077 *       
00078 *       Revision 1.4  2003/04/24 20:05:55  nilspace
00079 *       Made GetRotation functions const.
00080 *       
00081 *       Revision 1.3  2003/04/23 16:26:06  nilspace
00082 *       Updated directory structure & default parameters.
00083 *       
00084 *       Revision 1.2  2003/04/22 17:37:25  nilspace
00085 *       Added reference frames.
00086 *       
00087 *       Revision 1.1  2003/04/08 22:48:04  nilspace
00088 *       Initial Submission.
00089 *               
00090 *
00091 ******************************************************************************/

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