Eurobot_2012_Secondary

Dependencies:   mbed tvmet

Committer:
narshu
Date:
Fri Apr 20 21:32:24 2012 +0000
Revision:
0:fbfafa6bf5f9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
narshu 0:fbfafa6bf5f9 1 #ifndef GEOMETRYFUNCS_H
narshu 0:fbfafa6bf5f9 2 #define GEOMETRYFUNCS_H
narshu 0:fbfafa6bf5f9 3
narshu 0:fbfafa6bf5f9 4 #include <tvmet/Matrix.h>
narshu 0:fbfafa6bf5f9 5
narshu 0:fbfafa6bf5f9 6 template <typename T>
narshu 0:fbfafa6bf5f9 7 Matrix <T, 2, 2> Rotmatrix(T theta) {
narshu 0:fbfafa6bf5f9 8 Matrix <T, 2, 2> outmatrix;
narshu 0:fbfafa6bf5f9 9 outmatrix = cos(theta), -sin(theta),
narshu 0:fbfafa6bf5f9 10 sin(theta), cos(theta);
narshu 0:fbfafa6bf5f9 11 return outmatrix;
narshu 0:fbfafa6bf5f9 12 }
narshu 0:fbfafa6bf5f9 13
narshu 0:fbfafa6bf5f9 14 // rectifies angle to range -PI to PI
narshu 0:fbfafa6bf5f9 15 template <typename T>
narshu 0:fbfafa6bf5f9 16 T rectifyAng (T ang_in) {
narshu 0:fbfafa6bf5f9 17 ang_in -= (floor(ang_in/(2*PI)))*2*PI;
narshu 0:fbfafa6bf5f9 18 if (ang_in < -PI) {
narshu 0:fbfafa6bf5f9 19 ang_in += 2*PI;
narshu 0:fbfafa6bf5f9 20 }
narshu 0:fbfafa6bf5f9 21 if (ang_in > PI) {
narshu 0:fbfafa6bf5f9 22 ang_in -= 2*PI;
narshu 0:fbfafa6bf5f9 23 }
narshu 0:fbfafa6bf5f9 24
narshu 0:fbfafa6bf5f9 25 return ang_in;
narshu 0:fbfafa6bf5f9 26 }
narshu 0:fbfafa6bf5f9 27
narshu 0:fbfafa6bf5f9 28 #endif //GEOMETRYFUNCS_H