19 const char BADALLOC[] = 
"Failed to allocate memory for a GeographicLib::GeodesicExact";
 
   24     if ( m_pGeodesicExact != 
NULL )
 
   26         delete m_pGeodesicExact;
 
   27         m_pGeodesicExact = 
NULL;
 
   38     catch ( std::bad_alloc err )
 
   51     catch ( std::bad_alloc err )
 
   63                     [System::Runtime::InteropServices::Out] 
double% lat2,
 
   64                     [System::Runtime::InteropServices::Out] 
double% lon2,
 
   65                     [System::Runtime::InteropServices::Out] 
double% azi2,
 
   66                     [System::Runtime::InteropServices::Out] 
double% m12,
 
   67                     [System::Runtime::InteropServices::Out] 
double% M12,
 
   68                     [System::Runtime::InteropServices::Out] 
double% M21,
 
   69                     [System::Runtime::InteropServices::Out] 
double% S12)
 
   71     double llat2, llon2, lazi2, lm12, lM12, lM21, lS12;
 
   73                 llat2, llon2, lazi2, lm12, lM12, lM21, lS12 );
 
   86                     [System::Runtime::InteropServices::Out] 
double% lat2,
 
   87                     [System::Runtime::InteropServices::Out] 
double% lon2)
 
   99                     [System::Runtime::InteropServices::Out] 
double% lat2,
 
  100                     [System::Runtime::InteropServices::Out] 
double% lon2,
 
  101                     [System::Runtime::InteropServices::Out] 
double% azi2)
 
  103     double llat2, llon2, lazi2;
 
  105                 llat2, llon2, lazi2 );
 
  114                     [System::Runtime::InteropServices::Out] 
double% lat2,
 
  115                     [System::Runtime::InteropServices::Out] 
double% lon2,
 
  116                     [System::Runtime::InteropServices::Out] 
double% azi2,
 
  117                     [System::Runtime::InteropServices::Out] 
double% m12)
 
  119     double llat2, llon2, lazi2, lm12;
 
  121                 llat2, llon2, lazi2, lm12 );
 
  131                     [System::Runtime::InteropServices::Out] 
double% lat2,
 
  132                     [System::Runtime::InteropServices::Out] 
double% lon2,
 
  133                     [System::Runtime::InteropServices::Out] 
double% azi2,
 
  134                     [System::Runtime::InteropServices::Out] 
double% M12,
 
  135                     [System::Runtime::InteropServices::Out] 
double% M21)
 
  137     double llat2, llon2, lazi2, lM12, lM21;
 
  139                 llat2, llon2, lazi2, lM12, lM21 );
 
  150                     [System::Runtime::InteropServices::Out] 
double% lat2,
 
  151                     [System::Runtime::InteropServices::Out] 
double% lon2,
 
  152                     [System::Runtime::InteropServices::Out] 
double% azi2,
 
  153                     [System::Runtime::InteropServices::Out] 
double% m12,
 
  154                     [System::Runtime::InteropServices::Out] 
double% M12,
 
  155                     [System::Runtime::InteropServices::Out] 
double% M21)
 
  157     double llat2, llon2, lazi2, lm12, lM12, lM21;
 
  159                 llat2, llon2, lazi2, lm12, lM12, lM21 );
 
  171                 [System::Runtime::InteropServices::Out] 
double% lat2,
 
  172                 [System::Runtime::InteropServices::Out] 
double% lon2,
 
  173                 [System::Runtime::InteropServices::Out] 
double% azi2,
 
  174                 [System::Runtime::InteropServices::Out] 
double% s12,
 
  175                 [System::Runtime::InteropServices::Out] 
double% m12,
 
  176                 [System::Runtime::InteropServices::Out] 
double% M12,
 
  177                 [System::Runtime::InteropServices::Out] 
double% M21,
 
  178                 [System::Runtime::InteropServices::Out] 
double% S12)
 
  180     double llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12;
 
  182                 llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12 );
 
  195                 [System::Runtime::InteropServices::Out] 
