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

TriOps.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_TRIOPS_H_
00007 #define _GMTL_TRIOPS_H_
00008 
00009 #include <gmtl/Tri.h>
00010 #include <gmtl/Generate.h>
00011 #include <gmtl/VecOps.h>
00012 
00013 namespace gmtl
00014 {
00027 template< class DATA_TYPE >
00028 Point<DATA_TYPE, 3> center( const Tri<DATA_TYPE>& tri )
00029 {
00030    const float one_third = (1.0f/3.0f);
00031    return (tri[0] + tri[1] + tri[2]) * DATA_TYPE(one_third);
00032 }
00033 
00041 template< class DATA_TYPE >
00042 Vec<DATA_TYPE, 3> normal( const Tri<DATA_TYPE>& tri )
00043 {
00044    Vec<DATA_TYPE, 3> normal = makeCross( gmtl::Vec<DATA_TYPE,3>(tri[1] - tri[0]), gmtl::Vec<DATA_TYPE,3>(tri[2] - tri[0]) );
00045    normalize( normal );
00046    return normal;
00047 }
00063 template< class DATA_TYPE >
00064 bool operator==( const Tri<DATA_TYPE>& tri1, const Tri<DATA_TYPE>& tri2 )
00065 {
00066    return ( (tri1[0] == tri2[0]) &&
00067             (tri1[1] == tri2[1]) &&
00068             (tri1[2] == tri2[2]) );
00069 }
00070 
00079 template< class DATA_TYPE >
00080 bool operator!=( const Tri<DATA_TYPE>& tri1, const Tri<DATA_TYPE>& tri2 )
00081 {
00082    return (! (tri1 == tri2));
00083 }
00084 
00096 template< class DATA_TYPE >
00097 bool isEqual( const Tri<DATA_TYPE>& tri1, const Tri<DATA_TYPE>& tri2,
00098               const DATA_TYPE& eps )
00099 {
00100    gmtlASSERT( eps >= 0 );
00101    return ( isEqual(tri1[0], tri2[0], eps) &&
00102             isEqual(tri1[1], tri2[1], eps) &&
00103             isEqual(tri1[2], tri2[2], eps) );
00104 }
00107 } // namespace gmtl
00108 
00109 #endif
00110 

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