VR-Vantage 3.2 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
coordUtils.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvUtil/vrvUtil.h>
13 #include <vrvUtil/DtQuat.h>
14 #include <matrix/vlVector.h>
15 #include <matrix/vlDcm.h>
16 #include <matrix/vlTaitBryan.h>
17 #include <matrix/geodeticCoord.h>
18 
19 class DtTaitBryan;
20 class DtDcm;
21 class DtDegMinSec;
22 
23 namespace makVrv
24 {
25  class DtCoordinateConverter;
26  class DtCoordinateSystem;
27 
28  DT_DLL_VRVUTIL DtTaitBryan orientUp( DtCoordinateConverter& converter,
29  const DtVector& position, const DtTaitBryan& orientation );
30 
31  DT_DLL_VRVUTIL DtDcm orientUpDcm( DtCoordinateConverter& converter,
32  const DtVector& position, const DtTaitBryan& orientation );
33 
35 
36 
37 
39  DT_DLL_VRVUTIL DtQuat DtOrientToVector( DtCoordinateConverter& converter,
40  const DtVector& start, const DtVector& end );
41 
44  DtCoordinateConverter& converter, const DtVector& localLocation,
45  const DtVector& dirVec );
47 
51  DtCoordinateConverter& converter, const DtTaitBryan& cigOri);
52 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64  DT_DLL_VRVUTIL DtTaitBryan DtEastNorthUpToNorthEastDown( const DtTaitBryan& tbIn );
65  DT_DLL_VRVUTIL DtTaitBryan DtNorthEastDownToEastNorthUp( const DtTaitBryan& tbIn );
66  DT_DLL_VRVUTIL DtTaitBryan DtXFrontZDownToYFrontZUp( const DtTaitBryan& tbIn );
67  DT_DLL_VRVUTIL DtTaitBryan DtYFrontZUpToXFrontZDown( const DtTaitBryan& tbIn );
68  DT_DLL_VRVUTIL DtDcm DtEastNorthUpToNorthEastDown( const DtDcm& dcmIn );
69  DT_DLL_VRVUTIL DtDcm DtNorthEastDownToEastNorthUp( const DtDcm& dcmIn );
70  DT_DLL_VRVUTIL DtDcm DtXFrontZDownToYFrontZUp( const DtDcm& dcmIn );
71  DT_DLL_VRVUTIL DtDcm DtYFrontZUpToXFrontZDown( const DtDcm& dcmIn );
73  DT_DLL_VRVUTIL DtDcm DtSwapDcmAxes( const DtDcm& dcmIn );
75  DT_DLL_VRVUTIL DtTaitBryan DtSwapTaitBryanAxes( const DtTaitBryan& tbIn );
77 
79 
80  DT_DLL_VRVUTIL DtGeodeticCoord DtLocalToGeodetic( const DtVector& localLocation,
81  const DtCoordinateSystem& coordSystem );
82  DT_DLL_VRVUTIL DtVector DtGeodeticToLocal( const DtGeodeticCoord& geodeticLocation,
83  const DtCoordinateSystem& coordSystem );
85 
86  DT_DLL_VRVUTIL DtTaitBryan DtGetTopographicOrientation(const DtVector& geocLocation, const DtTaitBryan& _geocOrientation);
87  DT_DLL_VRVUTIL double DtGetTopographicHeading(const DtVector& geocLocation, const DtTaitBryan& geocOrientation);
88  DT_DLL_VRVUTIL double DtGetTopographicPitch(const DtVector& geocLocation, const DtTaitBryan& geocOrientation);
89  DT_DLL_VRVUTIL double DtGetTopographicRoll(const DtVector& geocLocation, const DtTaitBryan& geocOrientation);
90 
92  {
93  public:
98  static DtVector findCenter(const std::vector<DtVector>& vertexList);
99 
101  static void pack(const double pos[3], float pospack[4]);
102 
104  static void unpack(const float pospack[4], double pos[3]);
105 
108  static float closestSegmentPointToTestPoint(const DtVector& start, const DtVector& end, const DtVector& testPoint, DtVector& result);
109 
111  static void setLatDtDegMinSecFromDegrees(DtDegMinSec &dmslat, double deg);
112 
114  static void setLonDtDegMinSecFromDegrees(DtDegMinSec &dmslon, double deg);
115 
118  static void utmToGeodetic(int zone, bool isNorth, double easting, double northing, DtGeodeticCoord& result);
119 
120  protected:
123  static void setDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg);
124 
125  };
126 }
127 
128 


Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)