From c6042246ecef6ade3acf4a4d17fb95e76a82652a Mon Sep 17 00:00:00 2001 From: Paul Ramsey Date: Sun, 22 Nov 2009 04:56:19 +0000 Subject: [PATCH] Move utility functions only used in cunit tests to the cunit code. git-svn-id: http://svn.osgeo.org/postgis/trunk@4880 b70326c6-7e19-0410-871a-916f4a2858ee --- liblwgeom/cunit/cu_geodetic.c | 40 +++++++++++++++++++++++++++++ liblwgeom/lwgeodetic.c | 47 +++-------------------------------- liblwgeom/lwgeodetic.h | 7 +++--- 3 files changed, 46 insertions(+), 48 deletions(-) diff --git a/liblwgeom/cunit/cu_geodetic.c b/liblwgeom/cunit/cu_geodetic.c index 048c97ba0..09c9748cc 100644 --- a/liblwgeom/cunit/cu_geodetic.c +++ b/liblwgeom/cunit/cu_geodetic.c @@ -70,6 +70,46 @@ int clean_geodetic_suite(void) } +/** +* Convert an edge from degrees to radians. +*/ +static void edge_deg2rad(GEOGRAPHIC_EDGE *e) +{ + (e->start).lat = deg2rad((e->start).lat); + (e->end).lat = deg2rad((e->end).lat); + (e->start).lon = deg2rad((e->start).lon); + (e->end).lon = deg2rad((e->end).lon); +} + +/** +* Convert an edge from radians to degrees. +*/ +static void edge_rad2deg(GEOGRAPHIC_EDGE *e) +{ + (e->start).lat = rad2deg((e->start).lat); + (e->end).lat = rad2deg((e->end).lat); + (e->start).lon = rad2deg((e->start).lon); + (e->end).lon = rad2deg((e->end).lon); +} + +/** +* Convert a point from degrees to radians. +*/ +static void point_deg2rad(GEOGRAPHIC_POINT *p) +{ + p->lat = latitude_radians_normalize(deg2rad(p->lat)); + p->lon = longitude_radians_normalize(deg2rad(p->lon)); +} + +/** +* Convert a point from radians to degrees. +*/ +static void point_rad2deg(GEOGRAPHIC_POINT *p) +{ + p->lat = rad2deg(p->lat); + p->lon = rad2deg(p->lon); +} + void test_signum(void) { CU_ASSERT_EQUAL(signum(-5.0),-1); diff --git a/liblwgeom/lwgeodetic.c b/liblwgeom/lwgeodetic.c index 23ef86809..5b7fa4c07 100644 --- a/liblwgeom/lwgeodetic.c +++ b/liblwgeom/lwgeodetic.c @@ -22,7 +22,7 @@ int gbox_geocentric_slow = LW_FALSE; /** * Convert a longitude to the range of -PI,PI */ -static double longitude_radians_normalize(double lon) +double longitude_radians_normalize(double lon) { if( lon == -1.0 * M_PI ) return M_PI; @@ -47,7 +47,7 @@ static double longitude_radians_normalize(double lon) /** * Convert a latitude to the range of -PI/2,PI/2 */ -static double latitude_radians_normalize(double lat) +double latitude_radians_normalize(double lat) { if( lat > 2.0 * M_PI ) @@ -123,46 +123,6 @@ double latitude_degrees_normalize(double lat) return lat; } -/** -* Convert an edge from degrees to radians. -*/ -void edge_deg2rad(GEOGRAPHIC_EDGE *e) -{ - (e->start).lat = deg2rad((e->start).lat); - (e->end).lat = deg2rad((e->end).lat); - (e->start).lon = deg2rad((e->start).lon); - (e->end).lon = deg2rad((e->end).lon); -} - -/** -* Convert an edge from radians to degrees. -*/ -void edge_rad2deg(GEOGRAPHIC_EDGE *e) -{ - (e->start).lat = rad2deg((e->start).lat); - (e->end).lat = rad2deg((e->end).lat); - (e->start).lon = rad2deg((e->start).lon); - (e->end).lon = rad2deg((e->end).lon); -} - -/** -* Convert a point from degrees to radians. -*/ -void point_deg2rad(GEOGRAPHIC_POINT *p) -{ - p->lat = latitude_radians_normalize(deg2rad(p->lat)); - p->lon = longitude_radians_normalize(deg2rad(p->lon)); -} - -/** -* Convert a point from radians to degrees. -*/ -void point_rad2deg(GEOGRAPHIC_POINT *p) -{ - p->lat = rad2deg(p->lat); - p->lon = rad2deg(p->lon); -} - /** * Shift a point around by a number of radians */ @@ -174,7 +134,6 @@ void point_shift(GEOGRAPHIC_POINT *p, double shift) return; } - int geographic_point_equals(const GEOGRAPHIC_POINT *g1, const GEOGRAPHIC_POINT *g2) { return FP_EQUALS(g1->lat, g2->lat) && FP_EQUALS(g1->lon, g2->lon); @@ -183,7 +142,7 @@ int geographic_point_equals(const GEOGRAPHIC_POINT *g1, const GEOGRAPHIC_POINT * void geographic_point_init(double lon, double lat, GEOGRAPHIC_POINT *g) { g->lat = latitude_radians_normalize(deg2rad(lat)); - g->lon = longitude_radians_normalize(deg2rad(lon)); + g->lon = longitude_radians_normalize(deg2rad(lon)); } /** diff --git a/liblwgeom/lwgeodetic.h b/liblwgeom/lwgeodetic.h index aa626535e..102fdc3b8 100644 --- a/liblwgeom/lwgeodetic.h +++ b/liblwgeom/lwgeodetic.h @@ -69,10 +69,6 @@ int edge_calculate_gbox_slow(const GEOGRAPHIC_EDGE *e, GBOX *gbox); int edge_intersection(const GEOGRAPHIC_EDGE *e1, const GEOGRAPHIC_EDGE *e2, GEOGRAPHIC_POINT *g); double edge_distance_to_point(const GEOGRAPHIC_EDGE *e, const GEOGRAPHIC_POINT *gp, GEOGRAPHIC_POINT *closest); double edge_distance_to_edge(const GEOGRAPHIC_EDGE *e1, const GEOGRAPHIC_EDGE *e2, GEOGRAPHIC_POINT *closest1, GEOGRAPHIC_POINT *closest2); -void edge_deg2rad(GEOGRAPHIC_EDGE *e); -void edge_rad2deg(GEOGRAPHIC_EDGE *e); -void point_deg2rad(GEOGRAPHIC_POINT *p); -void point_rad2deg(GEOGRAPHIC_POINT *p); void geographic_point_init(double lon, double lat, GEOGRAPHIC_POINT *g); int ptarray_point_in_ring_winding(const POINTARRAY *pa, const POINT2D *pt_to_test); int lwpoly_covers_point2d(const LWPOLY *poly, const GBOX *gbox, const POINT2D *pt_to_test); @@ -84,6 +80,9 @@ double ptarray_length_spheroid(const POINTARRAY *pa, const SPHEROID *s); int geographic_point_equals(const GEOGRAPHIC_POINT *g1, const GEOGRAPHIC_POINT *g2); int crosses_dateline(const GEOGRAPHIC_POINT *s, const GEOGRAPHIC_POINT *e); void point_shift(GEOGRAPHIC_POINT *p, double shift); +double longitude_radians_normalize(double lon); +double latitude_radians_normalize(double lat); + /* ** Prototypes for spheroid functions. */ -- 2.50.1