Spec-Zone.ru › Eigen3

Eigen::Quaternion

шаблон<typename _Scalar, int _Options>
класс Eigen::Quaternion< _Scalar, _Options >

Класс кватернионов, используемый для представления 3D ориентаций и вращений.

Определён в модуле Geometry.

#include <Eigen/Geometry> 
Шаблочные параметры
_Scalar тип скаляра, т.е. тип коэффициентов
_Options управляет выравниванием памяти коэффициентов. Может быть # AutoAlign или # DontAlign. По умолчанию AutoAlign.

Этот класс представляет кватернион \( w+xi+yj+zk \), который является удобным представлением ориентаций и вращений объектов в трёх измерениях. По сравнению с другими представлениями, такими как углы Эйлера или 3x3 матрицы, кватернионы обладают следующими преимуществами:

  • компактное хранение (4 скаляра)
  • эффективное композирование (28 операций с плавающей запятой),
  • стабильная сферическая интерполяция

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

  • Quaternionf для float
  • Quaterniond для double
Предупреждение
Операции, интерпретирующие кватернион как вращение, имеют неопределённое поведение, если кватернион не нормирован.
См. также
класс AngleAxis, класс Transform
Inheritance graph
template<typename Derived1 , typename Derived2 >
Quaternion< Scalar, Options > FromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
Quaternion ()
Quaternion (const AngleAxisType &aa)
template<typename Derived >
Quaternion (const MatrixBase< Derived > &other)
template<typename OtherScalar , int OtherOptions>
Quaternion (const Quaternion< OtherScalar, OtherOptions > &other)
template<class Derived >
Quaternion (const QuaternionBase< Derived > &other)
Quaternion (const Scalar &w, const Scalar &x, const Scalar &y, const Scalar &z)
Quaternion (const Scalar *data)
- Публичные члены-функции, унаследованные от Eigen::QuaternionBase< Quaternion< _Scalar, _Options > >
Vector3 _transformVector (const Vector3 &v) const
internal::traits< Quaternion< _Scalar, _Options > >::Scalar angularDistance (const QuaternionBase< OtherDerived > &other) const
internal::cast_return_type< Quaternion< _Scalar, _Options >, Quaternion< NewScalarType > >::type cast () const
internal::traits< Quaternion< _Scalar, _Options > >::Coefficients & coeffs ()
const internal::traits< Quaternion< _Scalar, _Options > >::Coefficients & coeffs () const
Quaternion< Scalar > conjugate () const
Scalar dot (const QuaternionBase< OtherDerived > &other) const
Quaternion< Scalar > inverse () const
bool isApprox (const QuaternionBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Scalar norm () const
void normalize ()
Quaternion< Scalar > normalized () const
bool operator!= (const QuaternionBase< OtherDerived > &other) const
Quaternion< typename internal::traits< Quaternion< _Scalar, _Options > >::Scalar > operator* (const QuaternionBase< OtherDerived > &other) const
Quaternion< _Scalar, _Options > & operator*= (const QuaternionBase< OtherDerived > &q)
Quaternion< _Scalar, _Options > & operator= (const AngleAxisType &aa)
Quaternion< _Scalar, _Options > & operator= (const MatrixBase< MatrixDerived > &xpr)
bool operator== (const QuaternionBase< OtherDerived > &other) const
Quaternion< _Scalar, _Options > & setFromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
QuaternionBase & setIdentity ()
Quaternion< typename internal::traits< Quaternion< _Scalar, _Options > >::Scalar > slerp (const Scalar &t, const QuaternionBase< OtherDerived > &other) const
Scalar squaredNorm () const
Matrix3 toRotationMatrix () const
VectorBlock< Coefficients, 3 > vec ()
const VectorBlock< const Coefficients, 3 > vec () const
NonConstCoeffReturnType w ()
CoeffReturnType w () const
NonConstCoeffReturnType x ()
CoeffReturnType x () const
NonConstCoeffReturnType y ()
CoeffReturnType y () const
NonConstCoeffReturnType z ()
CoeffReturnType z () const
- Публичные члены-функции, унаследованные от Eigen::RotationBase< Derived, _Dim >
Derived inverse () const
RotationMatrixType matrix () const
template<typename OtherDerived >
internal::rotation_base_generic_product_selector< Derived, OtherDerived, OtherDerived::IsVectorAtCompileTime >::ReturnType operator* (const EigenBase< OtherDerived > &e) const
template<int Mode, int Options>
Transform< Scalar, Dim, Mode > operator* (const Transform< Scalar, Dim, Mode, Options > &t) const
Transform< Scalar, Dim, Isometry > operator* (const Translation< Scalar, Dim > &t) const
RotationMatrixType operator* (const UniformScaling< Scalar > &s) const
RotationMatrixType toRotationMatrix () const
static Quaternion UnitRandom ()
- Статические публичные члены-функции, унаследованные от Eigen::QuaternionBase< Quaternion< _Scalar, _Options > >
static Quaternion< Scalar > Identity ()
- Публичные типы, унаследованные от Eigen::QuaternionBase< Quaternion< _Scalar, _Options > >
typedef AngleAxis< Scalar > AngleAxisType
typedef Matrix< Scalar, 3, 3 > Matrix3
typedef Matrix< Scalar, 3, 1 > Vector3
- Публичные типы, унаследованные от Eigen::RotationBase< Derived, _Dim >
typedef Matrix< Scalar, Dim, Dim > RotationMatrixType
typedef internal::traits< Derived >::Scalar Scalar

Quaternion() [1/7]

template<typename _Scalar , int _Options>
Eigen::Quaternion< _Scalar, _Options >::Quaternion ( )
inline

Конструктор по умолчанию, не инициализирующий кватернион.

Quaternion() [2/7]

template<typename _Scalar , int _Options>
Eigen::Quaternion< _Scalar, _Options >::Quaternion ( const Scalar & w,
const Scalar & x,
const Scalar & y,
const Scalar & z
)
inline

Создаёт и инициализирует кватернион \( w+xi+yj+zk \) по его четырём коэффициентам w, x, y и z.

Предупреждение
Обратите внимание на порядок аргументов: вещественный коэффициент w указывается первым, в то время как внутренне коэффициенты хранятся в следующем порядке: [x, y, z, w]

Quaternion() [3/7]

template<typename _Scalar , int _Options>
Eigen::Quaternion< _Scalar, _Options >::Quaternion ( const Scalar * data )
inlineexplicit

Создаёт и инициализирует кватернион из массива данных

Quaternion() [4/7]

template<typename _Scalar , int _Options>
template<class Derived >
Eigen::Quaternion< _Scalar, _Options >::Quaternion ( const QuaternionBase< Derived > & other )
inline

Копирующий конструктор

Quaternion() [5/7]

шаблон<typename _Scalar , int _Options>
Eigen::Quaternion< _Scalar, _Options >::Quaternion ( const AngleAxisType & aa )
inlineexplicit

Создаёт и инициализирует кватернион по заданному углу-оси aa

Quaternion() [6/7]

шаблон<typename _Scalar , int _Options>
шаблон<typename Derived >
Eigen::Quaternion< _Scalar, _Options >::Quaternion ( const MatrixBase< Derived > & other )
inlineexplicit

Создаёт и инициализирует кватернион из:

  • матрицы поворота;
  • 4D вектора, представляющего коэффициенты кватерниона.

Quaternion() [7/7]

шаблон<typename _Scalar , int _Options>
шаблон<typename OtherScalar , int OtherOptions>
Eigen::Quaternion< _Scalar, _Options >::Quaternion ( const Quaternion< OtherScalar, OtherOptions > & other )
inlineexplicit

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

FromTwoVectors()

шаблон<typename _Scalar , int _Options>
шаблон<typename Derived1 , typename Derived2 >
Quaternion<Scalar,Options> Eigen::Quaternion< _Scalar, _Options >::FromTwoVectors ( const MatrixBase< Derived1 > & a,
const MatrixBase< Derived2 > & b
)

Возвращает кватернион, представляющий поворот между двумя произвольными векторами a и b. Другими словами, построенный поворот отображает направление вектора a в направление вектора b, при этом оба вектора проходят через начало координат.

Возвращает
результирующий кватернион

Обратите внимание, что входящие векторы не обязательно должны быть нормированы, и не обязательно должны иметь одинаковую длину.

UnitRandom()

шаблон<typename Scalar , int Options>
Quaternion< Scalar, Options > Eigen::Quaternion< Scalar, Options >::UnitRandom
static
Возвращает
случайный единичный кватернион, следуя равномерному закону распределения на SO(3)
Примечание
Реализация основана на http://planning.cs.uiuc.edu/node198.html

Документация для этого класса была сгенерирована из следующего файла:
  • Quaternion.h

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

Spec-Zone.ru

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