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 #include <XBase/ShortString.hpp> 00013 00014 //------------------------------------------------------------ 00015 namespace XBase { 00016 class Angle; 00017 struct Matrix34POD; 00018 struct Vector3POD; 00019 } 00020 00021 //------------------------------------------------------------ 00022 namespace XBase { 00024 00025 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 00066 //============================================================ 00068 00069 00070 const ShortString toShortString()const; 00072 }; 00074 } 00075 //------------------------------------------------------------ 00076 #endif 00077 // EOF