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(genType const & x);
00028
00031 template <typename genType>
00032 typename genType::value_type distance(genType const & p0, genType const & p1);
00033
00036 template <typename genType>
00037 typename genType::value_type dot(genType const & x, genType const & y);
00038
00041 template <typename valType>
00042 detail::tvec3<valType> cross(detail::tvec3<valType> const & x, detail::tvec3<valType> const & y);
00043
00046 template <typename genType>
00047 genType normalize(genType const & x);
00048
00051 template <typename genType>
00052 genType faceforward(genType const & N, genType const & I, genType const & Nref);
00053
00057 template <typename genType>
00058 genType reflect(genType const & I, genType const & N);
00059
00064 template <typename genType>
00065 genType refract(genType const & I, genType const & N, typename genType::value_type const & eta);
00066
00067 }
00068 }
00069 }
00070
00071 using namespace core::function::geometric;
00072 }
00073
00074 #include "func_geometric.inl"
00075
00076 #endif//glm_core_func_geometric