![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: DtGeocentricCoordinateConverter.h,v $ $Revision: 1.11 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtGeocentricCoordinateConverter_H_ 00013 #define DtGeocentricCoordinateConverter_H_ 00014 00015 #include <vrvUtil/DtCoordinateConverter.h> 00016 #include <matrix/coordTransform.h> 00017 00018 namespace makVrv 00019 { 00020 00024 class DT_DLL_VRVUTIL DtGeocentricCoordinateConverter : public DtCoordinateConverter 00025 { 00026 public: 00027 00029 DtGeocentricCoordinateConverter(); 00030 00032 virtual ~DtGeocentricCoordinateConverter(); 00033 00035 virtual DtCoordinateConverter* clone() const; 00036 00038 virtual void init(double offx = 0.0, double offy = 0.0, double offz = 0.0); 00039 virtual void init(const DtVector& offset = DtVector::zero()); 00040 00043 virtual bool init(const std::string& originstring); 00044 00046 virtual std::string stringRep(); 00047 00049 virtual const DtVector& originOffset() const; 00050 00052 virtual const DtGeodeticCoord& geodeticOriginOffset() const; 00053 00054 /********************* Conversions *****************************/ 00056 virtual void geocToCig(const DtVector& geoc, DtVector& out) const; 00057 00059 virtual void cigToGeoc(const DtVector& in, DtVector& geoc) const; 00060 00062 virtual void setupTopoFrame(const DtVector& est); 00063 00065 virtual void cigToEnu_coordTrans(const DtVector& cigPos, 00066 DtVector& enuPos) const; 00067 00069 virtual void cigToEnu_vecTrans(const DtVector& cigVec, 00070 DtVector& enuVec) const; 00071 00073 virtual void enuToCig_coordTrans(const DtVector& enuPos, 00074 DtVector& cigPos) const; 00075 00077 virtual void enuToCig_vecTrans(const DtVector& enuVec, 00078 DtVector& cigVec) const; 00079 00080 virtual const DtDcm& geocToNedDcm() const; 00081 virtual const DtDcm& nedToGeocDcm() const; 00082 00084 DtCoordTransform myGeocToLocal; 00085 DtCoordTransform myLocalToGeoc; 00086 DtCoordTransform myGeocToNed; 00087 00088 public: 00089 00090 static DtCoordinateConverter* create(); 00091 00092 private: 00093 00095 DtGeocentricCoordinateConverter(const DtGeocentricCoordinateConverter& orig); 00096 00098 DtGeocentricCoordinateConverter& operator=(const DtGeocentricCoordinateConverter& orig); 00099 00100 protected: 00101 00103 DtVector myOffset; 00104 }; 00105 00106 } 00107 00108 #endif