Spec-Zone.ru › Eigen3

Eigen::AngleAxis

template<typename _Scalar>
class Eigen::AngleAxis< _Scalar >

Представляет 3D вращение как угол вращения вокруг произвольной 3D оси.

Это определено в модуле Geometry.

#include <Eigen/Geometry> 
Параметры
_Scalar тип скаляра, т.е. тип коэффициентов.
Предупреждение
При настройке объекта AngleAxis вектор оси обязательно должен быть нормализован.

Для удобства предоставляются следующие два определения типов:

  • AngleAxisf для float
  • AngleAxisd для double

В сочетании с MatrixBase::Unit{X,Y,Z}, AngleAxis можно легко имитировать углы Эйлера. Вот пример:

Matrix3f m;
m = AngleAxisf(0.25*M_PI, Vector3f::UnitX())
  * AngleAxisf(0.5*M_PI,  Vector3f::UnitY())
  * AngleAxisf(0.33*M_PI, Vector3f::UnitZ());
cout << m << endl << "is unitary: " << m.isUnitary() << endl;

Вывод:

1.19e-07        0        1
   0.969   -0.249        0
   0.249    0.969 1.19e-07
is unitary: 1
Примечание
Этот класс не предназначен для хранения преобразования вращения, а скорее для облегчения создания других объектов вращения (Quaternion, вращательная Matrix) и преобразования.
См. также
класс Quaternion, класс Transform, MatrixBase::UnitX()
Inheritance graph
typedef _Scalar Scalar
- Публичные типы, унаследованные от Eigen::RotationBase< AngleAxis< _Scalar >, 3 >
typedef Matrix< Scalar, Dim, Dim > RotationMatrixType
typedef internal::traits< AngleAxis< _Scalar > >::Scalar Scalar
Скаляр & угол ()
Скаляр угол () const
AngleAxis ()
template<typename OtherScalarType >
AngleAxis (const AngleAxis< OtherScalarType > &other)
template<typename Derived >
AngleAxis (const MatrixBase< Derived > &m)
template<typename QuatDerived >
AngleAxis (const QuaternionBase< QuatDerived > &q)
template<typename Derived >
AngleAxis (const Скаляр &угол, const MatrixBase< Derived > &ось)
Vector3 & ось ()
const Vector3 & ось () const
template<typename NewScalarType >
internal::cast_return_type< AngleAxis, AngleAxis< NewScalarType > >::type cast () const
template<typename Derived >
AngleAxis< Скаляр > & fromRotationMatrix (const MatrixBase< Derived > &mat)
Устанавливает *this по 3x3 матрице вращения.
AngleAxis обратная () const
bool isApprox (const AngleAxis &other, const typename NumTraits< Скаляр >::Real &prec=NumTraits< Скаляр >::dummy_precision()) const
QuaternionType operator* (const AngleAxis &other) const
QuaternionType operator* (const QuaternionType &other) const
template<typename Derived >
AngleAxis< Скаляр > & operator= (const MatrixBase< Derived > &mat)
template<typename QuatDerived >
AngleAxis< Скаляр > & operator= (const QuaternionBase< QuatDerived > &q)
Matrix3 toRotationMatrix (void) const
- Публичные члены-функции, унаследованные от Eigen::RotationBase< AngleAxis< _Scalar >, 3 >
AngleAxis< _Scalar > обратная () const
RotationMatrixType matrix () const
internal::rotation_base_generic_product_selector< AngleAxis< _Scalar >, OtherDerived, OtherDerived::IsVectorAtCompileTime >::ReturnType operator* (const EigenBase< OtherDerived > &e) const
Transform< Скаляр, Dim, Mode > operator* (const Transform< Скаляр, Dim, Mode, Options > &t) const
Transform< Скаляр, Dim, Isometry > operator* (const Translation< Скаляр, Dim > &t) const
RotationMatrixType operator* (const UniformScaling< Скаляр > &s) const
RotationMatrixType toRotationMatrix () const

Скаляр

template<typename _Scalar >
typedef _Scalar Eigen::AngleAxis< _Scalar >::Скаляр

тип скаляра коэффициентов

AngleAxis() [1/5]

template<typename _Scalar >
Eigen::AngleAxis< _Scalar >::AngleAxis ( )
inline

Конструктор по умолчанию без инициализации.

AngleAxis() [2/5]

template<typename _Scalar >
template<typename Derived >
Eigen::AngleAxis< _Scalar >::AngleAxis ( const Скаляр & угол,
const MatrixBase< Derived > & ось
)
inline