double% lat2,
 
  196                 [System::Runtime::InteropServices::Out] 
double% lon2)
 
  207                 [System::Runtime::InteropServices::Out] 
double% lat2,
 
  208                 [System::Runtime::InteropServices::Out] 
double% lon2,
 
  209                 [System::Runtime::InteropServices::Out] 
double% azi2)
 
  211     double llat2, llon2, lazi2;
 
  213                 llat2, llon2, lazi2 );
 
  221                 [System::Runtime::InteropServices::Out] 
double% lat2,
 
  222                 [System::Runtime::InteropServices::Out] 
double% lon2,
 
  223                 [System::Runtime::InteropServices::Out] 
double% azi2,
 
  224                 [System::Runtime::InteropServices::Out] 
double% s12)
 
  226     double llat2, llon2, lazi2, ls12;
 
  228                 llat2, llon2, lazi2, ls12 );
 
  237                 [System::Runtime::InteropServices::Out] 
double% lat2,
 
  238                 [System::Runtime::InteropServices::Out] 
double% lon2,
 
  239                 [System::Runtime::InteropServices::Out] 
double% azi2,
 
  240                 [System::Runtime::InteropServices::Out] 
double% s12,
 
  241                 [System::Runtime::InteropServices::Out] 
double% m12)
 
  243     double llat2, llon2, lazi2, ls12, lm12;
 
  245                 llat2, llon2, lazi2, ls12, lm12 );
 
  255                 [System::Runtime::InteropServices::Out] 
double% lat2,
 
  256                 [System::Runtime::InteropServices::Out] 
double% lon2,
 
  257                 [System::Runtime::InteropServices::Out] 
double% azi2,
 
  258                 [System::Runtime::InteropServices::Out] 
double% s12,
 
  259                 [System::Runtime::InteropServices::Out] 
double% M12,
 
  260                 [System::Runtime::InteropServices::Out] 
double% M21)
 
  262     double llat2, llon2, lazi2, ls12, lM12, lM21;
 
  264                 llat2, llon2, lazi2, ls12, lM12, lM21 );
 
  275                 [System::Runtime::InteropServices::Out] 
double% lat2,
 
  276                 [System::Runtime::InteropServices::Out] 
double% lon2,
 
  277                 [System::Runtime::InteropServices::Out] 
double% azi2,
 
  278                 [System::Runtime::InteropServices::Out] 
double% s12,
 
  279                 [System::Runtime::InteropServices::Out] 
double% m12,
 
  280                 [System::Runtime::InteropServices::Out] 
double% M12,
 
  281                 [System::Runtime::InteropServices::Out] 
double% M21)
 
  283     double llat2, llon2, lazi2, ls12, lm12, lM12, lM21;
 
  285                 llat2, llon2, lazi2, ls12, lm12, lM12, lM21 );
 
  297                         bool arcmode, 
double s12_a12,
 
  299                         [System::Runtime::InteropServices::Out] 
double% lat2,
 
  300                         [System::Runtime::InteropServices::Out] 
double% lon2,
 
  301                         [System::Runtime::InteropServices::Out] 
double% azi2,
 
  302                         [System::Runtime::InteropServices::Out] 
double% s12,
 
  303                         [System::Runtime::InteropServices::Out] 
double% m12,
 
  304                         [System::Runtime::InteropServices::Out] 
double% M12,
 
  305                         [System::Runtime::InteropServices::Out] 
double% M21,
 
  306                         [System::Runtime::InteropServices::Out] 
double% S12)
 
  308     double llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12;
 
  310                 static_cast<unsigned>(outmask), llat2, llon2, lazi2, ls12, lm12, lM12,
 
  325                     [System::Runtime::InteropServices::Out] 
double% s12,
 
  326                     [System::Runtime::InteropServices::Out] 
double% azi1,
 
  327                     [System::Runtime::InteropServices::Out] 
double% azi2,
 
  328                     [System::Runtime::InteropServices::Out] 
double% m12,
 
  329                     [System::Runtime::InteropServices::Out] 
