00001
00002
00004
00005
00006
00007
00009
00010
00011
00012
00014
00015 #ifndef glm_gtx_vector_angle
00016 #define glm_gtx_vector_angle
00017
00018
00019 #include "../glm.hpp"
00020 #include "../gtx/epsilon.hpp"
00021 #include "../gtx/quaternion.hpp"
00022 #include "../gtx/rotate_vector.hpp"
00023
00024 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00025 # pragma message("GLM: GLM_GTX_vector_angle extension included")
00026 #endif
00027
00028 namespace glm{
00029 namespace gtx{
00030 namespace vector_angle
00031 {
00032 using namespace quaternion;
00033 using namespace epsilon;
00034
00037
00041 template <typename vecType>
00042 GLM_FUNC_QUALIFIER typename vecType::value_type angle(
00043 vecType const & x,
00044 vecType const & y);
00045
00049 template <typename T>
00050 GLM_FUNC_QUALIFIER T orientedAngle(
00051 detail::tvec2<T> const & x,
00052 detail::tvec2<T> const & y);
00053
00057 template <typename T>
00058 GLM_FUNC_QUALIFIER T orientedAngle(
00059 detail::tvec3<T> const & x,
00060 detail::tvec3<T> const & y,
00061 detail::tvec3<T> const & ref);
00062
00064 }
00065 }
00066 }
00067
00068 #include "vector_angle.inl"
00069
00070 namespace glm{using namespace gtx::vector_angle;}
00071
00072 #endif//glm_gtx_vector_angle