Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

Measures.cc

Go to the documentation of this file.
00001 #include "Shared/Measures.h"
00002 
00003 void AngPi::normalize() {
00004   // Do cheap tests first; use fmod only if necessary.
00005   if ( value < 0 ) 
00006     value += Pi;
00007   else if ( value >= Pi)
00008     value -= Pi;
00009   else return;
00010   // If we're still out of range, give up and call fmod.
00011   if ( value < 0 || value >= Pi) {
00012     value = fmod(value,Pi);
00013     if ( value < 0 ) 
00014       value += Pi;
00015   };
00016 }
00017 
00018 
00019 AngPi angdist(AngPi const &arg1, AngPi const &arg2) {
00020   AngPi diff = arg1.value - arg2.value;
00021   if ( diff > Pi/2 )
00022     diff = Pi - diff;
00023   return diff;
00024 }
00025 
00026 void AngTwoPi::normalize() {
00027   // Do cheap tests first; use fmod only if necessary.
00028   if ( value < 0 ) 
00029     value += TwoPi;
00030   else if ( value >= TwoPi)
00031     value -= TwoPi;
00032   else return;
00033   // If we're still out of range, give up and call fmod.
00034   if ( value < 0 || value >= TwoPi) {
00035     value = fmod(value,TwoPi);
00036     if ( value < 0 ) 
00037       value += TwoPi;
00038   };
00039 }        
00040 
00041 AngPi angdist(AngTwoPi const &arg1, AngTwoPi const &arg2) {
00042   AngTwoPi diff = arg1.value - arg2.value;
00043   if ( diff > Pi )
00044     diff = TwoPi - diff;
00045   return AngPi(diff);
00046 }
00047 
00048 void AngSignPi::normalize() {
00049   // Do cheap tests first; use fmod only if necessary.
00050   if ( value < -Pi ) 
00051     value += TwoPi;
00052   else if ( value > Pi)
00053     value -= TwoPi;
00054   else return;
00055   // If we're still out of range, give up and call fmod.
00056   if ( value < -Pi || value > Pi) {
00057     value = fmod(value,TwoPi);
00058     if (value < -Pi) 
00059       value += TwoPi;
00060   };
00061 }        
00062 
00063 AngPi angdist(AngSignPi const &arg1, AngSignPi const &arg2) {
00064   AngSignPi diff = arg1.value - arg2.value;
00065   if ( diff > Pi )
00066     diff = TwoPi - diff;
00067   return AngPi(diff);
00068 }

Tekkotsu v4.0
Generated Thu Nov 22 00:54:54 2007 by Doxygen 1.5.4