From 610957f7035242f15743c399ffd429b92bc36206 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 18 Dec 2018 20:24:11 +0100 Subject: cpp conversion: minimal steps to fix compilation errors, not warnings --- src/adjlon.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/adjlon.cpp (limited to 'src/adjlon.cpp') diff --git a/src/adjlon.cpp b/src/adjlon.cpp new file mode 100644 index 00000000..784a90aa --- /dev/null +++ b/src/adjlon.cpp @@ -0,0 +1,20 @@ +/* reduce argument to range +/- PI */ +#include +#include "projects.h" + +double adjlon (double lon) { + /* Let lon slightly overshoot, to avoid spurious sign switching at the date line */ + if (fabs (lon) < M_PI + 1e-12) + return lon; + + /* adjust to 0..2pi range */ + lon += M_PI; + + /* remove integral # of 'revolutions'*/ + lon -= M_TWOPI * floor(lon / M_TWOPI); + + /* adjust back to -pi..pi range */ + lon -= M_PI; + + return lon; +} -- cgit v1.2.3