ForceModelList.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: ForceModelList.hpp 2457 2010-08-18 14:20:12Z coandrei $"
00002 
00008 #ifndef GPSTK_FORCE_MODEL_LIST_HPP
00009 #define GPSTK_FORCE_MODEL_LIST_HPP
00010 
00011 //============================================================================
00012 //
00013 //  This file is part of GPSTk, the GPS Toolkit.
00014 //
00015 //  The GPSTk is free software; you can redistribute it and/or modify
00016 //  it under the terms of the GNU Lesser General Public License as published
00017 //  by the Free Software Foundation; either version 2.1 of the License, or
00018 //  any later version.
00019 //
00020 //  The GPSTk is distributed in the hope that it will be useful,
00021 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 //  GNU Lesser General Public License for more details.
00024 //
00025 //  You should have received a copy of the GNU Lesser General Public
00026 //  License along with GPSTk; if not, write to the Free Software Foundation,
00027 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 //
00029 //  Wei Yan - Chinese Academy of Sciences . 2009, 2010
00030 //
00031 //============================================================================
00032 
00033 
00034 #include "EarthBody.hpp"
00035 #include "ForceModel.hpp"
00036 
00037 #include <list>
00038 #include <set>
00039 
00040 namespace gpstk
00041 {
00044       
00049    class ForceModelList : public ForceModel
00050    {
00051    public:
00052 
00054       ForceModelList();
00055 
00057       virtual ~ForceModelList()
00058       {};
00059          
00061       void clear()
00062       { setFMT.clear(); }
00063 
00068       void addForce(ForceModel* pForce)
00069       { forceList.push_back(pForce); };
00070 
00071 
00076       void removeForce(ForceModel* pForce)
00077       { forceList.remove(pForce); }
00078       
00079 
00081       virtual Vector<double> getDerivatives(UTCTime utc, EarthBody& bref, Spacecraft& sc);
00082       
00083 
00084       void setForceModelType(std::set<ForceModel::ForceModelType> fmt);
00085 
00087       virtual std::string modelName() const
00088       { return "ForceModelList"; };
00089 
00090 
00092       virtual int forceIndex() const
00093       { return FMI_LIST; }
00094 
00096       void printForceModel(std::ostream& s);
00097 
00098    protected:
00099 
00101       list<ForceModel*> forceList;
00102 
00103       std::set<ForceModel::ForceModelType> setFMT;
00104 
00105    }; // End of class 'ForceModelList'
00106 
00107       // @}
00108 
00109 }  // End of namespace 'gpstk'
00110 
00111 #endif   // GPSTK_FORCE_MODEL_LIST_HPP
00112 
00113 
00114 

Generated on Tue May 22 03:30:58 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1