1 using namespace System;
2 using namespace NETGeographicLib;
3 
4 int main(array<System::String ^> ^/*args*/)
5 {
6     // This computes the same value as example-SphericalHarmonic.cpp using a
7     // CircularEngine (which will be faster if many values on a circle of
8     // latitude are to be found).
9     try {
10         int N = 3;                  // The maxium degree
11         array<double>^ ca = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; // cosine coefficients
12         array<double>^ sa = {6, 5, 4, 3, 2, 1}; // sine coefficients
13         double a = 1;
14         SphericalHarmonic^ h = gcnew SphericalHarmonic(ca, sa, N, a, SphericalHarmonic::Normalization::SCHMIDT);
15         double x = 2, y = 3, z = 1, p = Math::Sqrt(x*x+y*y);
16         CircularEngine^ circ = h->Circle(p, z, true);
17         double v, vx, vy, vz;
18         v = circ->LongitudeSum(x/p, y/p, vx, vy, vz);
19         Console::WriteLine(String::Format("{0} {1} {2} {3}", v, vx, vy, vz));
20     }
21     catch (GeographicErr^ e) {
22         Console::WriteLine(String::Format("Caught exception: {0}", e->Message));
23         return -1;
24     }
25     return 0;
26 }
27