Создает и инициализирует вращение угол-ось по углу в радианах и оси, которая должна быть нормализована.

Предупреждение
Если вектор оси не нормализован, то объект угол-ось представляет некорректное вращение.

AngleAxis() [3/5]

template<typename _Scalar >
template<typename QuatDerived >
Eigen::AngleAxis< _Scalar >::AngleAxis ( const QuaternionBase< QuatDerived > & q )
inlineexplicit

Создаёт и инициализирует вращение по углу-оси из кватерниона q. Эта функция неявно нормализует кватернион q.

AngleAxis() [4/5]

template<typename _Scalar >
template<typename Derived >
Eigen::AngleAxis< _Scalar >::AngleAxis ( const MatrixBase< Derived > & m )
inlineexplicit

Создаёт и инициализирует вращение по углу-оси из 3x3 матрицы вращения.

AngleAxis() [5/5]

template<typename _Scalar >
template<typename OtherScalarType >
Eigen::AngleAxis< _Scalar >::AngleAxis ( const AngleAxis< OtherScalarType > & other )
inlineexplicit

Конструктор копирования с преобразованием типа скаляра

angle() [1/2]

template<typename _Scalar >
Scalar& Eigen::AngleAxis< _Scalar >::angle ( )
inline
Возвращает
ссылку на изменяемую часть сохранённого угла в радианах

angle() [2/2]

template<typename _Scalar >
Scalar Eigen::AngleAxis< _Scalar >::angle ( ) const
inline
Возвращает
значение угла поворота в радианах

axis() [1/2]

template<typename _Scalar >
Vector3& Eigen::AngleAxis< _Scalar >::axis ( )
inline
Возвращает
ссылку на изменяемую часть сохранённой оси вращения.
Предупреждение
Ось вращения должна оставаться единичным вектором.

axis() [2/2]

template<typename _Scalar >
const Vector3& Eigen::AngleAxis< _Scalar >::axis ( ) const
inline
Возвращает
ось вращения

cast()

template<typename _Scalar >
template<typename NewScalarType >
internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type Eigen::AngleAxis< _Scalar >::cast ( ) const
inline
Возвращает
*this с типом скаляра, преобразованным в NewScalarType

Обратите внимание, что если NewScalarType равен текущему типу скаляра *this, то эта функция разумно возвращает ссылку на *this.

inverse()

template<typename _Scalar >
AngleAxis Eigen::AngleAxis< _Scalar >::inverse ( ) const
inline
Возвращает
обратное вращение, т.е. угол-ось с противоположным углом вращения

isApprox()

template<typename _Scalar >
bool Eigen::AngleAxis< _Scalar >::isApprox ( const AngleAxis< _Scalar > & other,
const typename NumTraits< Scalar >::Real & prec = NumTraits<Scalar>::dummy_precision()
) const
inline
Возвращает
true если *this приблизительно равно other, в пределах точности, определяемой prec.
См. также
MatrixBase::isApprox()

operator*() [1/2]

template<typename _Scalar >
QuaternionType Eigen::AngleAxis< _Scalar >::operator* ( const AngleAxis< _Scalar > & other ) const
inline

Объединяет два вращения

operator*() [2/2]

template<typename _Scalar >
QuaternionType Eigen::AngleAxis< _Scalar >::operator* ( const QuaternionType & other ) const
inline

Объединяет два вращения

operator=() [1/2]

template<typename _Scalar >
template<typename Derived >
AngleAxis<Scalar>& Eigen::AngleAxis< _Scalar >::operator= ( const MatrixBase< Derived > & mat )

Устанавливает *this из 3x3 матрицы вращения mat.

operator=() [2/2]

template<typename _Scalar >
template<typename QuatDerived >
AngleAxis<Scalar>& Eigen::AngleAxis< _Scalar >::operator= ( const QuaternionBase< QuatDerived > & q )

Устанавливает *this из единичного кватерниона.

Полученная ось нормализуется, и вычисленный угол находится в диапазоне [0,pi].

Эта функция неявно нормализует кватернион q.

toRotationMatrix()

template<typename Scalar >
AngleAxis< Scalar >::Matrix3 Eigen::AngleAxis< Scalar >::toRotationMatrix ( void ) const

Создаёт и

Возвращает
эквивалентную 3x3 матрицу вращения.

The documentation for this class was generated from the following file:
  • AngleAxis.h

© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1AngleAxis.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API