Orbit.h

Go to the documentation of this file.
00001 
00002 
00008 /* 
00009 *
00010 */
00012 
00013 #ifndef __SSF_ORBIT_H__
00014 #define __SSF_ORBIT_H__
00015 
00016 #include "Functor.h"
00017 #include "Environment.h"
00018 #include "Propagator.h"
00019 #include "OrbitState.h"
00020 #include "OrbitHistory.h"
00021 
00022 
00023 namespace O_SESSAME {
00024 class Propagator; // forward declaration
00025 
00033 typedef void (*IntegratedOrbitStateConversionFunction)(const Matrix &_meshPoint, OrbitState &_convertedOrbitState);
00034 
00035 
00037 
00057 class Orbit
00058 {
00059 public:
00061     Orbit();
00063     virtual ~Orbit();
00064     
00065 public:
00069     void SetStateObject(const OrbitState& _currentOrbitPosition);
00070     
00074     OrbitState GetStateObject() const;
00075   
00076 protected:
00078     OrbitState m_CurrentOrbitPosition;
00079     
00080     
00081 // ***************************** 
00082 // ******** PROPAGATION ******** 
00083 // ***************************** 
00084 public:
00088     void SetDynamicsEq(odeFunctor _orbitDynamicsEq);
00089 
00093     odeFunctor GetDynamicsEq();
00094 
00098     void SetStateConversion(IntegratedOrbitStateConversionFunction _ConversionFunction);
00099 
00103     IntegratedOrbitStateConversionFunction GetStateConversion() const;
00104 
00108     void SetPropagator(Propagator *_pPropagator);
00109     
00113     Propagator* GetPropagator();
00114     
00117     void Propagate(const Vector &_propTime);
00118         
00123     bool IsIntegrateable();
00124         
00125 private:
00127     Propagator *m_pPropagator;
00128     
00130     IntegratedOrbitStateConversionFunction m_OrbitStateConversionFunction;
00131     
00133     odeFunctor m_OrbitDynamicsEq;
00134 
00136     bool m_Integrateable;
00137     
00138 // ***************************** 
00139 // ********* Physical ********** 
00140 // ***************************** 
00141 public:
00146     void SetParameters(const Matrix &_Parameters);
00147     
00151     Matrix GetParameters() const;
00152     
00153 private:
00154     Matrix m_Parameters;
00155 
00156 // ***************************** 
00157 // ******** ENVIRONMENT ********
00158 // *****************************  
00159 public:
00163     void SetEnvironment(Environment *_pEnvironment);    
00164     
00168     Environment* GetEnvironment();
00169         
00170     
00171     void SetControlForces(const Vector &_controlForces);
00172     Vector GetControlForces();
00173     
00179     ObjectFunctor<Environment> GetEnvironmentForcesFunctor();
00180 private:
00182     Environment *m_pEnvironment;
00184     Vector m_ControlForces;
00185     
00187     ObjectFunctor<Environment> m_EnvironmentForcesFunctor;
00188     
00189 // *************************
00190 // ******** HISTORY ******** 
00191 // ************************* 
00192 public:
00203     OrbitHistory& GetHistoryObject();
00204     
00205 private:
00206     OrbitHistory m_OrbitHistory;
00207 
00208 }; // End of OrbitToolkit Group
00210 
00211 } // close namespace O_SESSAME
00212 #endif
00213 
00214 // Do not change the comments below - they will be added automatically by CVS
00215 /*****************************************************************************
00216 *       $Log: Orbit.h,v $
00217 *       Revision 1.9  2003/06/10 14:52:05  nilspace
00218 *       Changed GetHistory to GetHistoryObject
00219 *       
00220 *       Revision 1.8  2003/05/20 17:47:59  nilspace
00221 *       Updated comments.
00222 *       
00223 *       Revision 1.7  2003/05/02 16:16:46  nilspace
00224 *       Documented the API.
00225 *       
00226 *       Revision 1.6  2003/04/28 20:13:18  nilspace
00227 *       GetHistory return by reference.
00228 *       
00229 *       Revision 1.5  2003/04/27 22:04:33  nilspace
00230 *       Created the namespace O_SESSAME.
00231 *       
00232 *       Revision 1.4  2003/04/27 21:17:42  nilspace
00233 *       Finished moving function declarations out of the class interface.
00234 *       
00235 *       Revision 1.3  2003/04/27 21:14:01  nilspace
00236 *       Added to the namespace O_SESSAME.
00237 *       Moved function definitions outside of the class interface definition.
00238 *       
00239 *       Revision 1.2  2003/04/25 13:36:28  nilspace
00240 *       Updated to work with current History, Environment & Propagator objects.
00241 *       
00242 *       Revision 1.1  2003/04/08 22:48:59  nilspace
00243 *       Initial Submission.
00244 *
00245 ******************************************************************************/

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