• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

AxisAngleOps.h

Go to the documentation of this file.
00001 // GMTL is (C) Copyright 2001-2010 by Allen Bierbaum
00002 // Distributed under the GNU Lesser General Public License 2.1 with an
00003 // addendum covering inlined code. (See accompanying files LICENSE and
00004 // LICENSE.addendum or http://www.gnu.org/copyleft/lesser.txt)
00005 
00006 #ifndef _GMTL_AXIS_ANGLE_OPS_H_
00007 #define _GMTL_AXIS_ANGLE_OPS_H_
00008 
00009 #include <gmtl/AxisAngle.h>
00010 
00011 namespace gmtl
00012 {
00013 
00027 template<class DATA_TYPE>
00028 inline bool operator==(const AxisAngle<DATA_TYPE>& a1,
00029                        const AxisAngle<DATA_TYPE>& a2)
00030 {
00031    // @todo metaprogramming.
00032    if (a1[0] != a2[0]) return false;
00033    if (a1[1] != a2[1]) return false;
00034    if (a1[2] != a2[2]) return false;
00035    if (a1[3] != a2[3]) return false;
00036    return true;
00037 }
00038 
00047 template<class DATA_TYPE>
00048 inline bool operator!=(const AxisAngle<DATA_TYPE>& a1,
00049                        const AxisAngle<DATA_TYPE>& a2)
00050 {
00051    return !(a1 == a2);
00052 }
00053 
00066 template<class DATA_TYPE>
00067 inline bool isEqual( const AxisAngle<DATA_TYPE>& a1,
00068                      const AxisAngle<DATA_TYPE>& a2, 
00069                      const DATA_TYPE eps = 0 )
00070 {
00071    gmtlASSERT( eps >= (DATA_TYPE)0 );
00072    
00073    // @todo metaprogramming.
00074    if (!Math::isEqual( a1[0], a2[0], eps )) return false;
00075    if (!Math::isEqual( a1[1], a2[1], eps )) return false;
00076    if (!Math::isEqual( a1[2], a2[2], eps )) return false;
00077    if (!Math::isEqual( a1[3], a2[3], eps )) return false;
00078    return true;
00079 }
00080 
00081 // @todo write isEquiv function for AxisAngle
00082 
00083 
00086 } // namespace
00087 
00088 #endif

Generated on Sun Sep 19 2010 14:35:14 for GenericMathTemplateLibrary by  doxygen 1.7.1