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 core{
00016         namespace function{
00017         namespace geometric{ 
00018 
00021 
00026         template <typename genType> 
00027         typename genType::value_type length(
00028                 genType const & x); 
00029 
00034         template <typename genType> 
00035         typename genType::value_type distance(
00036                 genType const & p0, 
00037                 genType const & p1);
00038 
00043     template <typename genType> 
00044         typename genType::value_type dot(
00045                 genType const & x, 
00046                 genType const & y);
00047 
00052     template <typename T> 
00053         detail::tvec3<T> cross(
00054                 detail::tvec3<T> const & x, 
00055                 detail::tvec3<T> const & y);
00056 
00061         template <typename genType> 
00062         genType normalize(
00063                 genType const & x);
00064 
00069     template <typename genType> 
00070         genType faceforward(
00071                 genType const & N, 
00072                 genType const & I, 
00073                 genType const & Nref);
00074   
00080     template <typename genType> 
00081         genType reflect(
00082                 genType const & I, 
00083                 genType const & N);
00084   
00091     template <typename genType> 
00092         genType refract(
00093                 genType const & I, 
00094                 genType const & N, 
00095                 typename genType::value_type const & eta);
00096 
00098 
00099         }//namespace geometric
00100         }//namespace function
00101         }//namespace core
00102 
00103         using namespace core::function::geometric;
00104 }//namespace glm
00105 
00106 #include "func_geometric.inl"
00107 
00108 #endif//glm_core_func_geometric