Earth Observation Mission CFI Software Pointing Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.22 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 00038 Target(const Attitude& attitude, const DemId& demId, const AtmosId& atmosId); 00039 00041 virtual ~Target() EXCEPT; 00042 00046 void targetInter(const SatId& satId, long deriv, long interFlag, double losAz, double losEl, double geodAlt, double losAzRate, double losElRate, long iray, double freq); 00047 00050 void targetTravelTime(const SatId& satId, long deriv, double losAz, double losEl, double travelTime, double losAzRate, double losElRate, double travelTimeRate, long iray, double freq); 00051 00055 void targetGroundRange(const SatId& satId, long deriv, double losAz, double losEl, double geodAlt, double distance, double losAzRate, double losElRate); 00056 00062 void targetIncidenceAngle(const SatId& satId, long deriv, double losAz, double incidenceAngle, double geodAlt, double losAzRate); 00063 00068 void targetRange(const SatId& satId, long deriv, double losAz, double range, double geodAlt, double losAzRate, double rangeRate); 00069 00073 void targetRangeRate(const SatId& satId, long deriv, double efRangeRate, double range, double geodAlt, double efRangeRateRate, double rangeRate); 00074 00078 void targetTangent(const SatId& satId, long deriv, double losAz, double losEl, double losAzRate, double losElRate, long iray, double freq); 00079 00084 void targetAltitude(const SatId& satId, long deriv, double losAz, double geodAlt, double losAzRate, long iray, double freq); 00085 00089 void targetStar(const SatId& satId, long deriv, double starRa, double starDec, double starRaRate, double starDecRate, long iray, double freq); 00090 00096 void targetTangentSun(const SatId& satId, long deriv, long iray, double freq); 00097 00100 void targetTangentMoon(const SatId& satId, long deriv, long iray, double freq); 00101 00104 void targetStation(const SatId& satId, long deriv, double geocLong, double geodLat, double geodAlt, double minLinkEl); 00105 00108 void targetGeneric(const SatId& satId, long deriv, const double targPos[3], const double targVel[3], const double targAcc[3]); 00109 00113 void targetReflected(const SatId& satId, 00114 long deriv, 00115 double geodAlt, 00116 double deflectionNorth, 00117 double deflectionEast, 00118 long sourceType, 00119 const std::vector<double>& sourceParam); 00120 00122 void targetSc(const SatId& satId1, const SatId& satId2, const Attitude& att2, 00123 long deriv); // Added for AN-353 00124 00128 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); 00129 00132 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); 00133 00139 void targetListInter(const SatId& satId, long deriv, long interFlag, const InstrumentData& instrData, double geodAlt, TargetOutput& targOut); 00140 00152 void extraVector(long choice, long targetType, long targetNumber, std::vector<double>& vectorResult, std::vector<double>& vectorResultRate, std::vector<double>& vectorResultRateRate) const; 00153 00163 void extraMain(long choice, long targetType, long targetNumber, std::vector<double>& mainResult, std::vector<double>& mainResultRate, std::vector<double>& mainResultRateRate) const; 00164 00174 void extraAux(long choice, long targetType, long targetNumber, std::vector<double>& extraResult, std::vector<double>& extraResultRate, std::vector<double>& extraResultRateRate) const; 00175 00189 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; 00190 00200 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; 00201 00211 void extraEfTarget(long choice, long targetType, long targetNumber, double freq, std::vector<double>& efResultRate, std::vector<double>& efResultRateRate) const; 00212 00222 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; 00223 00228 void extraListVector(long choice, long targetType, 00229 TargetExtraResultsList& list) const; // AN-471 00230 00232 void extraListMain(long choice, long targetType, 00233 TargetExtraResultsList& list) const; // AN-471 00234 00236 void extraListAux(long choice, long targetType, 00237 TargetExtraResultsList& list) const; // AN-471 00238 00244 void extraListTargetToSun(long choice, long targetType, long iray, double freq, 00245 TargetExtraResultsList& list) const; // AN-471 00246 00249 void extraListTargetToMoon(long choice, long targetType, long iray, double freq, 00250 TargetExtraResultsList& list) const; // AN-471 00251 00253 void extraListEfTarget(long choice, long targetType, double freq, 00254 TargetExtraResultsList& list) const; // AN-471 00255 00257 void extraListSpecularReflection(long choice, long targetType, double deflectionNorth, double deflectionEast, 00258 TargetExtraResultsList& list) const; // AN-471 00259 00261 SatId satId() const; 00262 00267 TargetIdData* getData() const; 00268 00270 Target const& operator=(Target const& target); 00271 00272 protected: 00274 void eraseObject(); // AN-872 00275 00277 GenericId* getId() const; 00278 00279 private: 00280 Attitude attitude; 00281 DemId demId; 00282 AtmosId atmosId; 00283 00286 long getTargetListEnumForWrapper(long cFunc) const; 00287 }; 00288 00289 } // namespace EECFI 00290 00291 #endif