VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
makVrv::DtWorldMagneticModel Class Reference

Contains the interface to the world magnetic model. The class utilizes the WMM c code provided by NOAA which has been wrapped into makWMM.

This class is initialized using a coefficients file called WMM.COF which resides in the bin(platform) folder. Note that the parameters are good until the year 2025. The parameters have a 5 year epoch that deteriorates over the 5 year period (2020 - 2024). The WMM.COF file will need to be updated after the epoch ends. see this link for more information: https://www.ngdc.noaa.gov/geomag/WMM/limit.shtml

The basic use of this class is to compute the magnetic north declination at any given location on the globe. See the positionToMagneticNorth method.

Inheritance diagram for makVrv::DtWorldMagneticModel:
Inheritance graph
[legend]

Public Member Functions

 DtWorldMagneticModel ()
 
virtual ~DtWorldMagneticModel ()
 
 DtWorldMagneticModel (const DtWorldMagneticModel &other)
 
DtWorldMagneticModeloperator= (const DtWorldMagneticModel &other)=delete
 
DtWorldMagneticModelclone () const
 
virtual bool init (const time_t unixTime)
 
virtual bool badInit () const
 
virtual void setTime (const time_t unixTime)
 
virtual const time_t unixTime () const
 
virtual double positionToMagneticNorth (const DtGeodeticCoord &pos) const
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static DtWorldMagneticModelinstance (DtDe &de)
 
static void registerInstance (DtDe &de, DtWorldMagneticModel *instance)
 
static DtWorldMagneticModelinstance (DtBaseConnection &conn)
 
static void registerInstance (DtBaseConnection &conn, DtWorldMagneticModel *instance)
 
static void copyInstance (DtBaseConnection &conn, DtDe &de)
 

Protected Member Functions

virtual bool computeYearMonthDay (const time_t unixTime, int &year, int &month, int &day) const
 

Protected Attributes

MAGtype_MagneticModel * myMagneticModels [1]
 
MAGtype_MagneticModel * myTimedMagneticModel
 
MAGtype_Ellipsoid myEllip
 
MAGtype_Geoid myGeoid
 
MAGtype_Date myDate
 
time_t myUnixTime
 
bool myBadInit
 

Constructor & Destructor Documentation

makVrv::DtWorldMagneticModel::DtWorldMagneticModel ( )

Constructor note: Must call init() to use the object.

virtual makVrv::DtWorldMagneticModel::~DtWorldMagneticModel ( )
virtual

Destructor.

makVrv::DtWorldMagneticModel::DtWorldMagneticModel ( const DtWorldMagneticModel other)

Copy Constructor.

Member Function Documentation

DtWorldMagneticModel& makVrv::DtWorldMagneticModel::operator= ( const DtWorldMagneticModel other)
delete

Assignment Operator not implemented - Assignment not allowed.

DtWorldMagneticModel* makVrv::DtWorldMagneticModel::clone ( ) const

Create a copy of the world magnetic model.

virtual bool makVrv::DtWorldMagneticModel::init ( const time_t  unixTime)
virtual

Initialize the WMM model using the "WMM.COF" located in the bin(platform) folder. This is required to be called before using the object. This returns true if the initialization is successful; false otherwise.

virtual bool makVrv::DtWorldMagneticModel::badInit ( ) const
virtual

Returns true if initialization was unsucessful.

virtual void makVrv::DtWorldMagneticModel::setTime ( const time_t  unixTime)
virtual

Sets the current time used for the WMM model. This will update the model time.

virtual const time_t makVrv::DtWorldMagneticModel::unixTime ( ) const
virtual

Returns the time used for the WMM model.

virtual double makVrv::DtWorldMagneticModel::positionToMagneticNorth ( const DtGeodeticCoord &  pos) const
virtual

Computes magnetic north declination at the given radian geodetic coordinates. Returns declination in radians. declination is the angle between true north and magnetic north, positive east rotation.

Parameters
posThe location radian geodetic coordinates.
static DtWorldMagneticModel& makVrv::DtWorldMagneticModel::instance ( DtDe de)
static

Access an instance of DtWorldMagneticModel from the DtDe. Note that this does NOT create an instance if it doesn't exist; an instance MUST be registered (currently done by DtSharedState). This will throw an exception if the instance doesn't exist.

static void makVrv::DtWorldMagneticModel::registerInstance ( DtDe de,
DtWorldMagneticModel instance 
)
static

Register an initialized instance of the DtWorldMagneticModel on the DtDe.

static DtWorldMagneticModel& makVrv::DtWorldMagneticModel::instance ( DtBaseConnection conn)
static

Access an instance of DtWorldMagneticModel from a DtBaseConnection. Note that this does NOT create an instance if it doesn't exist; an instance MUST be registered. This will throw an exception if the instance doesn't exist.

static void makVrv::DtWorldMagneticModel::registerInstance ( DtBaseConnection conn,
DtWorldMagneticModel instance 
)
static

Register an initialized instance of the DtWorldMagneticModel on a DtBaseConnection.

static void makVrv::DtWorldMagneticModel::copyInstance ( DtBaseConnection conn,
DtDe de 
)
static

Copy instance will create a clone of the DtWorldMagneticModel currently registered on the specified DtDe and register that clone on the specified DtBaseConnection.

virtual bool makVrv::DtWorldMagneticModel::computeYearMonthDay ( const time_t  unixTime,
int year,
int month,
int day 
) const
protectedvirtual

Computes the (year, month, day) from the given time. Returns true on success.

Parameters
unixTimeThe input time.
yearThe computed output year.
monthThe computed output month (1 - 12); 1 = january.
dayThe computed output day or the month (1 - 31).

Member Data Documentation

MAGtype_MagneticModel* makVrv::DtWorldMagneticModel::myMagneticModels[1]
protected
MAGtype_MagneticModel* makVrv::DtWorldMagneticModel::myTimedMagneticModel
protected
MAGtype_Ellipsoid makVrv::DtWorldMagneticModel::myEllip
protected
MAGtype_Geoid makVrv::DtWorldMagneticModel::myGeoid
protected
MAGtype_Date makVrv::DtWorldMagneticModel::myDate
protected
time_t makVrv::DtWorldMagneticModel::myUnixTime
protected
bool makVrv::DtWorldMagneticModel::myBadInit
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)