Tekkotsu Homepage | Demos | Overview | Downloads | Dev. Resources | Reference | Credits |
Measures.ccGo 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 |