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 #pragma once
00040 
00041 // Dependency:
00042 #include "../glm.hpp"
00043 #include "../gtc/constants.hpp"
00044 #include "../gtc/quaternion.hpp"
00045 #include "../gtx/norm.hpp"
00046 
00047 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
00048 #       pragma message("GLM: GLM_GTX_quaternion extension included")
00049 #endif
00050 
00051 namespace glm
00052 {
00055 
00059         template<typename T, precision P>
00060         GLM_FUNC_DECL detail::tvec3<T, P> cross(
00061                 detail::tquat<T, P> const & q,
00062                 detail::tvec3<T, P> const & v);
00063 
00067         template<typename T, precision P>
00068         GLM_FUNC_DECL detail::tvec3<T, P> cross(
00069                 detail::tvec3<T, P> const & v,
00070                 detail::tquat<T, P> const & q);
00071 
00076         template<typename T, precision P>
00077         GLM_FUNC_DECL detail::tquat<T, P> squad(
00078                 detail::tquat<T, P> const & q1,
00079                 detail::tquat<T, P> const & q2,
00080                 detail::tquat<T, P> const & s1,
00081                 detail::tquat<T, P> const & s2,
00082                 T const & h);
00083 
00087         template<typename T, precision P>
00088         GLM_FUNC_DECL detail::tquat<T, P> intermediate(
00089                 detail::tquat<T, P> const & prev,
00090                 detail::tquat<T, P> const & curr,
00091                 detail::tquat<T, P> const & next);
00092 
00096         template<typename T, precision P>
00097         GLM_FUNC_DECL detail::tquat<T, P> exp(
00098                 detail::tquat<T, P> const & q);
00099 
00103         template<typename T, precision P>
00104         GLM_FUNC_DECL detail::tquat<T, P> log(
00105                 detail::tquat<T, P> const & q);
00106 
00110         template<typename T, precision P>
00111         GLM_FUNC_DECL detail::tquat<T, P> pow(
00112                 detail::tquat<T, P> const & x,
00113                 T const & y);
00114 
00118         //template<typename T, precision P>
00119         //detail::tquat<T, P> sqrt(
00120         //      detail::tquat<T, P> const & q);
00121 
00125         template<typename T, precision P>
00126         GLM_FUNC_DECL detail::tvec3<T, P> rotate(
00127                 detail::tquat<T, P> const & q,
00128                 detail::tvec3<T, P> const & v);
00129 
00133         template<typename T, precision P>
00134         GLM_FUNC_DECL detail::tvec4<T, P> rotate(
00135                 detail::tquat<T, P> const & q,
00136                 detail::tvec4<T, P> const & v);
00137 
00141         template<typename T, precision P>
00142         GLM_FUNC_DECL T extractRealComponent(
00143                 detail::tquat<T, P> const & q);
00144 
00148         template<typename T, precision P>
00149         GLM_FUNC_DECL detail::tmat3x3<T, P> toMat3(
00150                 detail::tquat<T, P> const & x){return mat3_cast(x);}
00151 
00155         template<typename T, precision P>
00156         GLM_FUNC_DECL detail::tmat4x4<T, P> toMat4(
00157                 detail::tquat<T, P> const & x){return mat4_cast(x);}
00158 
00162         template<typename T, precision P>
00163         GLM_FUNC_DECL detail::tquat<T, P> toQuat(
00164                 detail::tmat3x3<T, P> const & x){return quat_cast(x);}
00165 
00169         template<typename T, precision P>
00170         GLM_FUNC_DECL detail::tquat<T, P> toQuat(
00171                 detail::tmat4x4<T, P> const & x){return quat_cast(x);}
00172 
00176         template<typename T, precision P>
00177         GLM_FUNC_DECL detail::tquat<T, P> shortMix(
00178                 detail::tquat<T, P> const & x,
00179                 detail::tquat<T, P> const & y,
00180                 T const & a);
00181 
00185         template<typename T, precision P>
00186         GLM_FUNC_DECL detail::tquat<T, P> fastMix(
00187                 detail::tquat<T, P> const & x,
00188                 detail::tquat<T, P> const & y,
00189                 T const & a);
00190 
00196         template<typename T, precision P>
00197         GLM_FUNC_DECL detail::tquat<T, P> rotation(
00198                 detail::tvec3<T, P> const & orig, 
00199                 detail::tvec3<T, P> const & dest);
00200 
00204         template<typename T, precision P>
00205         GLM_FUNC_DECL T length2(detail::tquat<T, P> const & q);
00206 
00208 }//namespace glm
00209 
00210 #include "quaternion.inl"


rtabmap
Author(s): Mathieu Labbe
autogenerated on Sat Jul 23 2016 11:44:17