Earth Observation Mission CFI Software Pointing Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.18 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 00027 namespace EECFI 00028 { 00029 00033 class XP_DECL Target: public CfiId 00034 { 00035 public: 00036 00037 long numUserTarget; 00038 long numLosTarget; 00039 00041 Target( const Attitude &attitude, const DemId &demId, const AtmosId &atmosId ) ; 00042 00044 ~Target() EXCEPT; 00045 00049 void targetInter( const SatId &satId, long deriv, long interFlag, double losAz, 00050 double losEl, double geodAlt, double losAzRate, double losElRate, 00051 long iray, double freq ) ; 00052 00055 void targetTravelTime( const SatId &satId, long deriv, double losAz, 00056 double losEl, double travelTime, double losAzRate, double losElRate, 00057 double travelTimeRate, long iray, double freq ) ; 00058 00062 void targetGroundRange( const SatId &satId, long deriv, double losAz, 00063 double losEl, double geodAlt, double distance, 00064 double losAzRate, double losElRate ) ; 00065 00071 void targetIncidenceAngle( const SatId &satId, long deriv, double losAz, 00072 double incidenceAngle, double geodAlt, 00073 double losAzRate ) ; 00074 00079 void targetRange( const SatId &satId, long deriv, double losAz, 00080 double range, double geodAlt, 00081 double losAzRate, double rangeRate ) ; 00082 00086 void targetRangeRate( const SatId &satId, long deriv, double efRangeRate, 00087 double range, double geodAlt, 00088 double efRangeRateRate, double rangeRate ) ; 00089 00093 void targetTangent( const SatId &satId, long deriv, double losAz, 00094 double losEl, double losAzRate, double losElRate, 00095 long iray, double freq ) ; 00096 00101 void targetAltitude( const SatId &satId, long deriv, double losAz, 00102 double geodAlt, double losAzRate, 00103 long iray, double freq ) ; 00104 00108 void targetStar( const SatId &satId, long deriv, double starRa, 00109 double starDec, double starRaRate, double starDecRate, 00110 long iray, double freq ) ; 00111 00117 void targetTangentSun( const SatId &satId, long deriv, 00118 long iray, double freq ) ; 00119 00122 void targetTangentMoon( const SatId &satId, long deriv, 00123 long iray, double freq ) ; 00124 00127 void targetStation( const SatId &satId, long deriv, double geocLong, 00128 double geodLat, double geodAlt, double minLinkEl ) ; 00129 00132 void targetGeneric( const SatId &satId, long deriv, 00133 const double targPos[3], const double targVel[3], const double targAcc[3] ) ; 00134 00138 void targetReflected( const SatId &satId, 00139 long deriv, double geodAlt, double deflectionNorth, 00140 double deflectionEast, long sourceType, 00141 const std::vector<double> &sourceParam ) ; 00142 00144 void targetSc( const SatId &satId1, const SatId &satId2, const Attitude &att2, 00145 long deriv ) ; // Added for AN-353 00146 00150 void multiTargetInter( const SatId &satId, long deriv, long interFlag, double losAz, 00151 double losEl, long numTarget, const std::vector<double> &geodAlt, double losAzRate, 00152 double losElRate, long iray, double freq ) ; 00153 00156 void multiTargetTravelTime( const SatId &satId, long deriv, double losAz, 00157 double losEl, long numTarget, const std::vector<double> &travelTime, 00158 double losAzRate, double losElRate, double travelTimeRate, 00159 long iray, double freq ) ; 00160 00166 void targetListInter( const SatId &satId, long deriv, long interFlag, 00167 const InstrumentData &instrData, double geodAlt, 00168 TargetOutput &targOut ) ; 00169 00181 void extraVector( long choice, long targetType, long targetNumber, 00182 std::vector<double> &vectorResult, std::vector<double> &vectorResultRate, 00183 std::vector<double> &vectorResultRateRate) const; 00184 00194 void extraMain( long choice, long targetType, long targetNumber, 00195 std::vector<double> &mainResult, std::vector<double> &mainResultRate, 00196 std::vector<double> &mainResultRateRate ) const; 00197 00207 void extraAux( long choice, long targetType, long targetNumber, 00208 std::vector<double> &extraResult, std::vector<double> &extraResultRate, 00209 std::vector<double> &extraResultRateRate ) const; 00210 00224 void extraTargetToSun( long choice, long targetType, long targetNumber, 00225 long iray, double freq, 00226 std::vector<double> &sunResult, std::vector<double> &sunResultRate, 00227 std::vector<double> &sunResultRateRate) const; 00228 00238 void extraTargetToMoon( long choice, long targetType, long targetNumber, 00239 long iray, double freq, 00240 std::vector<double> &moonResult, std::vector<double> &moonResultRate, 00241 std::vector<double> &moonResultRateRate ) const; 00242 00252 void extraEfTarget( long choice, long targetType, long targetNumber, double freq, 00253 std::vector<double> &efResultRate, std::vector<double> &efResultRateRate ) const; 00254 00264 void extraSpecularReflection( long choice, long targetType, long targetNumber, 00265 double deflectionNorth, double deflectionEast, 00266 std::vector<double> &specRefResult, std::vector<double> &specRefResultRate, 00267 std::vector<double> &specRefResultRateRate ) const; 00268 00273 void extraListVector( long choice, long targetType, 00274 TargetExtraResultsList &list) const; // AN-471 00275 00277 void extraListMain( long choice, long targetType, 00278 TargetExtraResultsList &list) const; // AN-471 00279 00281 void extraListAux( long choice, long targetType, 00282 TargetExtraResultsList &list) const; // AN-471 00283 00289 void extraListTargetToSun( long choice, long targetType, 00290 long iray, double freq, 00291 TargetExtraResultsList &list) const; // AN-471 00292 00295 void extraListTargetToMoon( long choice, long targetType, 00296 long iray, double freq, 00297 TargetExtraResultsList &list) const; // AN-471 00298 00300 void extraListEfTarget( long choice, long targetType, double freq, 00301 TargetExtraResultsList &list) const; // AN-471 00302 00304 void extraListSpecularReflection( long choice, long targetType, 00305 double deflectionNorth, double deflectionEast, 00306 TargetExtraResultsList &list) const; // AN-471 00307 00309 SatId satId() const; 00310 00315 TargetIdData* getData() const ; 00316 00318 Target const &operator=(Target const &target); 00319 00320 protected: 00321 00323 GenericId* getId(); 00324 00325 private: 00326 00327 Attitude attitude; 00328 DemId demId; 00329 AtmosId atmosId; 00330 00333 long getTargetListEnumForWrapper(long cFunc) const; 00334 00335 }; 00336 00337 } // closing namespace 00338 00339 #endif