CrossFramework Library
|
00001 00006 #if defined(XBASE_INCLUDED_QUATERNION_HPP) 00007 #else 00008 #define XBASE_INCLUDED_QUATERNION_HPP 00009 00010 //------------------------------------------------------------ 00011 #include <XBase/BuiltInTypes.hpp> 00012 00013 //------------------------------------------------------------ 00014 namespace XBase { 00015 class Angle; 00016 struct Matrix34POD; 00017 struct Vector3POD; 00018 } 00019 00020 //------------------------------------------------------------ 00021 namespace XBase { 00023 00024 00026 class Quaternion 00027 { 00028 public: 00029 //============================================================ 00031 00032 f32 x; 00033 f32 y; 00034 f32 z; 00035 f32 w; 00036 00037 00038 //============================================================ 00040 00041 Quaternion(); 00042 Quaternion( f32 aX , f32 aY , f32 aZ , f32 aW ); 00043 Quaternion( const Vector3POD& aAxis , const Angle& aAngle ); 00044 00045 00046 //============================================================ 00048 00049 const Quaternion mul( const Quaternion& )const; 00050 Quaternion& mulAssign( const Quaternion& ); 00051 00052 00053 //============================================================ 00055 00056 const Matrix34POD toRotateMatrix()const; 00057 00058 00059 //============================================================ 00061 00062 const Quaternion operator*( const Quaternion& )const; 00063 Quaternion& operator*=( const Quaternion& ); 00064 00065 }; 00067 } 00068 //------------------------------------------------------------ 00069 #endif 00070 // EOF