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
00031 template <typename genType>
00032 typename genType::value_type length(
00033 genType const & x);
00034
00039 template <typename genType>
00040 typename genType::value_type distance(
00041 genType const & p0,
00042 genType const & p1);
00043
00048 template <typename genType>
00049 typename genType::value_type dot(
00050 genType const & x,
00051 genType const & y);
00052
00057 template <typename T>
00058 detail::tvec3<T> cross(
00059 detail::tvec3<T> const & x,
00060 detail::tvec3<T> const & y);
00061
00066 template <typename genType>
00067 genType normalize(
00068 genType const & x);
00069
00074 template <typename genType>
00075 genType faceforward(
00076 genType const & N,
00077 genType const & I,
00078 genType const & Nref);
00079
00085 template <typename genType>
00086 genType reflect(
00087 genType const & I,
00088 genType const & N);
00089
00096 template <typename genType>
00097 genType refract(
00098 genType const & I,
00099 genType const & N,
00100 typename genType::value_type const & eta);
00101
00103
00104 }
00105 }
00106 }
00107
00108 using namespace core::function::geometric;
00109 }
00110
00111 #include "func_geometric.inl"
00112
00113 #endif//glm_core_func_geometric