![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: DtCartesianCoordinateConverter.h,v $ $Revision: 1.11 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtCartesianCoordinateConverter_H_ 00013 #define DtCartesianCoordinateConverter_H_ 00014 00015 #include <vrvUtil/DtCoordinateConverter.h> 00016 00017 #include <matrix/vlVector.h> 00018 #include <matrix/vlTaitBryan.h> 00019 #include <matrix/coordTransform.h> 00020 00021 namespace makVrv 00022 { 00023 00027 class DT_DLL_VRVUTIL DtCartesianCoordinateConverter : public DtCoordinateConverter 00028 { 00029 public: 00030 00032 DtCartesianCoordinateConverter(); 00033 00035 virtual ~DtCartesianCoordinateConverter(); 00036 00038 virtual DtCoordinateConverter* clone() const; 00039 00044 virtual void init( 00045 double x = 0.0, double y = 0.0, double z = 0.0, 00046 double h = 0.0, double p = 0.0, double r = 0.0); 00047 00052 virtual void init( 00053 const DtVector& translationOffset, 00054 const DtTaitBryan& rotationOffset); 00055 00059 virtual bool init(const std::string& originstring); 00060 00062 virtual std::string stringRep(); 00063 00065 virtual const DtVector& translationOffset() const; 00066 00068 virtual const DtTaitBryan& rotationOffset() const; 00069 00070 /********************* Conversions *****************************/ 00072 virtual void geocToCig(const DtVector& geoc, DtVector& out) const; 00073 00075 virtual void cigToGeoc(const DtVector& in, DtVector& geoc) const; 00076 00077 virtual void setupTopoFrame(const DtVector& truePos); 00078 00079 virtual void cigToEnu_coordTrans(const DtVector& cigPos, DtVector& enuPos) const; 00080 virtual void cigToEnu_vecTrans(const DtVector& cigVec, DtVector& enuVec) const; 00081 virtual void enuToCig_coordTrans(const DtVector& enuPos, DtVector& cigPos) const; 00082 virtual void enuToCig_vecTrans(const DtVector& enuVec, DtVector& cigVec) const; 00083 00084 public: 00085 00086 static DtCoordinateConverter* create(); 00087 00088 private: 00089 00091 DtCartesianCoordinateConverter(const DtCartesianCoordinateConverter& orig); 00092 00094 DtCartesianCoordinateConverter& operator=(const DtCartesianCoordinateConverter& orig); 00095 00096 protected: 00097 00098 DtVector myTranslationOffset; 00099 DtTaitBryan myRotationOffset; 00100 00101 DtCoordTransform myGeocToLocal; 00102 DtCoordTransform myLocalToGeoc; 00103 }; 00104 00105 } 00106 00107 #endif