| Homepage | Demos | Overview | Downloads | Tutorials | Reference | Credits |
Measures.ccGo to the documentation of this file.00001 #include "Measures.h" 00002 00003 namespace DualCoding { 00004 00005 AngPi::AngPi(orientation_t const &v) : value(v) { 00006 // Do cheap tests first; use fmod only if necessary. 00007 if ( value < 0 ) 00008 value += Pi; 00009 else if ( value >= Pi) 00010 value -= Pi; 00011 else return; 00012 // If we're still out of range, give up and call fmod. 00013 if ( value < 0 || value >= Pi) { 00014 value = fmod(value,Pi); 00015 if ( value < 0 ) 00016 value += Pi; 00017 }; 00018 } 00019 00020 00021 AngPi angdist(AngPi const &arg1, AngPi const &arg2) { 00022 AngPi diff = arg1.value - arg2.value; 00023 if ( diff > Pi/2 ) 00024 diff = Pi - diff; 00025 return diff; 00026 } 00027 00028 AngTwoPi::AngTwoPi(direction_t const &v) : value(v) { 00029 // Do cheap tests first; use fmod only if necessary. 00030 if ( value < 0 ) 00031 value += TwoPi; 00032 else if ( value >= TwoPi) 00033 value -= TwoPi; 00034 else return; 00035 // If we're still out of range, give up and call fmod. 00036 if ( value < 0 || value >= TwoPi) { 00037 value = fmod(value,TwoPi); 00038 if ( value < 0 ) 00039 value += TwoPi; 00040 }; 00041 } 00042 00043 AngPi angdist(AngTwoPi const &arg1, AngTwoPi const &arg2) { 00044 AngTwoPi diff = arg1.value - arg2.value; 00045 if ( diff > Pi ) 00046 diff = TwoPi - diff; 00047 return AngPi(diff); 00048 } 00049 00050 AngSignPi::AngSignPi(direction_t const &v) : value(v) { 00051 // Do cheap tests first; use fmod only if necessary. 00052 if ( value < -Pi ) 00053 value += TwoPi; 00054 else if ( value > Pi) 00055 value -= TwoPi; 00056 else return; 00057 // If we're still out of range, give up and call fmod. 00058 if ( value < -Pi || value > Pi) { 00059 value = fmod(value,TwoPi); 00060 if (value < -Pi) 00061 value += TwoPi; 00062 }; 00063 } 00064 00065 AngPi angdist(AngSignPi const &arg1, AngSignPi const &arg2) { 00066 AngSignPi diff = arg1.value - arg2.value; 00067 if ( diff > Pi ) 00068 diff = TwoPi - diff; 00069 return AngPi(diff); 00070 } 00071 00072 } // namespace |
|
DualCoding 3.0beta |
Generated Wed Oct 4 00:01:53 2006 by Doxygen 1.4.7 |