Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef GLM_GTX_quaternion
00040 #define GLM_GTX_quaternion GLM_VERSION
00041
00042
00043 #include "../glm.hpp"
00044 #include "../gtc/quaternion.hpp"
00045
00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00047 # pragma message("GLM: GLM_GTX_quaternion extension included")
00048 #endif
00049
00050 namespace glm
00051 {
00054
00057 template <typename valType>
00058 detail::tvec3<valType> cross(
00059 detail::tquat<valType> const & q,
00060 detail::tvec3<valType> const & v);
00061
00064 template <typename valType>
00065 detail::tvec3<valType> cross(
00066 detail::tvec3<valType> const & v,
00067 detail::tquat<valType> const & q);
00068
00072 template <typename valType>
00073 detail::tquat<valType> squad(
00074 detail::tquat<valType> const & q1,
00075 detail::tquat<valType> const & q2,
00076 detail::tquat<valType> const & s1,
00077 detail::tquat<valType> const & s2,
00078 valType const & h);
00079
00082 template <typename valType>
00083 detail::tquat<valType> intermediate(
00084 detail::tquat<valType> const & prev,
00085 detail::tquat<valType> const & curr,
00086 detail::tquat<valType> const & next);
00087
00090 template <typename valType>
00091 detail::tquat<valType> exp(
00092 detail::tquat<valType> const & q,
00093 valType const & exponent);
00094
00097 template <typename valType>
00098 detail::tquat<valType> log(
00099 detail::tquat<valType> const & q);
00100
00103 template <typename valType>
00104 detail::tquat<valType> pow(
00105 detail::tquat<valType> const & x,
00106 valType const & y);
00107
00110
00111
00112
00113
00116 template <typename valType>
00117 detail::tvec3<valType> rotate(
00118 detail::tquat<valType> const & q,
00119 detail::tvec3<valType> const & v);
00120
00123 template <typename valType>
00124 detail::tvec4<valType> rotate(
00125 detail::tquat<valType> const & q,
00126 detail::tvec4<valType> const & v);
00127
00130 template <typename valType>
00131 valType angle(
00132 detail::tquat<valType> const & x);
00133
00136 template <typename valType>
00137 detail::tvec3<valType> axis(
00138 detail::tquat<valType> const & x);
00139
00142 template <typename valType>
00143 detail::tquat<valType> angleAxis(
00144 valType const & angle,
00145 valType const & x,
00146 valType const & y,
00147 valType const & z);
00148
00151 template <typename valType>
00152 detail::tquat<valType> angleAxis(
00153 valType const & angle,
00154 detail::tvec3<valType> const & axis);
00155
00158 template <typename valType>
00159 valType extractRealComponent(
00160 detail::tquat<valType> const & q);
00161
00164 template <typename valType>
00165 valType roll(
00166 detail::tquat<valType> const & x);
00167
00170 template <typename valType>
00171 valType pitch(
00172 detail::tquat<valType> const & x);
00173
00176 template <typename valType>
00177 valType yaw(
00178 detail::tquat<valType> const & x);
00179
00182 template <typename valType>
00183 detail::tvec3<valType> eulerAngles(
00184 detail::tquat<valType> const & x);
00185
00188 template <typename valType>
00189 detail::tmat3x3<valType> toMat3(
00190 detail::tquat<valType> const & x){return mat3_cast(x);}
00191
00194 template <typename valType>
00195 detail::tmat4x4<valType> toMat4(
00196 detail::tquat<valType> const & x){return mat4_cast(x);}
00197
00200 template <typename valType>
00201 detail::tquat<valType> toQuat(
00202 detail::tmat3x3<valType> const & x){return quat_cast(x);}
00203
00206 template <typename valType>
00207 detail::tquat<valType> toQuat(
00208 detail::tmat4x4<valType> const & x){return quat_cast(x);}
00209
00212 template <typename T>
00213 detail::tquat<T> shortMix(
00214 detail::tquat<T> const & x,
00215 detail::tquat<T> const & y,
00216 T const & a);
00217
00220 template <typename T>
00221 detail::tquat<T> fastMix(
00222 detail::tquat<T> const & x,
00223 detail::tquat<T> const & y,
00224 T const & a);
00225
00227 }
00228
00229 #include "quaternion.inl"
00230
00231 #endif//GLM_GTX_quaternion