quat.hpp

Go to the documentation of this file.
00001 //=============================================================================
00002 //! double-precision quaternion class
00003 class quat
00004 {
00005 public:
00006   //// members ////
00007   double x; //!< \f$ Q_0 \f$ component
00008   double y; //!< \f$ Q_1 \f$ component
00009   double z; //!< \f$ Q_2 \f$ component
00010   double r; //!< \f$ Q_3 \f$ component
00011   
00012   //// constructer////
00013   inline quat();
00014   inline quat(const quat&);
00015   inline quat(const double&, const double&, const double&, const double&);
00016   
00017   //// destructer ////
00018   inline ~quat();
00019   
00020   //// io ////
00021   inline double& operator()(const int&);
00022   inline double operator()(const int&) const;
00023   inline friend std::ostream& operator<<(std::ostream&, const quat&);
00024   
00025   //// calc ////
00026   inline void normalize();
00027   inline friend double abs(const quat&);
00028   inline friend double norm(const quat&);
00029   inline friend quat normal(const quat&);
00030   inline friend quat inv(const quat&);
00031   
00032   //// misc ////
00033   inline friend vec im(const quat&);
00034   inline friend vec q2vt(const quat&);
00035   inline friend quat conj(const quat&);
00036   inline friend void swap(quat&, quat&);
00037   
00038   //// unary ////
00039   inline quat operator+(void);
00040   inline quat operator-(void);
00041   
00042   //// operators with quat ////
00043   inline quat& operator=(const quat&);
00044   inline quat& operator+=(const quat&);
00045   inline quat& operator-=(const quat&);
00046   inline quat& operator*=(const quat&);
00047   inline quat& operator/=(const quat&);
00048   inline friend quat operator+(const quat&, const quat&);
00049   inline friend quat operator-(const quat&, const quat&);
00050   inline friend quat operator*(const quat&, const quat&);
00051   inline friend quat operator/(const quat&, const quat&);
00052   
00053   //// operators with double ////
00054   inline quat& operator*=(const double&);
00055   inline quat& operator/=(const double&);
00056   inline friend quat operator*(const quat&, const double&);
00057   inline friend quat operator/(const quat&, const double&);
00058   
00059   //// * ////
00060   inline friend quat operator*(const double&, const quat&);
00061 };

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