00001 #pragma ident "$Id: DoubleOp.hpp 1908 2010-04-07 18:48:46Z yanweignss $"
00002
00009 #ifndef GPSTK_DOUBLEOP_HPP
00010 #define GPSTK_DOUBLEOP_HPP
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include "DeltaOp.hpp"
00036 #include "NablaOp.hpp"
00037
00038
00039 namespace gpstk
00040 {
00043
00135 class DoubleOp : public ProcessingClass
00136 {
00137 public:
00139 DoubleOp()
00140 : refSatMinElev(35.0)
00141 {}
00142
00148 DoubleOp(const TypeID& difftype)
00149 : refSatMinElev(35.0)
00150 {
00151 sdStations.setDiffType(difftype); sdSatellites.setDiffType(difftype);
00152 setIndex();
00153 };
00154
00162 virtual DoubleOp& setDiffType(const TypeID& difftype)
00163 {
00164 sdStations.setDiffType(difftype); sdSatellites.setDiffType(difftype);
00165 return (*this); }
00166 ;
00167
00168
00174 virtual DoubleOp& addDiffType(const TypeID& difftype)
00175 {
00176 sdStations.addDiffType(difftype); sdSatellites.addDiffType(difftype);
00177 return (*this);
00178 };
00179
00180
00188 virtual DoubleOp& setDiffTypeSet(const TypeIDSet& diffSet)
00189 {
00190 sdStations.setDiffTypeSet(diffSet); sdSatellites.setDiffTypeSet(diffSet);
00191 return (*this);
00192 };
00193
00194
00200 virtual DoubleOp& addDiffTypeSet(const TypeIDSet& diffSet)
00201 {
00202 sdStations.addDiffTypeSet(diffSet); sdSatellites.addDiffTypeSet(diffSet);
00203 return (*this);
00204 }
00205
00206
00208 virtual TypeIDSet getDiffTypeSet(void) const
00209 { return sdStations.getDiffTypeSet(); };
00210
00217 virtual DoubleOp& setRefData(const satTypeValueMap& gData)
00218 { sdStations.setRefData(gData); return (*this); };
00219
00220
00227 virtual DoubleOp& setRefData(const gnssSatTypeValue& gData)
00228 { return setRefData( gData.body ); };
00229
00230
00237 virtual DoubleOp& setRefData(const gnssRinex& gData)
00238 { return setRefData( gData.body ); };
00239
00240
00243 virtual satTypeValueMap getRefData(void) const
00244 { return sdStations.getRefData(); };
00245
00246
00253 virtual DoubleOp& setRefSourceID(const SourceID& refSource)
00254 { refSourceID = refSource; return (*this); };
00255
00256
00259 virtual SourceID getRefSourceID(void) const
00260 { return refSourceID; };
00261
00262
00267 virtual DoubleOp& setRefSat(const SatID& rSat)
00268 { refSatID = rSat; return (*this); };
00269
00270
00272 virtual SatID getRefSat(void) const
00273 { return refSatID; };
00274
00280 virtual DoubleOp& setRefSatMinElevation(const double& minElevation)
00281 { refSatMinElev = minElevation; return (*this); };
00282
00283
00286 virtual double getRefSatMinElevation() const
00287 { return refSatMinElev; };
00288
00289
00296 virtual satTypeValueMap& Process(satTypeValueMap& gData)
00297 throw(ProcessingException);
00298
00299
00306 virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00307 throw(ProcessingException)
00308 { Process(gData.body); return gData; };
00309
00310
00317 virtual gnssRinex& Process(gnssRinex& gData)
00318 throw(ProcessingException)
00319 { Process(gData.body); return gData; };
00320
00321
00323 virtual int getIndex(void) const;
00324
00325
00327 virtual std::string getClassName(void) const;
00328
00330 ~DoubleOp(){}
00331
00332 protected:
00333
00335 DeltaOp sdStations;
00336
00338 NablaOp sdSatellites;
00339
00341 SourceID refSourceID;
00342
00344 SatID refSatID;
00345
00348 double refSatMinElev;
00349
00351 static int classIndex;
00352
00354 int index;
00355
00357 void setIndex(void)
00358 { index = classIndex++; };
00359
00360 };
00361
00362
00363
00364 }
00365
00366
00367 #endif //
00368