Earth Observation Mission CFI Software Pointing Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.27 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 <AtmosId.h> 00014 #include <Attitude.h> 00015 #include <CfiError.h> 00016 #include <CfiId.h> 00017 #include <DemId.h> 00018 #include <PointingData.h> 00019 #include <SatId.h> 00020 #include <TimeCorrelation.h> 00021 #include <string> 00022 #include <vector> 00023 00024 //--NAMESPACES-------------------------------------------------------- 00025 00026 namespace EECFI 00027 { 00031 class XP_DECL Target : public CfiId 00032 { 00033 public: 00034 long numUserTarget; 00035 long numLosTarget; 00036 00039 Target(const Target& other); 00040 00042 Target(const Attitude& attitude, const DemId& demId, const AtmosId& atmosId); 00043 00045 virtual ~Target() EXCEPT; 00046 00050 void targetInter(const SatId& satId, long deriv, long interFlag, double losAz, double losEl, double geodAlt, double losAzRate, double losElRate, long iray, double freq); 00051 00054 void targetTravelTime(const SatId& satId, long deriv, double losAz, double losEl, double travelTime, double losAzRate, double losElRate, double travelTimeRate, long iray, double freq); 00055 00059 void targetGroundRange(const SatId& satId, long deriv, double losAz, double losEl, double geodAlt, double distance, double losAzRate, double losElRate); 00060 00066 void targetIncidenceAngle(const SatId& satId, long deriv, double losAz, double incidenceAngle, double geodAlt, double losAzRate); 00067 00072 void targetRange(const SatId& satId, long deriv, double losAz, double range, double geodAlt, double losAzRate, double rangeRate); 00073 00077 void targetRangeRate(const SatId& satId, long deriv, double efRangeRate, double range, double geodAlt, double efRangeRateRate, double rangeRate); 00078 00082 void targetTangent(const SatId& satId, long deriv, double losAz, double losEl, double losAzRate, double losElRate, long iray, double freq); 00083 00088 void targetAltitude(const SatId& satId, long deriv, double losAz, double geodAlt, double losAzRate, long iray, double freq); 00089 00093 void targetStar(const SatId& satId, long deriv, double starRa, double starDec, double starRaRate, double starDecRate, long iray, double freq); 00094 00100 void targetTangentSun(const SatId& satId, long deriv, long iray, double freq); 00101 00104 void targetTangentMoon(const SatId& satId, long deriv, long iray, double freq); 00105 00108 void targetStation(const SatId& satId, long deriv, double geocLong, double geodLat, double geodAlt, double minLinkEl); 00109 00112 void targetGeneric(const SatId& satId, long deriv, const double targPos[3], const double targVel[3], const double targAcc[3]); 00113 00117 void targetReflected(const SatId& satId, 00118 long deriv, 00119 double geodAlt, 00120 double deflectionNorth, 00121 double deflectionEast, 00122 long sourceType, 00123 const std::vector<double>& sourceParam); 00124 00126 void targetSc(const SatId& satId1, const SatId& satId2, const Attitude& att2, 00127 long deriv); // Added for AN-353 00128 00132 void multiTargetInter(const SatId& satId, long deriv, long interFlag, double losAz, double losEl, long numTarget, const std::vector<double>& geodAlt, double losAzRate, double losElRate, long iray, double freq); 00133 00136 void multiTargetTravelTime(const SatId& satId, long deriv, double losAz, double losEl, long numTarget, const std::vector<double>& travelTime, double losAzRate, double losElRate, double travelTimeRate, long iray, double freq); 00137 00143 void targetListInter(const SatId& satId, long deriv, long interFlag, const InstrumentData& instrData, double geodAlt, TargetOutput& targOut); 00144 00156 void extraVector(long choice, long targetType, long targetNumber, std::vector<double>& vectorResult, std::vector<double>& vectorResultRate, std::vector<double>& vectorResultRateRate) const; 00157 00167 void extraMain(long choice, long targetType, long targetNumber, std::vector<double>& mainResult, std::vector<double>& mainResultRate, std::vector<double>& mainResultRateRate) const; 00168 00178 void extraAux(long choice, long targetType, long targetNumber, std::vector<double>& extraResult, std::vector<double>& extraResultRate, std::vector<double>& extraResultRateRate) const; 00179 00193 void extraTargetToSun(long choice, long targetType, long targetNumber, long iray, double freq, std::vector<double>& sunResult, std::vector<double>& sunResultRate, std::vector<double>& sunResultRateRate) const; 00194 00204 void extraTargetToMoon(long choice, long targetType, long targetNumber, long iray, double freq, std::vector<double>& moonResult, std::vector<double>& moonResultRate, std::vector<double>& moonResultRateRate) const; 00205 00215 void extraEfTarget(long choice, long targetType, long targetNumber, double freq, std::vector<double>& efResultRate, std::vector<double>& efResultRateRate) const; 00216 00226 void extraSpecularReflection(long choice, long targetType, long targetNumber, double deflectionNorth, double deflectionEast, std::vector<double>& specRefResult, std::vector<double>& specRefResultRate, std::vector<double>& specRefResultRateRate) const; 00227 00232 void extraListVector(long choice, long targetType, 00233 TargetExtraResultsList& list) const; // AN-471 00234 00236 void extraListMain(long choice, long targetType, 00237 TargetExtraResultsList& list) const; // AN-471 00238 00240 void extraListAux(long choice, long targetType, 00241 TargetExtraResultsList& list) const; // AN-471 00242 00248 void extraListTargetToSun(long choice, long targetType, long iray, double freq, 00249 TargetExtraResultsList& list) const; // AN-471 00250 00253 void extraListTargetToMoon(long choice, long targetType, long iray, double freq, 00254 TargetExtraResultsList& list) const; // AN-471 00255 00257 void extraListEfTarget(long choice, long targetType, double freq, 00258 TargetExtraResultsList& list) const; // AN-471 00259 00261 void extraListSpecularReflection(long choice, long targetType, double deflectionNorth, double deflectionEast, 00262 TargetExtraResultsList& list) const; // AN-471 00263 00265 SatId satId() const; 00266 00271 TargetIdData* getData() const; 00272 00275 Target& operator=(const Target& other); 00276 00277 protected: 00279 void eraseObject(); // AN-872 00280 00281 private: 00282 Attitude attitude; 00283 DemId demId; 00284 AtmosId atmosId; 00285 00288 long getTargetListEnumForWrapper(long cFunc) const; 00289 }; 00290 00291 } // namespace EECFI 00292 00293 #endif