quat-calc.hpp

Go to the documentation of this file.
00001 //=============================================================================
00002 /*! normalize itself */
00003 inline void quat::normalize()
00004 {
00005   double myabs(abs(*this));
00006   x /=myabs;
00007   y /=myabs;
00008   z /=myabs;
00009   r /=myabs;
00010 }
00011 
00012 ///////////////////////////////////////////////////////////////////////////////
00013 ///////////////////////////////////////////////////////////////////////////////
00014 ///////////////////////////////////////////////////////////////////////////////
00015 
00016 //=============================================================================
00017 /*! return abs */
00018 inline double abs(const quat& q)
00019 {
00020   return std::sqrt(q.x*q.x +q.y*q.y +q.z*q.z +q.r*q.r);
00021 }
00022 
00023 //=============================================================================
00024 /*! return norm */
00025 inline double norm(const quat& q)
00026 {
00027   return q.x*q.x +q.y*q.y +q.z*q.z +q.r*q.r;
00028 }
00029 
00030 //=============================================================================
00031 /*! return the normalized quat */
00032 inline quat normal(const quat& q)
00033 {
00034   double abs_q(abs(q));
00035   return quat( q.x/abs_q, q.y/abs_q, q.z/abs_q, q.r/abs_q );
00036 }
00037 
00038 ///////////////////////////////////////////////////////////////////////////////
00039 ///////////////////////////////////////////////////////////////////////////////
00040 ///////////////////////////////////////////////////////////////////////////////
00041 
00042 //=============================================================================
00043 /*! return the inverse quat */
00044 inline quat inv(const quat& q)
00045 {
00046   return conj(q)/norm(q);
00047 }
00048 
00049 ///////////////////////////////////////////////////////////////////////////////
00050 ///////////////////////////////////////////////////////////////////////////////
00051 ///////////////////////////////////////////////////////////////////////////////
00052 /*
00053 template<typename T>inline quaternion<T>exp(quaternion<T> const & q);
00054 template<typename T>inline quaternion<T>cos(quaternion<T> const & q);
00055 template<typename T>inline quaternion<T>sin(quaternion<T> const & q);
00056 template<typename T>inline quaternion<T>tan(quaternion<T> const & q);
00057 template<typename T>inline quaternion<T>cosh(quaternion<T> const & q);
00058 template<typename T>inline quaternion<T>sinh(quaternion<T> const & q);
00059 template<typename T>inline quaternion<T>tanh(quaternion<T> const & q);
00060 
00061 template<typename T>quaternion<T>pow(quaternion<T> const & q, int n);
00062 */

Generated on Tue Mar 15 16:02:38 2005 for QVM by  doxygen 1.4.1