GLM Version 0.9.0
|
00001 00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) 00004 // Created : 2005-12-21 00005 // Updated : 2008-07-24 00006 // Licence : This source is under MIT License 00007 // File : glm/gtx/norm.hpp 00009 // Dependency: 00010 // - GLM core 00011 // - GLM_GTX_quaternion 00012 // - GLM_GTC_double_float 00014 // ToDo: 00015 // - Study the validity of the notion of length2 to quaternion 00017 00018 #ifndef glm_gtx_norm 00019 #define glm_gtx_norm 00020 00021 // Dependency: 00022 #include "../glm.hpp" 00023 #include "../gtc/double_float.hpp" 00024 #include "../gtx/quaternion.hpp" 00025 00026 namespace glm 00027 { 00028 namespace test{ 00029 void main_gtx_norm(); 00030 }//namespace test 00031 00032 namespace gtx{ 00034 namespace norm 00035 { 00038 template <typename T> 00039 T length2( 00040 const T x); 00041 00044 template <typename T> 00045 T length2( 00046 const detail::tvec2<T> & x); 00047 00050 template <typename T> 00051 T length2( 00052 const detail::tvec3<T>& x); 00053 00056 template <typename T> 00057 T length2( 00058 const detail::tvec4<T>& x); 00059 00062 template <typename T> 00063 T length2( 00064 const detail::tquat<T>& q); 00065 00068 template <typename T> 00069 T distance2( 00070 const T p0, 00071 const T p1); 00072 00075 template <typename T> 00076 T distance2( 00077 const detail::tvec2<T>& p0, 00078 const detail::tvec2<T>& p1); 00079 00082 template <typename T> 00083 T distance2( 00084 const detail::tvec3<T>& p0, 00085 const detail::tvec3<T>& p1); 00086 00089 template <typename T> 00090 T distance2( 00091 const detail::tvec4<T>& p0, 00092 const detail::tvec4<T>& p1); 00093 00096 template <typename T> 00097 T l1Norm( 00098 const detail::tvec3<T>& x, 00099 const detail::tvec3<T>& y); 00100 00103 template <typename T> 00104 T l1Norm( 00105 const detail::tvec3<T>& v); 00106 00109 template <typename T> 00110 T l2Norm( 00111 const detail::tvec3<T>& x, 00112 const detail::tvec3<T>& y); 00113 00116 template <typename T> 00117 T l2Norm( 00118 const detail::tvec3<T>& x); 00119 00122 template <typename T> 00123 T lxNorm( 00124 const detail::tvec3<T>& x, 00125 const detail::tvec3<T>& y, 00126 unsigned int Depth); 00127 00130 template <typename T> 00131 T lxNorm( 00132 const detail::tvec3<T>& x, 00133 unsigned int Depth); 00134 00135 }//namespace norm 00136 }//namespace gtx 00137 }//namespace glm 00138 00139 #include "norm.inl" 00140 00141 namespace glm{using namespace gtx::norm;} 00142 00143 #endif//glm_gtx_norm