VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWorldMagneticModel.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2022 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vrvCore/vrvCore.h>
13 
14 extern "C"
15 {
16 #include <makWMM/GeomagnetismHeader.h>
17 }
18 
19 #include <matrix/geodeticCoord.h>
20 
21 
22 namespace makVrv
23 {
24  class DtBaseConnection;
25  class DtDe;
26 
42  {
43  public:
44 
48 
50  virtual ~DtWorldMagneticModel();
51 
54 
56  DtWorldMagneticModel &operator=(const DtWorldMagneticModel &other) = delete;
57 
59  DtWorldMagneticModel* clone() const;
60 
64  virtual bool init(const time_t unixTime);
65 
67  virtual bool badInit() const;
68 
71  virtual void setTime(const time_t unixTime);
72 
74  virtual const time_t unixTime() const;
75 
80  virtual double positionToMagneticNorth(const DtGeodeticCoord& pos) const;
81 
82  public:
83 
87  static DtWorldMagneticModel& instance(DtDe& de);
88 
90  static void registerInstance(DtDe& de, DtWorldMagneticModel* instance);
91 
95  static DtWorldMagneticModel& instance(DtBaseConnection& conn);
96 
98  static void registerInstance(DtBaseConnection& conn, DtWorldMagneticModel* instance);
99 
102  static void copyInstance(DtBaseConnection& conn, DtDe& de);
103 
104  protected:
105 
112  virtual bool computeYearMonthDay(const time_t unixTime, int& year,
113  int& month, int& day) const;
114 
115  protected:
116 
117  MAGtype_MagneticModel* myMagneticModels[1];
118  MAGtype_MagneticModel* myTimedMagneticModel; //For storing the time modified WMM Model parameters
119  MAGtype_Ellipsoid myEllip;
120  MAGtype_Geoid myGeoid;
121  MAGtype_Date myDate;
122 
123  time_t myUnixTime;
124 
125  bool myBadInit;
126  };
127 
128 }
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
MAGtype_Date myDate
Definition: DtWorldMagneticModel.h:121
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Contains the interface to the world magnetic model. The class utilizes the WMM c code provided by NOA...
Definition: DtWorldMagneticModel.h:41
MAGtype_Geoid myGeoid
Definition: DtWorldMagneticModel.h:120
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
time_t myUnixTime
Definition: DtWorldMagneticModel.h:123
bool myBadInit
Definition: DtWorldMagneticModel.h:125
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
MAGtype_Ellipsoid myEllip
Definition: DtWorldMagneticModel.h:119
Contains DLL export macros.
MAGtype_MagneticModel * myTimedMagneticModel
Definition: DtWorldMagneticModel.h:118

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)