Springhead
An open source physics engine for virtual reality, haptics and motion generation.

クォータニオンクラスの定義 [詳細]

#include <Base/TinyVec.h>
#include <Base/TinyMat.h>
#include <Base/Affine.h>
TQuaternion.hのインクルード依存関係図
このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

構成

class  TQuaternion< ET >
 Quaternion/4元数.3x3行列の代わりに回転を表すために使える. 4変数で済む.補間や微分・積分がやりやすい.
TVec3との掛け算は,回転変換でオーバーロードされている. [詳細]
 
class  TPose< ET >
 姿勢.位置と向きを表すクラス. TQuaternionTVec3 で向きと位置を表す. TAffineの代わりに使える. [詳細]
 
struct  SwingTwist
 回転のスイング・ツイスト角表現 [詳細]
 

ネームスペース

 Spr
 SpatialVector V(v, w) = [v; w]; SpatialTransform X(R, r) = [R^T, -R^T * r%; O, R^T]; ^Tは転置, は外積行列,Oは零行列. X(R, r) * V(v, w) = [R^T * (v + w % r); R^T * w];.
 

型定義

typedef TQuaternion< float > Quaternionf
 float版TQuaternion.
 
typedef TQuaternion< double > Quaterniond
 double版TQuaternion.
 
typedef TPose< float > Posef
 float版TPose.
 
typedef TPose< double > Posed
 double版TPose.
 

関数

template<class A , class B >
TQuaternion< A > operator* (const TQuaternion< A > &q1, const TQuaternion< B > &q2)
 TQuaternion 同士の掛け算.回転変換としては,合成になる.
 
template<class ET , class BD >
TYPENAME BD::ret_type operator* (const TQuaternion< ET > &q, const PTM::TVectorBase< 3, BD > &v)
 TQuaternionでベクトルを回転. Quaternion * vector * Quaternion^{*} と同じ.
 
template<class ET , class BD >
TYPENAME BD::ret_type operator* (const TQuaternion< ET > &q, const PTM::TMatrixBase< 3, 3, BD > &m)
 TQuaternionで行列を回転. TQuaternion * (ex,ey,ez) * TQuaternion.conjugated() と同じ.
 
template<class T1 , class T2 >
T1 dot (const TQuaternion< T1 > &q1, const TQuaternion< T2 > &q2)
 TQuaternion の内積.
 
template<class ET , class BD >
TQuaternion< ET > mult (const TQuaternion< ET > &q, const PTM::TVectorBase< 3, BD > &v)
 回転操作をせず,普通にQuaternionとベクトルの積を求める
 
template<class BD , class ET >
TQuaternion< ET > mult (const PTM::TVectorBase< 3, BD > &v, const TQuaternion< ET > &q)
 回転操作をせず,普通にベクトルとQuaternionの積を求める
 
template<class T1 , class T2 >
TQuaternion< T1 > interpolate (T1 t, const TQuaternion< T1 > &q1, const TQuaternion< T2 > &q2)
 
template<class EP , class EV >
TVec3< EV > operator* (const TPose< EP > &p, const TVec3< EV > &v)
 
template<class EA , class EB >
TPose< EA > operator* (const TPose< EA > &a, const TPose< EB > &b)
 
template<class EA , class EB >
TPose< EA > interpolate (EA t, const TPose< EA > &p0, const TPose< EB > &p1)
 Poseの補間