- Main Page
- Related Pages
- Modules
- Classes
- Files

- File List

quaternion.hpp
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 // Dependency:
    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         //template <typename valType>
    00111         //detail::tquat<valType> sqrt(
    00112         //      detail::tquat<valType> const & q);
    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 }//namespace glm
    00228
    00229 #include "quaternion.inl"
    00230
    00231 #endif//GLM_GTX_quaternion