quat-quat.hpp

Go to the documentation of this file.
00001 //=============================================================================
00002 /*! quat=quat operator */
00003 inline quat& quat::operator=(const quat& q)
00004 {
00005   x =q.x;
00006   y =q.y;
00007   z =q.z;
00008   r =q.r;
00009   return *this;
00010 }
00011 
00012 ///////////////////////////////////////////////////////////////////////////////
00013 ///////////////////////////////////////////////////////////////////////////////
00014 ///////////////////////////////////////////////////////////////////////////////
00015 
00016 //=============================================================================
00017 /*! quat+=quat operator */
00018 inline quat& quat::operator+=(const quat& q)
00019 {
00020   x +=q.x;
00021   y +=q.y;
00022   z +=q.z;
00023   r +=q.r;
00024   return *this;
00025 }
00026 
00027 //=============================================================================
00028 /*! quat-=quat operator */
00029 inline quat& quat::operator-=(const quat& q)
00030 {
00031   x -=q.x;
00032   y -=q.y;
00033   z -=q.z;
00034   r -=q.r;
00035   return *this;
00036 }
00037 
00038 //=============================================================================
00039 /*! quat*=quat operator */
00040 inline quat& quat::operator*=(const quat& q)
00041 {
00042   (*this) =(*this)*q;
00043   return *this;
00044 }
00045 
00046 //=============================================================================
00047 /*! quat/=quat operator */
00048 inline quat& quat::operator/=(const quat& q)
00049 {
00050   (*this) =(*this)/q;
00051   return *this;
00052 }
00053 
00054 
00055 ///////////////////////////////////////////////////////////////////////////////
00056 ///////////////////////////////////////////////////////////////////////////////
00057 ///////////////////////////////////////////////////////////////////////////////
00058 
00059 //============================================================================ 
00060 /*! quat+quat operator */
00061 inline quat operator+(const quat& q1, const quat& q2)
00062 {
00063   return quat(q1.x+q2.x, q1.y+q2.y, q1.z+q2.z, q1.r+q2.r);
00064 }
00065 
00066 //=============================================================================
00067 /*! quat-quat operator */
00068 inline quat operator-(const quat& q1, const quat& q2)
00069 {
00070   return quat(q1.x-q2.x, q1.y-q2.y, q1.z-q2.z, q1.r-q2.r);
00071 }
00072 
00073 //=============================================================================
00074 /*! quat*quat operator */
00075 inline quat operator*(const quat& q1, const quat& q2)
00076 {
00077   return quat(q1.r*q2.x +q1.x*q2.r +q1.y*q2.z -q1.z*q2.y,
00078               q1.r*q2.y -q1.x*q2.z +q1.y*q2.r +q1.z*q2.x,
00079               q1.r*q2.z +q1.x*q2.y -q2.x*q1.y +q1.z*q2.r,
00080               q1.r*q2.r -q1.x*q2.x -q1.y*q2.y -q1.z*q2.z );
00081 }
00082 
00083 //=============================================================================
00084 /*! quat/quat operator */
00085 inline quat operator/(const quat& q1, const quat& q2)
00086 {
00087   return q1*inv(q2);
00088 }

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