VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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  void setGeodeticLocation( const DtGeodeticCoord& geodeticLocation );
41  void getGeodeticLocation( DtGeodeticCoord& geodeticLocation );
43 
45  void setTopoOrientation( const DtTaitBryan& orientation );
49  void getTopoOrientation( DtTaitBryan& orientation );
51 
55  void setLocationAndOrientation( const DtGeodeticCoord& geodeticLocation,
56  const DtTaitBryan& topoOrientation );
57 
59  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  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  DtDcm myReferenceToTopoDcm;
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 }
DtDcm myTopoToReferenceDcm
DCMs to rotate between topo and reference systems.
Definition: DtGeoReference.h:85
#define DT_DLL_VRVUTIL
Definition: vrvUtil.h:34
DtGeodeticCoord myGeodeticLocation
Definition: DtGeoReference.h:98
const DtCoordinateSystem & myCoordinateSystem
Definition: DtGeoReference.h:100
The DtGeoReference class provides a mechanism to convert between geodetic coordinates and topocentric...
Definition: DtGeoReference.h:28
DtVector myReferenceBaseLocation
Definition: DtGeoReference.h:94
Contains DLL export macros.
DtTaitBryan myTopoOrientation
Definition: DtGeoReference.h:90
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:41

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)