9 #ifndef MRPT_MATH_WRAP2PI_H 10 #define MRPT_MATH_WRAP2PI_H 31 a = fmod(
a, static_cast<T>(2.0 *
M_PI));
32 if (was_neg)
a +=
static_cast<T
>(2.0 *
M_PI);
73 template <
class VECTOR>
76 const size_t N =
x.size();
77 for (
size_t i = 0; i < N; i++)
81 double Ap =
x[i] -
x[i - 1];
T angDistance(T from, T to)
Computes the shortest angular increment (or distance) between two planar orientations, such that it is constrained to [-pi,pi] and is correct for any combination of angles (e.g.
void wrapToPiInPlace(T &a)
Modifies the given angle to translate it into the ]-pi,pi] range.
T wrapTo2Pi(T a)
Modifies the given angle to translate it into the [0,2pi[ range.
T wrapToPi(T a)
Modifies the given angle to translate it into the ]-pi,pi] range.
void wrapTo2PiInPlace(T &a)
Modifies the given angle to translate it into the [0,2pi[ range.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
void unwrap2PiSequence(VECTOR &x)
Modify a sequence of angle values such as no consecutive values have a jump larger than PI in absolut...
GLubyte GLubyte GLubyte a