WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
Transform Class Reference

3次元の平行移動と回転 More...

#include <webcface/transform.h>

Inheritance diagram for Transform:
[legend]
Collaboration diagram for Transform:
[legend]

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に適用する
 
Transformoperator*= (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を返す
 
Pointoperator*= (double scalar)
 
bool operator== (const Point &other) const
 
bool operator== (const Transform &)=delete
 
bool operator!= (const Point &other) const
 
bool operator!= (const Transform &)=delete
 
Rotationoperator*= (const Rotation &target)
 このRotationを別のRotationに適用した結果で置き換える
 

Friends

class Point
 
class Rotation
 

Detailed Description

3次元の平行移動と回転

Since
ver1.4
  • ver2.5〜 publicではなくprivate継承に変更
See also
Point, Rotation

Constructor & Destructor Documentation

◆ Transform() [1/7]

Transform ( )
inline

◆ Transform() [2/7]

Transform ( const Point pos,
const Rotation rot 
)
inline
Since
ver2.5

◆ Transform() [3/7]

Transform ( const Rotation rot)
inline

回転のみの場合Rotationからキャスト

Since
ver2.5

◆ Transform() [4/7]

Transform ( const Point pos,
const std::array< double, 3 > &  rot 
)
inline

オイラー角から初期化

Parameters
posx, y, z 座標
rotオイラー角 回転軸の順序は z, y, x の順
Deprecated:
ver2.5〜 Transform(pos, rotEuler(rot))

◆ Transform() [5/7]

Transform ( const Point pos,
double  rot 
)
inline

2次元の座標と回転を初期化

Since
ver1.6
Parameters
posx, y 座標
rot回転角(z)

◆ Transform() [6/7]

Transform ( double  x,
double  y,
double  z,
double  z_angle,
double  y_angle,
double  x_angle 
)
inline

3次元の座標と回転をオイラー角から初期化

Deprecated:
ver2.5〜 Transform({x, y, z}, rotEuler(z, y, x))

◆ Transform() [7/7]

Transform ( double  x,
double  y 
)
inline

2次元の座標を初期化

Since
ver1.6
Deprecated:
ver2.5〜 translate(x, y)

Member Function Documentation

◆ appliedTo() [1/3]

Point appliedTo ( const Point target) const

このTransformをPointに適用する

Since
ver2.5

targetを (このTransformの座標系で) 回転&平行移動した結果のPointを返す。 (thisもtargetも変更されない)

this * target と同じ。

◆ appliedTo() [2/3]

Transform appliedTo ( const Rotation target) const
inline

このTransformをRotationに適用する

Since
ver2.5

targetを (このTransformの座標系で) 回転&平行移動した結果のTransformを返す。 結果はRotationではない。 (thisもtargetも変更されない)

this * target と同じ。

◆ appliedTo() [3/3]

Transform appliedTo ( const Transform target) const

このTransformを別のTransformに適用する

Since
ver2.5

targetを (このTransformの座標系で) 回転&平行移動した結果のTransformを返す。 (thisもtargetも変更されない)

this * target と同じ。

◆ inversed()

Transform inversed ( ) const

逆変換を表すTransformを取得

Since
ver2.5

◆ operator!=() [1/2]

bool operator!= ( const Rotation other) const
inline

◆ operator!=() [2/2]

bool operator!= ( const Transform other) const
inline

◆ operator*() [1/3]

Point operator* ( const Point target) const
inline

このTransformをPointに適用する

Since
ver2.5

同次変換行列とベクトルの積を計算する。 結果はtargetを (このTransformの座標系で) 回転&平行移動した結果 (this->appliedTo(target)) と同じ。

See also
appliedTo

◆ operator*() [2/3]

Transform operator* ( const Rotation target) const
inline

このTransformをRotationに適用する

Since
ver2.5
See also
appliedTo

◆ operator*() [3/3]

Transform operator* ( const Transform target) const
inline

このTransformを別のTransformに適用する

Since
ver2.5

同次変換行列の積を計算する。 結果はtargetを (このTransformの座標系で) 回転&平行移動した結果 (this->appliedTo(target)) と同じ。

See also
appliedTo

◆ operator*=()

Transform & operator*= ( const Transform target)
inline

このTransformを別のTransformに適用した結果で置き換える

Since
ver2.5

this = this * target と同じ。

◆ operator==() [1/2]

bool operator== ( const Rotation other) const
inline

◆ operator==() [2/2]

bool operator== ( const Transform other) const
inline
  • (ver2.5〜) x, y, z の各要素と、回転行列の各要素の差が 1e-8 未満のときtrue

◆ pos() [1/4]

std::array< double, 3 > & pos ( )
inline

3次元座標を取得・変更

Since
ver1.6

◆ pos() [2/4]

std::array< double, 3 > pos ( ) const
inline

3次元座標を取得

◆ pos() [3/4]

double & pos ( std::size_t  i)
inline

座標を取得・変更

Since
ver1.6
Parameters
index0→x, 1→y, 2→z

◆ pos() [4/4]

double pos ( std::size_t  index) const
inline

座標を取得

Since
ver1.6
Parameters
index0→x, 1→y, 2→z

◆ rot() [1/4]

std::array< double, 3 > & rot ( )
inline

3次元の回転をオイラー角として取得・変更

See also
rotEuler()
Deprecated:
ver2.5〜

◆ rot() [2/4]

std::array< double, 3 > rot ( ) const
inline

3次元の回転をオイラー角として取得

See also
rotEuler(), rot2D()
Deprecated:
ver2.5〜

◆ rot() [3/4]

double & rot ( std::size_t  index)
inline

3次元の回転をZYX順のオイラー角として取得・変更

Since
ver1.6
Parameters
index0→z, 1→y, 2→x
Deprecated:
ver2.5〜

◆ rot() [4/4]

double rot ( std::size_t  index) const
inline

3次元の回転をZYX順のオイラー角として取得

Since
ver1.6
Parameters
index0→z, 1→y, 2→x
Deprecated:
ver2.5〜

◆ rot2D()

double rot2D ( ) const
inline

2次元の回転を取得

Since
ver2.5

内部処理としては rotEuler()[0] と同じ。

◆ rotAxisAngle()

std::pair< std::array< double, 3 >, double > rotAxisAngle ( ) const
inline

回転軸と角度として取得

Since
ver2.5

◆ rotEuler()

std::array< double, 3 > rotEuler ( AxisSequence  axis = AxisSequence::ZYX) const
inline

3次元の回転をオイラー角として取得

Since
ver2.5
Parameters
axis回転軸の順序 (ver2.5〜) ver2.4までは z, y, x の順しか指定できない

◆ rotMatrix() [1/2]

const std::array< std::array< double, 3 >, 3 > & rotMatrix ( ) const
inline

回転行列を取得

Since
ver2.5

◆ rotMatrix() [2/2]

double rotMatrix ( std::size_t  row,
std::size_t  col 
) const
inline

回転行列の要素を取得

Since
ver2.5

◆ rotQuat()

std::array< double, 4 > rotQuat ( ) const
inline

クォータニオンとして取得

Since
ver2.5

Friends And Related Symbol Documentation

◆ Point

friend class Point
friend

◆ Rotation

friend class Rotation
friend

The documentation for this class was generated from the following files: