func_geometric.hpp
00001 
00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
00004 // Created : 2008-08-03
00005 // Updated : 2010-02-04
00006 // Licence : This source is under MIT License
00007 // File    : glm/core/func_geometric.hpp
00009 
00010 #ifndef glm_core_func_geometric
00011 #define glm_core_func_geometric
00012 
00013 namespace glm
00014 {
00015         namespace test{
00016                 void main_core_func_geometric();
00017         }//namespace test
00018 
00019         namespace core{
00020         namespace function{
00022         namespace geometric{
00023 
00026 
00031         template <typename genType> 
00032         typename genType::value_type length(
00033                 genType const & x); 
00034 
00039         template <typename genType> 
00040         typename genType::value_type distance(
00041                 genType const & p0, 
00042                 genType const & p1);
00043 
00048     template <typename genType> 
00049         typename genType::value_type dot(
00050                 genType const & x, 
00051                 genType const & y);
00052 
00057     template <typename T> 
00058         detail::tvec3<T> cross(
00059                 detail::tvec3<T> const & x, 
00060                 detail::tvec3<T> const & y);
00061 
00066         template <typename genType> 
00067         genType normalize(
00068                 genType const & x);
00069 
00074     template <typename genType> 
00075         genType faceforward(
00076                 genType const & N, 
00077                 genType const & I, 
00078                 genType const & Nref);
00079   
00085     template <typename genType> 
00086         genType reflect(
00087                 genType const & I, 
00088                 genType const & N);
00089   
00096     template <typename genType> 
00097         genType refract(
00098                 genType const & I, 
00099                 genType const & N, 
00100                 typename genType::value_type const & eta);
00101 
00103 
00104         }//namespace geometric
00105         }//namespace function
00106         }//namespace core
00107 
00108         using namespace core::function::geometric;
00109 }//namespace glm
00110 
00111 #include "func_geometric.inl"
00112 
00113 #endif//glm_core_func_geometric