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 
00029         template <typename genType> 
00030         typename genType::value_type length(
00031                 genType const & x); 
00032 
00035         template <typename genType> 
00036         typename genType::value_type distance(
00037                 genType const & p0, 
00038                 genType const & p1);
00039 
00042     template <typename genType> 
00043         typename genType::value_type dot(
00044                 genType const & x, 
00045                 genType const & y);
00046 
00049     template <typename T> 
00050         detail::tvec3<T> cross(
00051                 detail::tvec3<T> const & x, 
00052                 detail::tvec3<T> const & y);
00053 
00056         template <typename genType> 
00057         genType normalize(
00058                 genType const & x);
00059 
00062     template <typename genType> 
00063         genType faceforward(
00064                 genType const & N, 
00065                 genType const & I, 
00066                 genType const & Nref);
00067   
00071     template <typename genType> 
00072         genType reflect(
00073                 genType const & I, 
00074                 genType const & N);
00075   
00080     template <typename genType> 
00081         genType refract(
00082                 genType const & I, 
00083                 genType const & N, 
00084                 typename genType::value_type const & eta);
00085 
00087 
00088         }//namespace geometric
00089         }//namespace function
00090         }//namespace core
00091 
00092         using namespace core::function::geometric;
00093 }//namespace glm
00094 
00095 #include "func_geometric.inl"
00096 
00097 #endif//glm_core_func_geometric