Earth Observation Mission CFI Software Pointing Software User Manual |
00001 //-------------------------------------------------------------------- 00002 // CVS Info: $Id: Target.h,v 1.4 2009/04/13 13:46:51 expcfi Exp $ 00003 //-------------------------------------------------------------------- 00004 00005 #ifndef _TARGET_H 00006 #define _TARGET_H 00007 00008 //--INCLUDE----------------------------------------------------------- 00009 #include <vector> 00010 #include <string> 00011 00012 #include "PointingData.h" 00013 #include "CfiError.h" 00014 #include "CfiId.h" 00015 #include "TimeCorrelation.h" 00016 #include "Attitude.h" 00017 #include "SatId.h" 00018 #include "AtmosId.h" 00019 #include "DemId.h" 00020 00021 //--NAMESPACES-------------------------------------------------------- 00022 using namespace std; 00023 00024 namespace EECFI 00025 { 00026 00030 class Target: public CfiId 00031 { 00032 public: 00033 00034 long numUserTarget; 00035 long numLosTarget; 00036 00038 Target( const Attitude &attitude, const DemId &demId, const AtmosId &atmosId ) throw (CfiError); 00039 00041 ~Target() throw (CfiError); 00042 00046 void targetInter( const SatId &satId, long deriv, long interFlag, double losAz, 00047 double losEl, double geodAlt, double losAzRate, double losElRate, 00048 long iray, double freq ) throw (CfiError); 00049 00052 void targetTravelTime( const SatId &satId, long deriv, double losAz, 00053 double losEl, double travelTime, double losAzRate, double losElRate, 00054 double travelTimeRate, long iray, double freq ) throw (CfiError); 00055 00059 void targetGroundRange( const SatId &satId, long deriv, double losAz, 00060 double losEl, double geodAlt, double distance, 00061 double losAzRate, double losElRate ) throw (CfiError); 00062 00068 void targetIncidenceAngle( const SatId &satId, long deriv, double losAz, 00069 double incidenceAngle, double geodAlt, 00070 double losAzRate ) throw (CfiError); 00071 00076 void targetRange( const SatId &satId, long deriv, double losAz, 00077 double range, double geodAlt, 00078 double losAzRate, double rangeRate ) throw (CfiError); 00079 00083 void targetRangeRate( const SatId &satId, long deriv, double efRangeRate, 00084 double range, double geodAlt, 00085 double efRangeRateRate, double rangeRate ) throw (CfiError); 00086 00090 void targetTangent( const SatId &satId, long deriv, double losAz, 00091 double losEl, double losAzRate, double losElRate, 00092 long iray, double freq ) throw (CfiError); 00093 00098 void targetAltitude( const SatId &satId, long deriv, double losAz, 00099 double geodAlt, double losAzRate, 00100 long iray, double freq ) throw (CfiError); 00101 00105 void targetStar( const SatId &satId, long deriv, double starRa, 00106 double starDec, double starRaRate, double starDecRate, 00107 long iray, double freq ) throw (CfiError); 00108 00111 void targetTangentSun( const SatId &satId, long deriv, 00112 long iray, double freq ) throw (CfiError); 00113 00116 void targetTangentMoon( const SatId &satId, long deriv, 00117 long iray, double freq ) throw (CfiError); 00118 00121 void targetStation( const SatId &satId, long deriv, double geocLong, 00122 double geodLat, double geodAlt, double minLinkEl ) throw (CfiError); 00123 00126 void targetDRS( const SatId &satId, long deriv, 00127 double drsPos[3], double drsVel[3] ) throw (CfiError); 00128 00131 void targetGeneric( const SatId &satId, long deriv, 00132 double targPos[3], double targVel[3], double targAcc[3] ) throw (CfiError); 00133 00137 void targetReflected( const SatId &satId, 00138 long deriv, double geodAlt, double deflectionNorth, 00139 double deflectionEast, long sourceType, 00140 vector<double> &sourceParam ) throw (CfiError); 00141 00145 void multiTargetInter( const SatId &satId, long deriv, long interFlag, double losAz, 00146 double losEl, long numTarget, vector<double> &geodAlt, double losAzRate, 00147 double losElRate, long iray, double freq ) throw (CfiError); 00148 00151 void multiTargetTravelTime( const SatId &satId, long deriv, double losAz, 00152 double losEl, long numTarget, vector<double> &travelTime, 00153 double losAzRate, double losElRate, double travelTimeRate, 00154 long iray, double freq ) throw (CfiError); 00155 00159 void extraVector( long choice, long targetType, long targetNumber, 00160 vector<double> &vectorResult, vector<double> &vectorResultRate, 00161 vector<double> &vectorResultRateRate) throw (CfiError); 00162 00164 void extraMain( long choice, long targetType, long targetNumber, 00165 vector<double> &mainResult, vector<double> &mainResultRate, 00166 vector<double> &mainResultRateRate ) throw (CfiError); 00167 00169 void extraAux( long choice, long targetType, long targetNumber, 00170 vector<double> &extraResult, vector<double> &extraResultRate, 00171 vector<double> &extraResultRateRate ) throw (CfiError); 00172 00175 void extraTargetToSun( long choice, long targetType, long targetNumber, 00176 long iray, double freq, 00177 vector<double> &sunResult, vector<double> &sunResultRate, 00178 vector<double> &sunResultRateRate) throw (CfiError); 00179 00181 void extraTargetToMoon( long choice, long targetType, long targetNumber, 00182 long iray, double freq, 00183 vector<double> &moonResult, vector<double> &moonResultRate, 00184 vector<double> &moonResultRateRate ) throw (CfiError); 00185 00187 void extraEfTarget( long choice, long targetType, long targetNumber, double freq, 00188 vector<double> &efResultRate, vector<double> &efResultRateRate ) throw (CfiError); 00189 00191 void extraSpecularReflection( long choice, long targetType, long targetNumber, 00192 double deflectionNorth, double deflectionEast, 00193 vector<double> &specRefResult, vector<double> &specRefResultRate, 00194 vector<double> &specRefResultRateRate ) throw (CfiError); 00195 00197 SatId satId() const; 00198 00200 TargetIdData getData() const throw (CfiError); 00201 00203 Target const &operator=(Target const &target); 00204 00205 protected: 00206 00208 GenericId* getId(); 00209 00210 private: 00211 00212 Attitude attitude; 00213 DemId demId; 00214 AtmosId atmosId; 00215 00216 }; 00217 00218 } // closing namespace 00219 00220 #endif