00001
00002
00004
00005
00006
00007
00009
00010
00011
00013
00014
00016
00017 #ifndef glm_gtx_norm
00018 #define glm_gtx_norm
00019
00020
00021 #include "../glm.hpp"
00022 #include "../gtx/quaternion.hpp"
00023
00024 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00025 # pragma message("GLM: GLM_GTX_norm extension included")
00026 #endif
00027
00028 namespace glm
00029 {
00030 namespace test{
00031 void main_gtx_norm();
00032 }
00033
00034 namespace gtx{
00036 namespace norm
00037 {
00040
00043 template <typename T>
00044 T length2(
00045 const T x);
00046
00049 template <typename T>
00050 T length2(
00051 const detail::tvec2<T> & x);
00052
00055 template <typename T>
00056 T length2(
00057 const detail::tvec3<T>& x);
00058
00061 template <typename T>
00062 T length2(
00063 const detail::tvec4<T>& x);
00064
00067 template <typename T>
00068 T length2(
00069 const detail::tquat<T>& q);
00070
00073 template <typename T>
00074 T distance2(
00075 const T p0,
00076 const T p1);
00077
00080 template <typename T>
00081 T distance2(
00082 const detail::tvec2<T>& p0,
00083 const detail::tvec2<T>& p1);
00084
00087 template <typename T>
00088 T distance2(
00089 const detail::tvec3<T>& p0,
00090 const detail::tvec3<T>& p1);
00091
00094 template <typename T>
00095 T distance2(
00096 const detail::tvec4<T>& p0,
00097 const detail::tvec4<T>& p1);
00098
00101 template <typename T>
00102 T l1Norm(
00103 const detail::tvec3<T>& x,
00104 const detail::tvec3<T>& y);
00105
00108 template <typename T>
00109 T l1Norm(
00110 const detail::tvec3<T>& v);
00111
00114 template <typename T>
00115 T l2Norm(
00116 const detail::tvec3<T>& x,
00117 const detail::tvec3<T>& y);
00118
00121 template <typename T>
00122 T l2Norm(
00123 const detail::tvec3<T>& x);
00124
00127 template <typename T>
00128 T lxNorm(
00129 const detail::tvec3<T>& x,
00130 const detail::tvec3<T>& y,
00131 unsigned int Depth);
00132
00135 template <typename T>
00136 T lxNorm(
00137 const detail::tvec3<T>& x,
00138 unsigned int Depth);
00139
00141
00142 }
00143 }
00144 }
00145
00146 #include "norm.inl"
00147
00148 namespace glm{using namespace gtx::norm;}
00149
00150 #endif//glm_gtx_norm