クォータニオン(四元数)を扱うクラス [詳細]
#include <quaternion.h>
Public 型 | |
| typedef T | value_type |
| MISTのコンテナ内に格納するデータ型.mist::array< data > の data と同じ | |
| typedef size_t | size_type |
| 符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ | |
| typedef ptrdiff_t | difference_type |
| 符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ | |
| typedef float_type< T >::value_type | float_type |
| 長さなどを計算するときに用いる浮動小数点型 | |
Public メソッド | |
| quaternion () | |
| デフォルトコンストラクタ(全要素を0で初期化する) | |
| quaternion (const value_type &ww, const value_type &xx, const value_type &yy, const value_type &zz) | |
| ww,xx,yy,zz の値を用いて初期化する | |
| quaternion (const value_type &ww) | |
| ww,xx,yy,zz の値を用いて初期化する | |
| template<class TT > | |
| quaternion (const quaternion< TT > &q) | |
| 他のクォータニオンオブジェクト(データ型が異なる)を用いて初期化する | |
| quaternion (const quaternion< T > &q) | |
| 他のクォータニオンオブジェクト(データ型が同じ)を用いて初期化する | |
| template<class TT > | |
| quaternion (value_type ww, const vector3< TT > &v) | |
| 実数成分 ww と虚数成分のベクトル v を用いて初期化する | |
| template<class TT > | |
| quaternion (const vector3< TT > &axis, value_type theta) | |
| クォータニオンを用いた任意軸周りの回転 | |
| template<class TT > | |
| quaternion (vector3< TT > dir, vector3< TT > up) | |
| カメラの視線方向と上向き方向を用いて,カメラの姿勢を表すクォータニオンを計算する | |
| template<class TT > | |
| const quaternion & | operator= (const quaternion< TT > &q) |
| 他のクォータニオンオブジェクトを代入する | |
| const quaternion & | operator= (const quaternion< T > &q) |
| 他のクォータニオンオブジェクトを代入する | |
| quaternion | operator- () const |
| 符号反転したクォータニオンを返す | |
| template<class TT > | |
| const quaternion & | operator+= (const quaternion< TT > &q) |
| クォータニオンの足し算 | |
| template<class TT > | |
| const quaternion & | operator+= (const TT &a) |
| クォータニオンへの実数成分の足し算 | |
| template<class TT > | |
| const quaternion & | operator-= (const quaternion< TT > &q) |
| クォータニオンの引き算 | |
| template<class TT > | |
| const quaternion & | operator-= (const TT &a) |
| クォータニオンへの実数成分の引き算 | |
| template<class TT > | |
| const quaternion & | operator*= (const quaternion< TT > &q) |
| クォータニオンの掛け算 | |
| template<class TT > | |
| const quaternion & | operator*= (const TT &a) |
| クォータニオンへの実数成分の掛け算 | |
| template<class TT > | |
| const quaternion & | operator/= (const quaternion< TT > &q) |
| クォータニオンの割り算 | |
| template<class TT > | |
| const quaternion & | operator/= (const TT &a) |
| クォータニオンを実数成分で割る | |
| bool | operator== (const quaternion &q) const |
| 2つのクォータニオンが同一かどうかを判定する | |
| bool | operator!= (const quaternion &q) const |
| 2つのクォータニオンが等しくないどうかを判定する | |
| bool | operator< (const quaternion &q) const |
| 2つのベクトルの < を判定する | |
| bool | operator<= (const quaternion &q) const |
| 2つのベクトルの <= を判定する | |
| bool | operator> (const quaternion &q) const |
| 2つのベクトルの > を判定する | |
| bool | operator>= (const quaternion &q) const |
| 2つのベクトルの >= を判定する | |
| const quaternion | conjugate () const |
| 共役クォータニオン | |
| const quaternion | inv () const |
| 逆クォータニオン | |
| const quaternion | unit () const |
| 単位クォータニオン | |
| template<class TT > | |
| value_type | inner (const quaternion< TT > &q) const |
| クォータニオンの内積 | |
| float_type | length () const |
| クォータニオンのノルム | |
| template<class TT > | |
| const vector3< TT > | rotate (const vector3< TT > &v) const |
| クォータニオンを用いたベクトルの回転 | |
Static Public メソッド | |
| template<class TT > | |
| static quaternion | rotate (vector3< TT > v1, vector3< TT > v2) |
| ベクトル1からベクトル2への回転を表すクォータニオンを作成する | |
| template<class TT > | |
| static quaternion | rotate (vector3< TT > v1, vector3< TT > v2, const vector3< TT > &axis) |
| 指定した回転軸を用いてベクトル1からベクトル2への回転を表すクォータニオンを作成する | |
変数 | |
| value_type | w |
| 実数成分 | |
| value_type | x |
| 虚数成分1 | |
| value_type | y |
| 虚数成分2 | |
| value_type | z |
| 虚数成分3 | |
クォータニオン(四元数)を扱うクラス
| T | … 内部で用いるデータ型 |
|
inline |
クォータニオンを用いた任意軸周りの回転
| [in] | axis | … 回転軸 |
| [in] | theta | … 回転角度 |
参照先 mist::vector3< T >::x, mist::vector3< T >::y, と mist::vector3< T >::z.
|
inline |
カメラの視線方向と上向き方向を用いて,カメラの姿勢を表すクォータニオンを計算する
| [in] | dir | … 回転前のベクトル |
| [in] | up | … 回転後のベクトル |
参照先 mist::quaternion< T >::rotate(), と mist::vector3< T >::unit().
|
inline |
共役クォータニオン
|
inline |
クォータニオンの内積
| [in] | q | … 右辺値 |
参照先 mist::quaternion< T >::w, mist::quaternion< T >::x, mist::quaternion< T >::y, と mist::quaternion< T >::z.
参照元 mist::interpolate().
|
inline |
|
inline |
クォータニオンのノルム
|
inline |
2つのクォータニオンが等しくないどうかを判定する
| [in] | q | … 右辺値 |
| true | … どれか1つでも等しくない場合 |
| false | … 全ての要素が等しい場合 |
|
inline |
クォータニオンの掛け算
| [in] | q | … 右辺値 |
参照先 mist::quaternion< T >::w, mist::quaternion< T >::x, mist::quaternion< T >::y, と mist::quaternion< T >::z.
|
inline |
クォータニオンへの実数成分の掛け算
| [in] | a | … 実数成分 |
|
inline |
クォータニオンの足し算
| [in] | q | … 右辺値 |
参照先 mist::quaternion< T >::w, mist::quaternion< T >::x, mist::quaternion< T >::y, と mist::quaternion< T >::z.
|
inline |
クォータニオンへの実数成分の足し算
| [in] | a | … 実数成分 |
|
inline |
クォータニオンの引き算
| [in] | q | … 右辺値 |
参照先 mist::quaternion< T >::w, mist::quaternion< T >::x, mist::quaternion< T >::y, と mist::quaternion< T >::z.
|
inline |
クォータニオンへの実数成分の引き算
| [in] | a | … 実数成分 |
|
inline |
|
inline |
クォータニオンを実数成分で割る
| [in] | a | … 実数成分 |
|
inline |
2つのベクトルの < を判定する
| [in] | q | … 右辺値 |
| true | … p < q の場合 |
| false | … p >= q の場合 |
参照先 mist::quaternion< T >::w, mist::quaternion< T >::x, mist::quaternion< T >::y, と mist::quaternion< T >::z.
|
inline |
2つのベクトルの <= を判定する
| [in] | q | … 右辺値 |
| true | … p <= q の場合 |
| false | … p > q の場合 |
|
inline |
2つのクォータニオンが同一かどうかを判定する
| [in] | q | … 右辺値 |
| true | … 全ての要素が等しい場合 |
| false | … どれか1つでも等しくない場合 |
参照先 mist::quaternion< T >::w, mist::quaternion< T >::x, mist::quaternion< T >::y, と mist::quaternion< T >::z.
|
inline |
2つのベクトルの > を判定する
| [in] | q | … 右辺値 |
| true | … p > q の場合 |
| false | … p <= q の場合 |
|
inline |
2つのベクトルの >= を判定する
| [in] | q | … 右辺値 |
| true | … p >= q の場合 |
| false | … p < q の場合 |
|
inline |
クォータニオンを用いたベクトルの回転
| [in] | v | … 回転されるベクトル |
参照先 mist::quaternion< T >::x, mist::vector3< T >::x, mist::quaternion< T >::y, mist::vector3< T >::y, mist::quaternion< T >::z, と mist::vector3< T >::z.
|
inlinestatic |
ベクトル1からベクトル2への回転を表すクォータニオンを作成する
| [in] | v1 | … 回転前のベクトル |
| [in] | v2 | … 回転後のベクトル |
参照先 mist::vector3< T >::inner(), mist::vector3< T >::outer(), と mist::vector3< T >::unit().
|
inlinestatic |
指定した回転軸を用いてベクトル1からベクトル2への回転を表すクォータニオンを作成する
| [in] | v1 | … 回転前のベクトル |
| [in] | v2 | … 回転後のベクトル |
| [in] | axis | … 回転軸ベクトル |
参照先 mist::vector3< T >::inner(), mist::vector3< T >::outer(), と mist::vector3< T >::unit().
|
inline |
1.8.1.2