![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 1999 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: DtLambertCoordinateConverter.h,v $ $Revision: 1.11 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtLambertCoordinateConverter_H_ 00013 #define DtLambertCoordinateConverter_H_ 00014 00015 #include <vrvUtil/DtCoordinateConverter.h> 00016 00017 namespace makVrv 00018 { 00019 00024 class DT_DLL_VRVUTIL DtLambertCoordinateConverter : public DtCoordinateConverter 00025 { 00026 public: 00027 00029 DtLambertCoordinateConverter(); 00030 00032 virtual ~DtLambertCoordinateConverter(); 00033 00035 virtual DtCoordinateConverter* clone() const; 00036 00039 virtual void init(double lat, double lon, double par1, double par2); 00040 00043 virtual void init(DtDegMinSec lat, DtDegMinSec lon, DtDegMinSec par1, DtDegMinSec par2); 00044 00047 virtual void init(const DtGeodeticCoord& origin, double par1, double par2); 00048 00053 virtual bool init(const std::string& latlonstring); 00054 00056 virtual std::string stringRep(); 00057 00060 virtual void reset(); 00061 00063 virtual const DtGeodeticCoord& origin() const; 00064 00066 virtual double parallel1() const; 00067 00069 virtual double parallel2() const; 00070 00071 virtual const DtReal lambda0() const; 00072 virtual const DtReal phi0() const; 00073 virtual const DtReal phi1() const; 00074 virtual const DtReal phi2() const; 00075 00076 /********************* Conversions *****************************/ 00078 virtual void geocToCig(const DtVector& geoc, DtVector& out) const; 00079 00081 virtual void cigToGeoc(const DtVector& in, DtVector& geoc) const; 00082 00084 virtual void calcIntermediateParameters(DtReal* n,DtReal* F,DtReal* p0); 00085 00086 public: 00087 00088 static DtCoordinateConverter* create(); 00089 00090 protected: 00091 00094 std::string parseLambert( DtDegMinSec lat, DtDegMinSec lng, DtDegMinSec par1, DtDegMinSec par2 ); 00095 00096 private: 00097 00099 DtLambertCoordinateConverter(const DtLambertCoordinateConverter& orig); 00100 00102 DtLambertCoordinateConverter& operator=(const DtLambertCoordinateConverter& orig); 00103 00104 protected: 00105 00106 double myParallel1; 00107 double myParallel2; 00108 00110 DtReal a; 00111 DtReal b; 00112 DtReal e; 00113 DtReal myPhi0; 00114 DtReal myPhi1, myPhi2; 00115 DtReal myLambda0; 00116 00117 00118 DtReal n; 00119 DtReal F; 00120 DtReal p0; 00121 00122 }; 00123 00124 } 00125 00126 #endif