VR-Link API Documentation for DIS
utmCoord.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00006 
00007 #ifndef DtUtmCoord_H_
00008 #define DtUtmCoord_H_
00009 
00010 #include "vlVector.h"
00011 #include "geodCoord.h"
00012 #include "utmRefPt.h"
00013 #include "vlDcm.h"
00014 
00018 
00019 #ifdef DtUSE_UTILITIES_NAMESPACE
00020 namespace DtUSE_UTILITIES_NAMESPACE
00021 {
00022 #endif
00023 
00031 class DT_DLL_MATRIX DtUtmCoord : public DtVector
00032 {
00033 public:
00034 
00035 
00037    DtUtmCoord( DtUtmReferencePoint* refPt = DtGlobalUtmReferencePoint() );
00038 
00040    DtUtmCoord( double east, double north, double up,
00041       DtUtmReferencePoint* refPt = DtGlobalUtmReferencePoint() );
00042 
00044    DtUtmCoord( const DtGeodeticCoord& geodetic,
00045       DtUtmReferencePoint* refPt = DtGlobalUtmReferencePoint() );
00046 
00048    virtual ~DtUtmCoord();
00049 
00051    DtUtmCoord( const DtUtmCoord& src );
00052 
00054    DtUtmCoord& operator=( const DtUtmCoord& src );
00055 
00057    DtUtmCoord& operator=( const DtGeodeticCoord& geodetic );
00058 
00063    virtual DtUtmCoord& setGeodetic( const DtGeodeticCoord& geodetic );
00064 
00068    virtual void getGeodetic( DtGeodeticCoord& geodetic ) const;
00069 
00074    virtual DtGeodeticCoord geodetic() const;
00075 
00080    virtual DtUtmCoord& setGeocentric( const DtVector& geocentric );
00081 
00085    virtual void getGeocentric( DtVector& geocentric ) const;
00086 
00091    virtual DtVector geocentric() const;
00092 
00094    virtual void setEast( DtFloat64 east );
00095    virtual DtFloat64 east() const;
00096 
00098    virtual void setNorth( DtFloat64 north );
00099    virtual DtFloat64 north() const;
00100 
00102    virtual void setUp( DtFloat64 up );
00103    virtual DtFloat64 up() const;
00104 
00106    virtual double gridDeclination() const;
00107 
00108 protected:
00109 
00110    DtUtmReferencePoint* myRefPt;
00111 };
00112 
00113 
00115 
00116 inline void DtUtmCoord::setEast( DtFloat64 east )
00117 {
00118    (*this)[0] = east;
00119 }
00120 
00121 inline DtFloat64 DtUtmCoord::east() const
00122 {
00123    return (*this)[0];
00124 }
00125 
00126 inline void DtUtmCoord::setNorth( DtFloat64 north )
00127 {
00128    (*this)[1] = north;
00129 }
00130 
00131 inline DtFloat64 DtUtmCoord::north() const
00132 {
00133    return (*this)[1];
00134 }
00135 
00136 inline void DtUtmCoord::setUp( DtFloat64 up )
00137 {
00138    (*this)[2] = up;
00139 }
00140 
00141 inline DtFloat64 DtUtmCoord::up() const
00142 {
00143    return (*this)[2];
00144 }
00145 
00146 
00148 
00154 
00158 
00162 
00163 DT_DLL_MATRIX void DtUtmInit(
00164    const DtDegMinSec& latRef,
00165    const DtDegMinSec& lonRef,
00166    int standardOffsets=1,
00167    long zone = 0 );
00168 
00171 const DtDegMinSec DtUtmLatRef1_1 = {  35.0, 15.0,  0.0, DtNorth };
00172 const DtDegMinSec DtUtmLonRef1_1 = { 122.0,  3.0, 59.0, DtWest };
00173 
00175 const DtDegMinSec DtUtmLatRef_IITSEC_93 = {  35.0, 15.0, 0.0, DtNorth };
00176 const DtDegMinSec DtUtmLonRef_IITSEC_93 = { 122.0,  4.0, 0.0, DtWest };
00177 
00183 
00184 const DtDegMinSec DtUtmLatRefZone10 = {   0.0, 0.0, 0.0, DtNorth };
00185 const DtDegMinSec DtUtmLonRefZone10 = { 123.0, 0.0, 0.0, DtWest };
00186 
00188 
00189 
00190 
00191 
00192 DT_DLL_MATRIX void DtGeodToUtm( const DtGeodeticCoord& in, DtUtmCoord& out );
00193 DT_DLL_MATRIX void DtUtmToGeod( const DtUtmCoord& utm, DtGeodeticCoord& out );
00195 
00197 
00198 
00199 
00200 
00201 DT_DLL_MATRIX void DtGeocToUtm( const DtVector& in, DtUtmCoord& out );
00202 DT_DLL_MATRIX void DtUtmToGeoc( const DtUtmCoord& in, DtVector& out );
00204 
00205 DT_DLL_MATRIX const DtDcm& DtNedToEnuDcm();
00206 DT_DLL_MATRIX const DtDcm& DtEnuToNedDcm();
00207 
00212 DT_DLL_MATRIX double DtUtmGridDeclination( const DtUtmCoord& utm );
00213 DT_DLL_MATRIX double DtUtmGridDeclination( double lat, double lon );
00214 
00215 DT_DLL_MATRIX void DtGridDeclinationDcm( double gridDecl, DtDcmRef utm2ned );
00216 
00217 #ifdef DtUSE_UTILITIES_NAMESPACE
00218 }
00219 #endif
00220 
00221 #endif   //! DtUtmCoord_H_
00222 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)