![]() |
Earth Observation Mission CFI Software Pointing Software User Manual |
![]() |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.2 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: Target.h,v 1.4 2009/04/13 13:46:51 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 00130 void targetDRS( const SatId &satId, long deriv, 00131 double drsPos[3], double drsVel[3] ) throw (CfiError); 00132 00135 void targetGeneric( const SatId &satId, long deriv, 00136 double targPos[3], double targVel[3], double targAcc[3] ) throw (CfiError); 00137 00141 void targetReflected( const SatId &satId, 00142 long deriv, double geodAlt, double deflectionNorth, 00143 double deflectionEast, long sourceType, 00144 vector<double> &sourceParam ) throw (CfiError); 00145 00149 void multiTargetInter( const SatId &satId, long deriv, long interFlag, double losAz, 00150 double losEl, long numTarget, vector<double> &geodAlt, double losAzRate, 00151 double losElRate, long iray, double freq ) throw (CfiError); 00152 00155 void multiTargetTravelTime( const SatId &satId, long deriv, double losAz, 00156 double losEl, long numTarget, vector<double> &travelTime, 00157 double losAzRate, double losElRate, double travelTimeRate, 00158 long iray, double freq ) throw (CfiError); 00159 00163 void extraVector( long choice, long targetType, long targetNumber, 00164 vector<double> &vectorResult, vector<double> &vectorResultRate, 00165 vector<double> &vectorResultRateRate) throw (CfiError); 00166 00168 void extraMain( long choice, long targetType, long targetNumber, 00169 vector<double> &mainResult, vector<double> &mainResultRate, 00170 vector<double> &mainResultRateRate ) throw (CfiError); 00171 00173 void extraAux( long choice, long targetType, long targetNumber, 00174 vector<double> &extraResult, vector<double> &extraResultRate, 00175 vector<double> &extraResultRateRate ) throw (CfiError); 00176 00179 void extraTargetToSun( long choice, long targetType, long targetNumber, 00180 long iray, double freq, 00181 vector<double> &sunResult, vector<double> &sunResultRate, 00182 vector<double> &sunResultRateRate) throw (CfiError); 00183 00185 void extraTargetToMoon( long choice, long targetType, long targetNumber, 00186 long iray, double freq, 00187 vector<double> &moonResult, vector<double> &moonResultRate, 00188 vector<double> &moonResultRateRate ) throw (CfiError); 00189 00191 void extraEfTarget( long choice, long targetType, long targetNumber, double freq, 00192 vector<double> &efResultRate, vector<double> &efResultRateRate ) throw (CfiError); 00193 00195 void extraSpecularReflection( long choice, long targetType, long targetNumber, 00196 double deflectionNorth, double deflectionEast, 00197 vector<double> &specRefResult, vector<double> &specRefResultRate, 00198 vector<double> &specRefResultRateRate ) throw (CfiError); 00199 00201 SatId satId() const; 00202 00204 TargetIdData getData() const throw (CfiError); 00205 00207 Target const &operator=(Target const &target); 00208 00209 protected: 00210 00212 GenericId* getId(); 00213 00214 private: 00215 00216 Attitude attitude; 00217 DemId demId; 00218 AtmosId atmosId; 00219 00220 }; 00221 00222 } // closing namespace 00223 00224 #endif