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 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 }
00100 }
00101 }
00102
00103 using namespace core::function::geometric;
00104 }
00105
00106 #include "func_geometric.inl"
00107
00108 #endif//glm_core_func_geometric