2727#include <math.h>
2828#include <float.h>
2929
30- #if !defined(__cplusplus )
31- #define nullptr 0
32- #endif
30+ // #if !defined(__cplusplus)
31+ #define null_ptr 0
32+ // #endif
3333
3434#define GEOGRAPHICLIB_GEODESIC_ORDER 6
3535#define nA1 GEOGRAPHICLIB_GEODESIC_ORDER
@@ -636,14 +636,14 @@ double geod_genposition(const struct geod_geodesicline* l,
636636
637637void geod_setdistance (struct geod_geodesicline * l , double s13 ) {
638638 l -> s13 = s13 ;
639- l -> a13 = geod_genposition (l , GEOD_NOFLAGS , l -> s13 , nullptr , nullptr , nullptr ,
640- nullptr , nullptr , nullptr , nullptr , nullptr );
639+ l -> a13 = geod_genposition (l , GEOD_NOFLAGS , l -> s13 , null_ptr , null_ptr , null_ptr ,
640+ null_ptr , null_ptr , null_ptr , null_ptr , null_ptr );
641641}
642642
643643static void geod_setarc (struct geod_geodesicline * l , double a13 ) {
644644 l -> a13 = a13 ; l -> s13 = NaN ;
645- geod_genposition (l , GEOD_ARCMODE , l -> a13 , nullptr , nullptr , nullptr , & l -> s13 ,
646- nullptr , nullptr , nullptr , nullptr );
645+ geod_genposition (l , GEOD_ARCMODE , l -> a13 , null_ptr , null_ptr , null_ptr , & l -> s13 ,
646+ null_ptr , null_ptr , null_ptr , null_ptr );
647647}
648648
649649void geod_gensetdistance (struct geod_geodesicline * l ,
@@ -656,7 +656,7 @@ void geod_gensetdistance(struct geod_geodesicline* l,
656656void geod_position (const struct geod_geodesicline * l , double s12 ,
657657 double * plat2 , double * plon2 , double * pazi2 ) {
658658 geod_genposition (l , FALSE, s12 , plat2 , plon2 , pazi2 ,
659- nullptr , nullptr , nullptr , nullptr , nullptr );
659+ null_ptr , null_ptr , null_ptr , null_ptr , null_ptr );
660660}
661661
662662double geod_gendirect (const struct geod_geodesic * g ,
@@ -688,7 +688,7 @@ void geod_direct(const struct geod_geodesic* g,
688688 double s12 ,
689689 double * plat2 , double * plon2 , double * pazi2 ) {
690690 geod_gendirect (g , lat1 , lon1 , azi1 , GEOD_NOFLAGS , s12 , plat2 , plon2 , pazi2 ,
691- nullptr , nullptr , nullptr , nullptr , nullptr );
691+ null_ptr , null_ptr , null_ptr , null_ptr , null_ptr );
692692}
693693
694694static double geod_geninverse_int (const struct geod_geodesic * g ,
@@ -801,9 +801,9 @@ static double geod_geninverse_int(const struct geod_geodesic* g,
801801 sig12 = atan2 (fmax (0.0 , csig1 * ssig2 - ssig1 * csig2 ) + 0 ,
802802 csig1 * csig2 + ssig1 * ssig2 );
803803 Lengths (g , g -> n , sig12 , ssig1 , csig1 , dn1 , ssig2 , csig2 , dn2 ,
804- cbet1 , cbet2 , & s12x , & m12x , nullptr ,
805- (outmask & GEOD_GEODESICSCALE ) ? & M12 : nullptr ,
806- (outmask & GEOD_GEODESICSCALE ) ? & M21 : nullptr ,
804+ cbet1 , cbet2 , & s12x , & m12x , null_ptr ,
805+ (outmask & GEOD_GEODESICSCALE ) ? & M12 : null_ptr ,
806+ (outmask & GEOD_GEODESICSCALE ) ? & M21 : null_ptr ,
807807 Ca );
808808 /* Add the check for sig12 since zero length geodesics might yield m12 <
809809 * 0. Test case was
@@ -927,9 +927,9 @@ static double geod_geninverse_int(const struct geod_geodesic* g,
927927 fabs (salp1 - salp1b ) + (calp1 - calp1b ) < tolb );
928928 }
929929 Lengths (g , eps , sig12 , ssig1 , csig1 , dn1 , ssig2 , csig2 , dn2 ,
930- cbet1 , cbet2 , & s12x , & m12x , nullptr ,
931- (outmask & GEOD_GEODESICSCALE ) ? & M12 : nullptr ,
932- (outmask & GEOD_GEODESICSCALE ) ? & M21 : nullptr , Ca );
930+ cbet1 , cbet2 , & s12x , & m12x , null_ptr ,
931+ (outmask & GEOD_GEODESICSCALE ) ? & M12 : null_ptr ,
932+ (outmask & GEOD_GEODESICSCALE ) ? & M21 : null_ptr , Ca );
933933 m12x *= g -> b ;
934934 s12x *= g -> b ;
935935 a12 = sig12 / degree ;
@@ -1060,9 +1060,9 @@ void geod_inverseline(struct geod_geodesicline* l,
10601060 double lat1 , double lon1 , double lat2 , double lon2 ,
10611061 unsigned caps ) {
10621062 double salp1 , calp1 ,
1063- a12 = geod_geninverse_int (g , lat1 , lon1 , lat2 , lon2 , nullptr ,
1064- & salp1 , & calp1 , nullptr , nullptr ,
1065- nullptr , nullptr , nullptr , nullptr ),
1063+ a12 = geod_geninverse_int (g , lat1 , lon1 , lat2 , lon2 , null_ptr ,
1064+ & salp1 , & calp1 , null_ptr , null_ptr ,
1065+ null_ptr , null_ptr , null_ptr , null_ptr ),
10661066 azi1 = atan2dx (salp1 , calp1 );
10671067 caps = caps ? caps : GEOD_DISTANCE_IN | GEOD_LONGITUDE ;
10681068 /* Ensure that a12 can be converted to a distance */
@@ -1075,7 +1075,7 @@ void geod_inverse(const struct geod_geodesic* g,
10751075 double lat1 , double lon1 , double lat2 , double lon2 ,
10761076 double * ps12 , double * pazi1 , double * pazi2 ) {
10771077 geod_geninverse (g , lat1 , lon1 , lat2 , lon2 , ps12 , pazi1 , pazi2 ,
1078- nullptr , nullptr , nullptr , nullptr );
1078+ null_ptr , null_ptr , null_ptr , null_ptr );
10791079}
10801080
10811081double SinCosSeries (boolx sinp , double sinx , double cosx ,
@@ -1298,7 +1298,7 @@ double InverseStart(const struct geod_geodesic* g,
12981298 * Inverse. */
12991299 Lengths (g , g -> n , pi + bet12a ,
13001300 sbet1 , - cbet1 , dn1 , sbet2 , cbet2 , dn2 ,
1301- cbet1 , cbet2 , nullptr , & m12b , & m0 , nullptr , nullptr , Ca );
1301+ cbet1 , cbet2 , null_ptr , & m12b , & m0 , null_ptr , null_ptr , Ca );
13021302 x = -1 + m12b / (cbet1 * cbet2 * m0 * pi );
13031303 betscale = x < -0.01 ? sbet12a / x :
13041304 - g -> f * sq (cbet1 ) * pi ;
@@ -1458,7 +1458,7 @@ double Lambda12(const struct geod_geodesic* g,
14581458 dlam12 = - 2 * g -> f1 * dn1 / sbet1 ;
14591459 else {
14601460 Lengths (g , eps , sig12 , ssig1 , csig1 , dn1 , ssig2 , csig2 , dn2 ,
1461- cbet1 , cbet2 , nullptr , & dlam12 , nullptr , nullptr , nullptr , Ca );
1461+ cbet1 , cbet2 , null_ptr , & dlam12 , null_ptr , null_ptr , null_ptr , Ca );
14621462 dlam12 *= g -> f1 / (calp2 * cbet2 );
14631463 }
14641464 }
@@ -1744,7 +1744,7 @@ int transit(double lon1, double lon2) {
17441744 /* Return 1 or -1 if crossing prime meridian in east or west direction.
17451745 * Otherwise return zero. */
17461746 /* Compute lon12 the same way as Geodesic::Inverse. */
1747- lon12 = AngDiff (lon1 , lon2 , nullptr );
1747+ lon12 = AngDiff (lon1 , lon2 , null_ptr );
17481748 lon1 = AngNormalize (lon1 );
17491749 lon2 = AngNormalize (lon2 );
17501750 return
@@ -1821,8 +1821,8 @@ void geod_polygon_addpoint(const struct geod_geodesic* g,
18211821 } else {
18221822 double s12 , S12 = 0 ; /* Initialize S12 to stop Visual Studio warning */
18231823 geod_geninverse (g , p -> lat , p -> lon , lat , lon ,
1824- & s12 , nullptr , nullptr , nullptr , nullptr , nullptr ,
1825- p -> polyline ? nullptr : & S12 );
1824+ & s12 , null_ptr , null_ptr , null_ptr , null_ptr , null_ptr ,
1825+ p -> polyline ? null_ptr : & S12 );
18261826 accadd (p -> P , s12 );
18271827 if (!p -> polyline ) {
18281828 accadd (p -> A , S12 );
@@ -1841,9 +1841,9 @@ void geod_polygon_addedge(const struct geod_geodesic* g,
18411841 * lon is to make CLang static analyzer happy. */
18421842 double lat = 0 , lon = 0 , S12 = 0 ;
18431843 geod_gendirect (g , p -> lat , p -> lon , azi , GEOD_LONG_UNROLL , s ,
1844- & lat , & lon , nullptr ,
1845- nullptr , nullptr , nullptr , nullptr ,
1846- p -> polyline ? nullptr : & S12 );
1844+ & lat , & lon , null_ptr ,
1845+ null_ptr , null_ptr , null_ptr , null_ptr ,
1846+ p -> polyline ? null_ptr : & S12 );
18471847 accadd (p -> P , s );
18481848 if (!p -> polyline ) {
18491849 accadd (p -> A , S12 );
@@ -1869,7 +1869,7 @@ unsigned geod_polygon_compute(const struct geod_geodesic* g,
18691869 return p -> num ;
18701870 }
18711871 geod_geninverse (g , p -> lat , p -> lon , p -> lat0 , p -> lon0 ,
1872- & s12 , nullptr , nullptr , nullptr , nullptr , nullptr , & S12 );
1872+ & s12 , null_ptr , null_ptr , null_ptr , null_ptr , null_ptr , & S12 );
18731873 if (pP ) * pP = accsum (p -> P , s12 );
18741874 acccopy (p -> A , t );
18751875 accadd (t , S12 );
@@ -1900,8 +1900,8 @@ unsigned geod_polygon_testpoint(const struct geod_geodesic* g,
19001900 geod_geninverse (g ,
19011901 i == 0 ? p -> lat : lat , i == 0 ? p -> lon : lon ,
19021902 i != 0 ? p -> lat0 : lat , i != 0 ? p -> lon0 : lon ,
1903- & s12 , nullptr , nullptr , nullptr , nullptr , nullptr ,
1904- p -> polyline ? nullptr : & S12 );
1903+ & s12 , null_ptr , null_ptr , null_ptr , null_ptr , null_ptr ,
1904+ p -> polyline ? null_ptr : & S12 );
19051905 perimeter += s12 ;
19061906 if (!p -> polyline ) {
19071907 tempsum += S12 ;
@@ -1944,12 +1944,12 @@ unsigned geod_polygon_testedge(const struct geod_geodesic* g,
19441944 * happy. */
19451945 double lat = 0 , lon = 0 , s12 , S12 = 0 ;
19461946 geod_gendirect (g , p -> lat , p -> lon , azi , GEOD_LONG_UNROLL , s ,
1947- & lat , & lon , nullptr ,
1948- nullptr , nullptr , nullptr , nullptr , & S12 );
1947+ & lat , & lon , null_ptr ,
1948+ null_ptr , null_ptr , null_ptr , null_ptr , & S12 );
19491949 tempsum += S12 ;
19501950 crossings += transitdirect (p -> lon , lon );
19511951 geod_geninverse (g , lat , lon , p -> lat0 , p -> lon0 ,
1952- & s12 , nullptr , nullptr , nullptr , nullptr , nullptr , & S12 );
1952+ & s12 , null_ptr , null_ptr , null_ptr , null_ptr , null_ptr , & S12 );
19531953 perimeter += s12 ;
19541954 tempsum += S12 ;
19551955 crossings += transit (lon , p -> lon0 );
0 commit comments