待用資料成員
Quaternion Quaternion::ZRE)(0.0, 0.0, 0.0, 0.0); 零四元數
Quaternion Quaternion::IDENTITY(1.0, 0.0, 0.0, 0.0) 單位四元數
建構函式
| Ogre::Quaternion::Quaternion |
( |
Real |
fW = 1.0, |
| |
|
Real |
fX = 0.0, |
| |
|
Real |
fY = 0.0, |
| |
|
Real |
fZ = 0.0 |
|
| |
) |
|
|
|
| Ogre::Quaternion::Quaternion |
( |
const Matrix3 & |
rot |
) |
從一個3*3旋轉矩陣構造一個四元數 |
Ogre::Quaternion::Quaternion (const Radian & rfAngle, const Vector3 & rkAxis ) 角度和座標軸構造一個四元數
點乘,四元數的點乘表示的是旋轉的相似程度,結果是個實數,值越大,表示旋轉的方式越相似。
| Real Ogre::Quaternion::Dot |
( |
const Quaternion & |
rkQ |
) |
const |
由3*3旋轉矩陣產生四元數,參數是旋轉矩陣。
void Quaternion::FromRotationMatrix (const Matrix3& kRot)
將四元數轉換為旋轉矩陣,參數是回傳參數,接收得到的旋轉矩陣。
void Quaternion::ToRotationMatrix (Matrix3& kRot) const
由四元數產生軸、角標記法的角和軸。參數是引用參數,回傳用途。
void Quaternion::ToAngleAxis (Real& rfAngle, Vector3& rkAxis) const
由3個向量表達的旋轉矩陣產生四元數,參數是指標指向的多個向量表達的旋轉矩陣(一般為3個)
void Quaternion::FromAxes (const Vector3* akAxis)
由3個向量表達的旋轉矩陣產生四元數
void FromAxes (const Vector3& xAxis, const Vector3& yAxis, const Vector3& zAxis);
由四元數產生旋轉矩陣,該矩陣由指標指向的多個(3個)向量表達。
void ToAxes (Vector3* akAxis) const;
由四元數產生旋轉矩陣,該矩陣由3個向量表達。
void ToAxes (Vector3& xAxis, Vector3& yAxis, Vector3& zAxis);
重載=操作符
Quaternion& operator= (const Quaternion& rkQ);
重載+操作符
Quaternion operator+ (const Quaternion& rkQ) const;
重載-操作符
Quaternion operator- (const Quaternion& rkQ) const;
重載*操作符,四元數*四元數。
Quaternion operator* (const Quaternion& rkQ) const;
重載*操作符,四元數*標量。
Quaternion operator* (Real fScalar) const;
重載*操作符,四元數*四元數。重載為友員方式。
friend Quaternion operator* (Real fScalar, const Quaternion& rkQ);
重載負號操作符
Quaternion operator- () const;
重載==操作符
bool operator== (const Quaternion& rhs) const;
四元數點乘
Real Dot (const Quaternion& rkQ) const;
四元數求模
Real Norm () const;
四元數求倒數,要求本四元數非0
Quaternion Inverse () const;
單位四元數求倒數,要求本四元數為單位四元數。
Quaternion UnitInverse () const; // apply to unit-length quaternion
求四元數的指數,即e的四元數次方
Quaternion Exp () const;
以e為底求四元數的對數
Quaternion Log () const;
用四元數旋轉向量(似乎nVidia的SDK才支援)。
Vector3 operator* (const Vector3& rkVector) const;
靜態成員函數,球麵線性插值。參數fT為0-1的時間因子。
static Quaternion Slerp (Real fT, const Quaternion& rkP, const Quaternion& rkQ);
靜態成員函數,帶幹擾因子的球麵線性插值。參數fT為0-1的時間因子。
static Quaternion SlerpExtraSpins (Real fT, const Quaternion& rkP, const Quaternion& rkQ,
int iExtraSpins);
靜態成員函數,目前不清楚用途。
static void Intermediate (const Quaternion& rkQ0,
const Quaternion& rkQ1, const Quaternion& rkQ2,
Quaternion& rka, Quaternion& rkB);
靜態成員函數,樣條插值(二次插值)。目的是在已知樣條形狀的情況下,通過插值得到平滑的目的線條。fT為0-1的時間因子。rkP和rkQ為樣條的起點和終點,而rkA和為rkB插值過程中的某一線段的起點和終點(控制點連線)。