00001
00002
00004
00005
00006
00007
00009
00010
00012
00013 #ifndef glm_gtx_vector_query
00014 #define glm_gtx_vector_query
00015
00016
00017 #include "../glm.hpp"
00018 #include <cfloat>
00019 #include <limits>
00020
00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00022 # pragma message("GLM: GLM_GTX_vector_query extension included")
00023 #endif
00024
00025 namespace glm
00026 {
00027 namespace test{
00028 void main_ext_gtx_vector_query();
00029 }
00030
00031 namespace gtx{
00033 namespace vector_query
00034 {
00037
00040 template <typename genType>
00041 bool areCollinear(
00042 const genType & v0,
00043 const genType & v1,
00044 const GLMvalType epsilon = std::numeric_limits<GLMvalType>::epsilon());
00045
00048 template <typename genType>
00049 bool areOpposite(
00050 const genType & v0,
00051 const genType & v1,
00052 const GLMvalType epsilon = std::numeric_limits<GLMvalType>::epsilon());
00053
00056 template <typename genType>
00057 bool areOrthogonal(
00058 const genType & v0,
00059 const genType & v1,
00060 const GLMvalType epsilon = std::numeric_limits<GLMvalType>::epsilon());
00061
00064 template <typename genType>
00065 bool isNormalized(
00066 const genType & v,
00067 const GLMvalType epsilon = std::numeric_limits<GLMvalType>::epsilon());
00068
00071 template <typename genType>
00072 bool isNull(
00073 const genType& v,
00074 const GLMvalType epsilon = std::numeric_limits<GLMvalType>::epsilon());
00075
00078 template <typename genType>
00079 bool areOrthonormal(
00080 const genType & v0,
00081 const genType & v1,
00082 const GLMvalType epsilon = std::numeric_limits<GLMvalType>::epsilon());
00083
00086 template <typename genType>
00087 bool areSimilar(
00088 const genType& v0,
00089 const genType& v1,
00090 const GLMvalType epsilon = std::numeric_limits<GLMvalType>::epsilon());
00091
00093
00094 }
00095 }
00096 }
00097
00098 #include "vector_query.inl"
00099
00100 namespace glm{using namespace gtx::vector_query;}
00101
00102 #endif//glm_gtx_vector_query