double% M12,
 
  330                     [System::Runtime::InteropServices::Out] 
double% M21,
 
  331                     [System::Runtime::InteropServices::Out] 
double% S12)
 
  333     double ls12, lazi1, lazi2, lm12, lM12, lM21, lS12;
 
  335                 ls12, lazi1, lazi2, lm12, lM12, lM21, lS12 );
 
  348                     [System::Runtime::InteropServices::Out] 
double% s12)
 
  358                     [System::Runtime::InteropServices::Out] 
double% azi1,
 
  359                     [System::Runtime::InteropServices::Out] 
double% azi2)
 
  371                     [System::Runtime::InteropServices::Out] 
double% s12,
 
  372                     [System::Runtime::InteropServices::Out] 
double% azi1,
 
  373                     [System::Runtime::InteropServices::Out] 
double% azi2)
 
  375     double ls12, lazi1, lazi2;
 
  377                 ls12, lazi1, lazi2 );
 
  386                     [System::Runtime::InteropServices::Out] 
double% s12,
 
  387                     [System::Runtime::InteropServices::Out] 
double% azi1,
 
  388                     [System::Runtime::InteropServices::Out] 
double% azi2,
 
  389                     [System::Runtime::InteropServices::Out] 
double% m12)
 
  391     double ls12, lazi1, lazi2, lm12;
 
  393                 ls12, lazi1, lazi2, lm12 );
 
  403                     [System::Runtime::InteropServices::Out] 
double% s12,
 
  404                     [System::Runtime::InteropServices::Out] 
double% azi1,
 
  405                     [System::Runtime::InteropServices::Out] 
double% azi2,
 
  406                     [System::Runtime::InteropServices::Out] 
double% M12,
 
  407                     [System::Runtime::InteropServices::Out] 
double% M21)
 
  409     double ls12, lazi1, lazi2, lM12, lM21;
 
  411                 ls12, lazi1, lazi2, lM12, lM21 );
 
  422                     [System::Runtime::InteropServices::Out] 
double% s12,
 
  423                     [System::Runtime::InteropServices::Out] 
double% azi1,
 
  424                     [System::Runtime::InteropServices::Out] 
double% azi2,
 
  425                     [System::Runtime::InteropServices::Out] 
double% m12,
 
  426                     [System::Runtime::InteropServices::Out] 
double% M12,
 
  427                     [System::Runtime::InteropServices::Out] 
double% M21)
 
  429     double ls12, lazi1, lazi2, lm12, lM12, lM21;
 
  431                 ls12, lazi1, lazi2, lm12, lM12, lM21 );
 
  444                         [System::Runtime::InteropServices::Out] 
double% s12,
 
  445                         [System::Runtime::InteropServices::Out] 
double% azi1,
 
  446                         [System::Runtime::InteropServices::Out] 
double% azi2,
 
  447                         [System::Runtime::InteropServices::Out] 
double% m12,
 
  448                         [System::Runtime::InteropServices::Out] 
double% M12,
 
  449                         [System::Runtime::InteropServices::Out] 
double% M21,
 
  450                         [System::Runtime::InteropServices::Out] 
double% S12)
 
  452     double ls12, lazi1, lazi2, lm12, lM12, lM21, lS12;
 
  454                 static_cast<unsigned>(outmask), ls12, lazi1, lazi2, lm12, lM12,
 
  485         lat1, lon1, lat2, lon2, 
static_cast<unsigned>(caps)));
 
  493         lat1, lon1, azi1, s12, 
static_cast<unsigned>(caps)));
 
  501         lat1, lon1, azi1, a12, 
static_cast<unsigned>(caps)));
 
  509         lat1, lon1, azi1, arcmode, s12_a12, 
static_cast<unsigned>(caps)));
 
  514 { 
return m_pGeodesicExact->MajorRadius(); }
 
  518 { 
return m_pGeodesicExact->Flattening(); }
 
  522 { 
return m_pGeodesicExact->EllipsoidArea(); }