Earth Observation Mission CFI Software Pointing Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.10 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: Target.h,v 1.17 2014-02-20 20:02:34 cavm 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 00118 void targetTangentSun( const SatId &satId, long deriv, 00119 long iray, double freq ) throw (CfiError); 00120 00123 void targetTangentMoon( const SatId &satId, long deriv, 00124 long iray, double freq ) throw (CfiError); 00125 00128 void targetStation( const SatId &satId, long deriv, double geocLong, 00129 double geodLat, double geodAlt, double minLinkEl ) throw (CfiError); 00130 00134 void targetDRS( const SatId &satId, long deriv, 00135 double drsPos[3], double drsVel[3] ) throw (CfiError); 00136 00139 void targetGeneric( const SatId &satId, long deriv, 00140 double targPos[3], double targVel[3], double targAcc[3] ) throw (CfiError); 00141 00145 void targetReflected( const SatId &satId, 00146 long deriv, double geodAlt, double deflectionNorth, 00147 double deflectionEast, long sourceType, 00148 vector<double> &sourceParam ) throw (CfiError); 00149 00151 void targetSc( const SatId &satId1, const SatId &satId2, const Attitude &att2, 00152 long deriv ) throw (CfiError); // Added for AN-353 00153 00157 void multiTargetInter( const SatId &satId, long deriv, long interFlag, double losAz, 00158 double losEl, long numTarget, vector<double> &geodAlt, double losAzRate, 00159 double losElRate, long iray, double freq ) throw (CfiError); 00160 00163 void multiTargetTravelTime( const SatId &satId, long deriv, double losAz, 00164 double losEl, long numTarget, vector<double> &travelTime, 00165 double losAzRate, double losElRate, double travelTimeRate, 00166 long iray, double freq ) throw (CfiError); 00167 00173 void targetListInter( const SatId &satId, long deriv, long interFlag, 00174 const InstrumentData &instrData, double geodAlt, 00175 TargetOutput &targOut ) throw (CfiError); 00176 00188 void extraVector( long choice, long targetType, long targetNumber, 00189 vector<double> &vectorResult, vector<double> &vectorResultRate, 00190 vector<double> &vectorResultRateRate) throw (CfiError); 00191 00201 void extraMain( long choice, long targetType, long targetNumber, 00202 vector<double> &mainResult, vector<double> &mainResultRate, 00203 vector<double> &mainResultRateRate ) throw (CfiError); 00204 00214 void extraAux( long choice, long targetType, long targetNumber, 00215 vector<double> &extraResult, vector<double> &extraResultRate, 00216 vector<double> &extraResultRateRate ) throw (CfiError); 00217 00231 void extraTargetToSun( long choice, long targetType, long targetNumber, 00232 long iray, double freq, 00233 vector<double> &sunResult, vector<double> &sunResultRate, 00234 vector<double> &sunResultRateRate) throw (CfiError); 00235 00245 void extraTargetToMoon( long choice, long targetType, long targetNumber, 00246 long iray, double freq, 00247 vector<double> &moonResult, vector<double> &moonResultRate, 00248 vector<double> &moonResultRateRate ) throw (CfiError); 00249 00259 void extraEfTarget( long choice, long targetType, long targetNumber, double freq, 00260 vector<double> &efResultRate, vector<double> &efResultRateRate ) throw (CfiError); 00261 00271 void extraSpecularReflection( long choice, long targetType, long targetNumber, 00272 double deflectionNorth, double deflectionEast, 00273 vector<double> &specRefResult, vector<double> &specRefResultRate, 00274 vector<double> &specRefResultRateRate ) throw (CfiError); 00275 00280 void extraListVector( long choice, long targetType, 00281 TargetExtraResultsList &list) throw (CfiError); // AN-471 00282 00284 void extraListMain( long choice, long targetType, 00285 TargetExtraResultsList &list) throw (CfiError); // AN-471 00286 00288 void extraListAux( long choice, long targetType, 00289 TargetExtraResultsList &list) throw (CfiError); // AN-471 00290 00296 void extraListTargetToSun( long choice, long targetType, 00297 long iray, double freq, 00298 TargetExtraResultsList &list) throw (CfiError); // AN-471 00299 00302 void extraListTargetToMoon( long choice, long targetType, 00303 long iray, double freq, 00304 TargetExtraResultsList &list) throw (CfiError); // AN-471 00305 00307 void extraListEfTarget( long choice, long targetType, double freq, 00308 TargetExtraResultsList &list) throw (CfiError); // AN-471 00309 00311 void extraListSpecularReflection( long choice, long targetType, 00312 double deflectionNorth, double deflectionEast, 00313 TargetExtraResultsList &list) throw (CfiError); // AN-471 00314 00316 SatId satId() const; 00317 00328 TargetIdData* getData() const throw (CfiError); 00329 00331 Target const &operator=(Target const &target); 00332 00333 protected: 00334 00336 GenericId* getId(); 00337 00338 private: 00339 00340 Attitude attitude; 00341 DemId demId; 00342 AtmosId atmosId; 00343 00346 long getTargetListEnumForWrapper(long cFunc); 00347 00348 }; 00349 00350 } // closing namespace 00351 00352 #endif