VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtGeoReference.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvUtil/vrvUtil.h>
13 
14 #include <matrix/vlDcm.h>
15 #include <matrix/vlTaitBryan.h>
16 #include <matrix/geodeticCoord.h>
17 
18 namespace makVrv
19 {
20  class DtCoordinateSystem;
21 
29  {
30  public:
31  DtGeoReference( const DtCoordinateSystem& coordinateSystem );
32 
34  DtGeoReference( const DtGeodeticCoord& location, const DtTaitBryan& orientation,
35  const DtCoordinateSystem& coordinateSystem );
36 
38 
39 
40  void setGeodeticLocation( const DtGeodeticCoord& geodeticLocation );
41  void getGeodeticLocation( DtGeodeticCoord& geodeticLocation );
43 
45 
46 
47 
48  void setTopoOrientation( const DtTaitBryan& orientation );
49  void getTopoOrientation( DtTaitBryan& orientation );
51 
55  void setLocationAndOrientation( const DtGeodeticCoord& geodeticLocation,
56  const DtTaitBryan& topoOrientation );
57 
59 
60 
61  void geodeticToTopo( const DtGeodeticCoord& geodeticLocationIn, const DtTaitBryan& topoOrientationIn,
62  DtVector& topoLocationOut, DtTaitBryan& topoOrientationOut );
63  void topoToGeodetic( const DtVector& topoLocationIn, const DtTaitBryan& topoOrientationIn,
64  DtGeodeticCoord& geodeticLocationOut, DtTaitBryan& topoOrientationOut );
66 
68 
69 
70  void refVecToTopoVec( const DtVector& inVec, DtVector& topoVec );
71  void topoVecToRefVec( const DtVector& inVec, DtVector& refVec );
73 
74  protected:
75  void calculateMatrices();
76 
77  private:
79 
80  protected:
81 
83 
87 
88  // This is the GeoRef's orientation. While reflected in the ref to topo and topo to ref DCMs,
89  // it's needed when setLocation is called (and also used for getTopoOrientation).
90  DtTaitBryan myTopoOrientation;
91 
92  // This may be a geocentric location, or an offset from 0,0,0 on a projected
93  // database
95 
96  // This is the geoRef's location in geodetic coordinates. While it could be recalculated
97  // from myReferenceBaseLocation, it's kept as an optimization for return by getLocation
98  DtGeodeticCoord myGeodeticLocation;
99 
101  };
102 
103 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)