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 template <typename genType>
00027 typename genType::value_type length(
00028 genType const & x);
00029
00032 template <typename genType>
00033 typename genType::value_type distance(
00034 genType const & p0,
00035 genType const & p1);
00036
00039 template <typename genType>
00040 typename genType::value_type dot(
00041 genType const & x,
00042 genType const & y);
00043
00046 template <typename T>
00047 detail::tvec3<T> cross(
00048 detail::tvec3<T> const & x,
00049 detail::tvec3<T> const & y);
00050
00053 template <typename genType>
00054 genType normalize(
00055 genType const & x);
00056
00059 template <typename genType>
00060 genType faceforward(
00061 genType const & N,
00062 genType const & I,
00063 genType const & Nref);
00064
00068 template <typename genType>
00069 genType reflect(
00070 genType const & I,
00071 genType const & N);
00072
00077 template <typename genType>
00078 genType refract(
00079 genType const & I,
00080 genType const & N,
00081 typename genType::value_type const & eta);
00082
00083 }
00084 }
00085 }
00086
00087 using namespace core::function::geometric;
00088 }
00089
00090 #include "func_geometric.inl"
00091
00092 #endif//glm_core_func_geometric