ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Quaternion.hpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/Quaternion.hpp (file contents):
Revision 1451 by tim, Wed Jun 9 16:16:33 2004 UTC vs.
Revision 1452 by tim, Mon Aug 23 15:11:36 2004 UTC

# Line 1 | Line 1
1   #ifndef _QUATERNION_H_
2   #define _QUATERNION_H_
3   #include <iostream>
4 + #include "Vector4d.hpp"
5   using namespace std;
6  
7   class Mat3x3d;
8   class Euler3;
9   class Vector3d;
10  
11 < class Quaternion{
11 > class Quaternion : public Vector4d{
12    public:
13      Quaternion(){
14 +      x = 1.0;
15 +      y = 0.0;
16 +      z = 0.0;
17 +      w = 0.0;
18      }
19      
15    Quaternion(double x, double y, double z, double w){
16      this->x = x;
17      this->y = y;
18      this->z = z;
19      this->w = w;
20    }
21    
22    Quaternion(const Quaternion& q){
23      this->x = q.x;
24      this->y = q.y;
25      this->z = q.z;
26      this->w = q.w;
27    }
28    
20      Quaternion(Mat3x3d& m);
21      
22      Quaternion(const Euler3& e);
32    
33    inline double& operator[](unsigned int  i) {
34      switch (i){
35        case 0:
36          return x;
37        case 1:
38          return y;
39        case 2:
40          return z;
41        case 3:
42          return w;
43        default:
44          cerr << "error in Quaternion::::operator[]" << endl
45           << "The method has been called with an illegal index i=" << i << "." << endl;
46          exit(1);
47      }
48    }
23  
24 +    Quaternion& operator=( const Vector4d& v1 ){
25 +      if(this == & v1)
26 +        return *this;
27 +      
28 +      this->x = v1.x;
29 +      this->y = v1.y;  
30 +      this->z = v1.z;
31 +      this->w = v1.w;
32 +      
33 +      return *this;
34 +    }
35 +    
36      Mat3x3d toRotationMatrix();
37      Euler3 toEuler();
38 <    
53 <    union{
54 <      struct{
55 <        double x;
56 <        double y;
57 <        double z;
58 <        double w;
59 <      };
60 <      double quat[4];
61 <    };
38 >
39   };
40  
41   #endif //end ifndef _QUATERNION_H_

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines