OrbitState.h

Go to the documentation of this file.
00001 
00002 
00008 /* 
00009 * 
00010 */
00012 
00013 #ifndef __SSF_ORBIT_STATE_H__
00014 #define __SSF_ORBIT_STATE_H__
00015 
00016 #include "orbitframes/OrbitFrame.h"
00017 #include "orbitstaterep/OrbitStateRepresentation.h"
00018 
00019 namespace O_SESSAME {
00020 
00047 class OrbitState
00048 {
00049 public:
00051     OrbitState();
00053     virtual ~OrbitState();
00055     OrbitState(const OrbitState &_OrbStateCopy);
00056     
00061     OrbitState(OrbitStateRepresentation* _pOrbRep, OrbitFrame* _pOrbFrame = NULL);
00062     
00069     void SetOrbitFrame(OrbitFrame* _pnewOrbitFrame);
00070     
00074     OrbitFrame* GetOrbitFrame() const;
00075     
00079     void SetStateRepresentation(OrbitStateRepresentation* _pStateRep);
00080     
00085     void SetStateRepresentation(OrbitStateRepresentation* _pStateRep, OrbitFrame* _pOrbFrame);
00086     
00090     OrbitStateRepresentation* GetStateRepresentation() const;
00091 
00097     double GetOrbitAngularMomentum() const;
00098     
00103     void SetState(const Vector& _state);
00104 
00110     void SetState(const Vector& _state, OrbitFrame* _pOrbFrame);
00111     
00116     Vector GetState() const;
00117     
00122     OrbitState operator= (const OrbitState& _OrbStateCopy);
00123 private:
00125     OrbitStateRepresentation* m_pOrbitStateRepresentation;
00127     OrbitFrame* m_pOrbitFrame;
00128 };
00129 
00130 /* Possibility of turning into a template class
00131 OrbitState<PositionVelocity, OrbFrameIJK> initialOrbit1;
00132 OrbitState<Keplerian, OrbFrameSEZ> initialOrbit1.ChangeType();
00133 vs.
00134 OrbitState initOrb1(POSITION_VELOCITY, ORBFRAME_IJK);
00135 initOrb1.ChangeType(KEPLERIAN);
00136 initOrb1.GetKeplerianElements();
00137 
00138 template <TOrbRep, TOrbFrame>
00139 class OrbitState
00140 {
00141 public:
00142     OrbitState();
00143     virtual ~OrbitState();
00144     OrbitState(const Vector& _State);
00145     
00146 //    void SetOrbitFrame(const TOrbFrame &_newOrbitFrame);
00147     const TOrbFrame& GetOrbitFrame() const;
00148     
00149 //    void SetStateRepresentation(const TOrbRep &_StateRep);
00150 //    void SetStateRepresentation(const TOrbRep &_StateRep, const TOrbFrame &_orbFrame);
00151     const TOrbRep& GetStateRepresentation() const;
00152 
00153     void SetState(const Vector &_state);
00154     const Vector& GetState() const;
00155     
00156 private:
00157     TOrbRep m_OrbitStateRepresentation;
00158     TOrbFrame m_OrbitFrame;
00159 
00160 };
00161 */
00162 } // close namespace O_SESSAME
00163 
00164 #endif
00165 
00166 // Do not change the comments below - they will be added automatically by CVS
00167 /*****************************************************************************
00168 *       $Log: OrbitState.h,v $
00169 *       Revision 1.9  2003/06/12 23:08:20  nilspace
00170 *       Fixed to calculate angular momentum.
00171 *       
00172 *       Revision 1.8  2003/06/12 18:02:15  nilspace
00173 *       Added GetAngularVelocity() function.
00174 *       
00175 *       Revision 1.7  2003/05/22 14:33:58  nilspace
00176 *       Added NULL default value to constructor.
00177 *       
00178 *       Revision 1.6  2003/05/13 18:46:29  nilspace
00179 *       Checked pointers if they were initialized before calling.
00180 *       
00181 *       Revision 1.5  2003/05/02 16:16:46  nilspace
00182 *       Documented the API.
00183 *       
00184 *       Revision 1.4  2003/04/29 20:56:25  nilspace
00185 *       Update to work with Propagator.
00186 *       
00187 *       Revision 1.3  2003/04/29 18:47:31  nilspace
00188 *       Added copy constructor and operator= functions.
00189 *       
00190 *       Revision 1.2  2003/04/23 16:26:02  nilspace
00191 *       Updated directory structure & default parameters.
00192 *       
00193 *       Revision 1.1  2003/04/08 22:47:00  nilspace
00194 *       Initial Submission.
00195 *       
00196 *       
00197 *
00198 ******************************************************************************/

Generated on Wed Aug 6 12:58:50 2003 for Open-Sessame Framework by doxygen1.3