00001
00002
00004
00005
00006
00007
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 }
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 }
00089 }
00090 }
00091
00092 using namespace core::function::geometric;
00093 }
00094
00095 #include "func_geometric.inl"
00096
00097 #endif//glm_core_func_geometric