dotnet/examples/ManagedCPP/example-MagneticCircle.cpp
Go to the documentation of this file.
1 using namespace System;
2 using namespace NETGeographicLib;
3 
5 {
6  try {
7  MagneticModel^ mag = gcnew MagneticModel("wmm2010","");
8  double lat = 27.99, lon0 = 86.93, h = 8820, t = 2012; // Mt Everest
9  {
10  // Slow method of evaluating the values at several points on a circle of
11  // latitude.
12  for (int i = -5; i <= 5; ++i) {
13  double lon = lon0 + i * 0.2;
14  double Bx, By, Bz;
15  mag->Field(t, lat, lon, h, Bx, By, Bz);
16  Console::WriteLine(String::Format("{0} {1} {2} {3}", lon, Bx, By, Bz));
17  }
18  }
19  {
20  // Fast method of evaluating the values at several points on a circle of
21  // latitude using MagneticCircle.
22  MagneticCircle^ circ = mag->Circle(t, lat, h);
23  for (int i = -5; i <= 5; ++i) {
24  double lon = lon0 + i * 0.2;
25  double Bx, By, Bz;
26  circ->Field(lon, Bx, By, Bz);
27  Console::WriteLine(String::Format("{0} {1} {2} {3}", lon, Bx, By, Bz));
28  }
29  }
30  }
31  catch (GeographicErr^ e) {
32  Console::WriteLine(String::Format("Caught exception: {0}", e->Message));
33  return -1;
34  }
35  return 0;
36 }
MagneticCircle Circle(double t, double lat, double h)
int main(array< System::String ^> ^)
.NET wrapper for GeographicLib::MagneticCircle.
static const double lat
Exception class for NETGeographicLib.
Definition: numpy.h:680
Array< double, 1, 3 > e(1./3., 0.5, 2.)
const double lon0
const double h
void Field(double lon, [System::Runtime::InteropServices::Out] double% Bx, [System::Runtime::InteropServices::Out] double% By, [System::Runtime::InteropServices::Out] double% Bz)
.NET wrapper for GeographicLib::MagneticModel.
Definition: MagneticModel.h:63
static const double lon
void Field(double t, double lat, double lon, double h, [System::Runtime::InteropServices::Out] double% Bx, [System::Runtime::InteropServices::Out] double% By, [System::Runtime::InteropServices::Out] double% Bz)
Point2 t(10, 10)


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:34:13