WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
|
3次元の平行移動と回転 More...
#include <webcface/transform.h>
Public Member Functions | |
Transform () | |
Transform (const Point &pos, const Rotation &rot) | |
Transform (const Rotation &rot) | |
回転のみの場合Rotationからキャスト | |
Transform (const Point &pos, const std::array< double, 3 > &rot) | |
オイラー角から初期化 | |
Transform (const Point &pos, double rot) | |
2次元の座標と回転を初期化 | |
Transform (double x, double y, double z, double z_angle, double y_angle, double x_angle) | |
3次元の座標と回転をオイラー角から初期化 | |
Transform (double x, double y) | |
2次元の座標を初期化 | |
Transform | appliedTo (const Transform &target) const |
このTransformを別のTransformに適用する | |
Transform | operator* (const Transform &target) const |
このTransformを別のTransformに適用する | |
Transform | appliedTo (const Rotation &target) const |
このTransformをRotationに適用する | |
Transform | operator* (const Rotation &target) const |
このTransformをRotationに適用する | |
Transform & | operator*= (const Transform &target) |
このTransformを別のTransformに適用した結果で置き換える | |
Point | appliedTo (const Point &target) const |
このTransformをPointに適用する | |
Point | operator* (const Point &target) const |
このTransformをPointに適用する | |
Transform | inversed () const |
逆変換を表すTransformを取得 | |
bool | operator== (const Transform &other) const |
bool | operator!= (const Transform &other) const |
bool | operator== (const Rotation &other) const |
bool | operator!= (const Rotation &other) const |
std::array< double, 3 > | pos () const |
3次元座標を取得 | |
std::array< double, 3 > & | pos () |
3次元座標を取得・変更 | |
double | pos (std::size_t index) const |
座標を取得 | |
double & | pos (std::size_t i) |
座標を取得・変更 | |
std::array< double, 3 > | rot () const |
3次元の回転をオイラー角として取得 | |
double | rot (std::size_t index) const |
3次元の回転をZYX順のオイラー角として取得 | |
std::array< double, 3 > & | rot () |
3次元の回転をオイラー角として取得・変更 | |
double & | rot (std::size_t index) |
3次元の回転をZYX順のオイラー角として取得・変更 | |
double | rot2D () const |
2次元の回転を取得 | |
std::pair< std::array< double, 3 >, double > | rotAxisAngle () const |
回転軸と角度として取得 | |
std::array< double, 3 > | rotEuler (AxisSequence axis=AxisSequence::ZYX) const |
3次元の回転をオイラー角として取得 | |
const std::array< std::array< double, 3 >, 3 > & | rotMatrix () const |
回転行列を取得 | |
double | rotMatrix (std::size_t row, std::size_t col) const |
回転行列の要素を取得 | |
std::array< double, 4 > | rotQuat () const |
クォータニオンとして取得 | |
Private Member Functions | |
Point | operator* (double scalar) const |
x, y, z の各要素をスカラー倍したPointを返す | |
Point & | operator*= (double scalar) |
bool | operator== (const Point &other) const |
bool | operator== (const Transform &)=delete |
bool | operator!= (const Point &other) const |
bool | operator!= (const Transform &)=delete |
Rotation & | operator*= (const Rotation &target) |
このRotationを別のRotationに適用した結果で置き換える | |
Friends | |
class | Point |
class | Rotation |
|
inline |
オイラー角から初期化
pos | x, y, z 座標 |
rot | オイラー角 回転軸の順序は z, y, x の順 |
2次元の座標と回転を初期化
pos | x, y 座標 |
rot | 回転角(z) |
|
inline |
3次元の座標と回転をオイラー角から初期化
|
inline |
このTransformをPointに適用する
targetを (このTransformの座標系で) 回転&平行移動した結果のPointを返す。 (thisもtargetも変更されない)
this * target と同じ。
このTransformをRotationに適用する
targetを (このTransformの座標系で) 回転&平行移動した結果のTransformを返す。 結果はRotationではない。 (thisもtargetも変更されない)
this * target と同じ。
このTransformを別のTransformに適用する
targetを (このTransformの座標系で) 回転&平行移動した結果のTransformを返す。 (thisもtargetも変更されない)
this * target と同じ。
Transform inversed | ( | ) | const |
逆変換を表すTransformを取得
|
inline |
|
inline |
このTransformをPointに適用する
同次変換行列とベクトルの積を計算する。 結果はtargetを (このTransformの座標系で) 回転&平行移動した結果 (this->appliedTo(target)) と同じ。
このTransformを別のTransformに適用する
同次変換行列の積を計算する。 結果はtargetを (このTransformの座標系で) 回転&平行移動した結果 (this->appliedTo(target)) と同じ。
このTransformを別のTransformに適用した結果で置き換える
this = this * target と同じ。
|
inline |
|
inline |
|
inline |
3次元座標を取得・変更
|
inline |
3次元座標を取得
|
inline |
座標を取得・変更
index | 0→x, 1→y, 2→z |
|
inline |
座標を取得
index | 0→x, 1→y, 2→z |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
回転軸と角度として取得
|
inline |
3次元の回転をオイラー角として取得
axis | 回転軸の順序 (ver2.5〜) ver2.4までは z, y, x の順しか指定できない |
|
inline |
回転行列を取得
|
inline |
回転行列の要素を取得
|
inline |
クォータニオンとして取得
|
friend |
|
friend |