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 #ifndef QUATERNIONC_H
00026 #define QUATERNIONC_H
00027
00028 #include "oaw/misc/vectorc.h"
00029
00030 #include "../oawconfig.h"
00031
00032 OAW_BEGIN_NAMESPACE
00033
00034 class OAW_DLLMAPPING QuaternionC
00035 {
00036 public:
00037 QuaternionC();
00038 QuaternionC(const double&, const VectorC&);
00039 void Set(const double&, const VectorC&);
00040 QuaternionC SetEulerRad(const double&, const double&, const double&);
00041 QuaternionC SetEulerDeg(const double&, const double&, const double&);
00042 void SetRotateOnMinusZ(const VectorC&);
00043 QuaternionC operator * (const QuaternionC&);
00044 void SetRotationRad(const VectorC&,double);
00045 void SetRotationDeg(const VectorC&,double);
00046 void GetRotationRad(VectorC&, double& a);
00047 void GetRotationDeg(VectorC&, double& a);
00048 void Normalize();
00049 public:
00050 double w,x,y,z;
00051 };
00052
00053 OAW_DLLMAPPING QuaternionC Con(const QuaternionC&);
00054 OAW_DLLMAPPING QuaternionC Slerp(QuaternionC,QuaternionC,double u);
00055
00056 OAW_END_NAMESPACE
00057
00058 #endif
00059
00060
00061
00062
00063