Earth Observation Mission CFI Software Pointing Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.4 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: Target.h,v 1.12 2012/07/09 10:45:10 expcfi Exp $ 00007 //-------------------------------------------------------------------- 00008 00009 #ifndef _TARGET_H 00010 #define _TARGET_H 00011 00012 //--INCLUDE----------------------------------------------------------- 00013 #include <vector> 00014 #include <string> 00015 00016 #include "PointingData.h" 00017 #include "CfiError.h" 00018 #include "CfiId.h" 00019 #include "TimeCorrelation.h" 00020 #include "Attitude.h" 00021 #include "SatId.h" 00022 #include "AtmosId.h" 00023 #include "DemId.h" 00024 00025 //--NAMESPACES-------------------------------------------------------- 00026 using namespace std; 00027 00028 namespace EECFI 00029 { 00030 00034 class Target: public CfiId 00035 { 00036 public: 00037 00038 long numUserTarget; 00039 long numLosTarget; 00040 00042 Target( const Attitude &attitude, const DemId &demId, const AtmosId &atmosId ) throw (CfiError); 00043 00045 ~Target() throw (CfiError); 00046 00050 void targetInter( const SatId &satId, long deriv, long interFlag, double losAz, 00051 double losEl, double geodAlt, double losAzRate, double losElRate, 00052 long iray, double freq ) throw (CfiError); 00053 00056 void targetTravelTime( const SatId &satId, long deriv, double losAz, 00057 double losEl, double travelTime, double losAzRate, double losElRate, 00058 double travelTimeRate, long iray, double freq ) throw (CfiError); 00059 00063 void targetGroundRange( const SatId &satId, long deriv, double losAz, 00064 double losEl, double geodAlt, double distance, 00065 double losAzRate, double losElRate ) throw (CfiError); 00066 00072 void targetIncidenceAngle( const SatId &satId, long deriv, double losAz, 00073 double incidenceAngle, double geodAlt, 00074 double losAzRate ) throw (CfiError); 00075 00080 void targetRange( const SatId &satId, long deriv, double losAz, 00081 double range, double geodAlt, 00082 double losAzRate, double rangeRate ) throw (CfiError); 00083 00087 void targetRangeRate( const SatId &satId, long deriv, double efRangeRate, 00088 double range, double geodAlt, 00089 double efRangeRateRate, double rangeRate ) throw (CfiError); 00090 00094 void targetTangent( const SatId &satId, long deriv, double losAz, 00095 double losEl, double losAzRate, double losElRate, 00096 long iray, double freq ) throw (CfiError); 00097 00102 void targetAltitude( const SatId &satId, long deriv, double losAz, 00103 double geodAlt, double losAzRate, 00104 long iray, double freq ) throw (CfiError); 00105 00109 void targetStar( const SatId &satId, long deriv, double starRa, 00110 double starDec, double starRaRate, double starDecRate, 00111 long iray, double freq ) throw (CfiError); 00112 00115 void targetTangentSun( const SatId &satId, long deriv, 00116 long iray, double freq ) throw (CfiError); 00117 00120 void targetTangentMoon( const SatId &satId, long deriv, 00121 long iray, double freq ) throw (CfiError); 00122 00125 void targetStation( const SatId &satId, long deriv, double geocLong, 00126 double geodLat, double geodAlt, double minLinkEl ) throw (CfiError); 00127 00131 void targetDRS( const SatId &satId, long deriv, 00132 double drsPos[3], double drsVel[3] ) throw (CfiError); 00133 00136 void targetGeneric( const SatId &satId, long deriv, 00137 double targPos[3], double targVel[3], double targAcc[3] ) throw (CfiError); 00138 00142 void targetReflected( const SatId &satId, 00143 long deriv, double geodAlt, double deflectionNorth, 00144 double deflectionEast, long sourceType, 00145 vector<double> &sourceParam ) throw (CfiError); 00146 00148 void targetSc( const SatId &satId1, const SatId &satId2, const Attitude &att2, 00149 long deriv ) throw (CfiError); // Added for AN-353 00150 00154 void multiTargetInter( const SatId &satId, long deriv, long interFlag, double losAz, 00155 double losEl, long numTarget, vector<double> &geodAlt, double losAzRate, 00156 double losElRate, long iray, double freq ) throw (CfiError); 00157 00160 void multiTargetTravelTime( const SatId &satId, long deriv, double losAz, 00161 double losEl, long numTarget, vector<double> &travelTime, 00162 double losAzRate, double losElRate, double travelTimeRate, 00163 long iray, double freq ) throw (CfiError); 00164 00170 void targetListInter( const SatId &satId, long deriv, long interFlag, 00171 const InstrumentData &instrData, double geodAlt, 00172 TargetOutput &targOut ) throw (CfiError); 00173 00185 void extraVector( long choice, long targetType, long targetNumber, 00186 vector<double> &vectorResult, vector<double> &vectorResultRate, 00187 vector<double> &vectorResultRateRate) throw (CfiError); 00188 00198 void extraMain( long choice, long targetType, long targetNumber, 00199 vector<double> &mainResult, vector<double> &mainResultRate, 00200 vector<double> &mainResultRateRate ) throw (CfiError); 00201 00211 void extraAux( long choice, long targetType, long targetNumber, 00212 vector<double> &extraResult, vector<double> &extraResultRate, 00213 vector<double> &extraResultRateRate ) throw (CfiError); 00214 00225 void extraTargetToSun( long choice, long targetType, long targetNumber, 00226 long iray, double freq, 00227 vector<double> &sunResult, vector<double> &sunResultRate, 00228 vector<double> &sunResultRateRate) throw (CfiError); 00229 00239 void extraTargetToMoon( long choice, long targetType, long targetNumber, 00240 long iray, double freq, 00241 vector<double> &moonResult, vector<double> &moonResultRate, 00242 vector<double> &moonResultRateRate ) throw (CfiError); 00243 00253 void extraEfTarget( long choice, long targetType, long targetNumber, double freq, 00254 vector<double> &efResultRate, vector<double> &efResultRateRate ) throw (CfiError); 00255 00265 void extraSpecularReflection( long choice, long targetType, long targetNumber, 00266 double deflectionNorth, double deflectionEast, 00267 vector<double> &specRefResult, vector<double> &specRefResultRate, 00268 vector<double> &specRefResultRateRate ) throw (CfiError); 00269 00271 SatId satId() const; 00272 00283 TargetIdData* getData() const throw (CfiError); 00284 00286 Target const &operator=(Target const &target); 00287 00288 protected: 00289 00291 GenericId* getId(); 00292 00293 private: 00294 00295 Attitude attitude; 00296 DemId demId; 00297 AtmosId atmosId; 00298 00299 }; 00300 00301 } // closing namespace 00302 00303 #endif