RobWorkProject  23.9.11-
Public Member Functions | Friends | Related Functions | List of all members
EAA< T > Class Template Reference

A class for representing an equivalent angle-axis rotation. More...

#include <EAA.hpp>

Inherits Rotation3DVector< double >.

Public Member Functions

 EAA (const rw::math::Rotation3D< T > &R)
 Extracts Equivalent axis-angle vector from Rotation matrix. More...
 
 EAA ()
 Constructs an EAA vector initialized to \(\{0,0,0\}\).
 
 EAA (const rw::math::Vector3D< T > &axis, T angle)
 Constructs an initialized EAA vector. More...
 
 EAA (T thetakx, T thetaky, T thetakz)
 Constructs an initialized EAA vector \( \thetak = \left[\begin{array}{c} \theta k_x\\ \theta k_y\\ \theta k_z \end{array}\right] \). More...
 
 EAA (const rw::math::Vector3D< T > &v1, const rw::math::Vector3D< T > &v2)
 Constructs an EAA vector that will rotate v1 into v2. Where v1 and v2 are normalized and described in the same reference frame. More...
 
 EAA (rw::math::Vector3D< T > eaa)
 Constructs an initialized EAA vector. More...
 
 EAA (const rw::math::EAA< T > &eaa)
 Copy Constructor. More...
 
template<class R >
 EAA (const Eigen::MatrixBase< R > &r)
 Constructs an initialized EAA vector from rotation matrix. More...
 
virtual ~EAA ()
 destructor
 
size_t size () const
 Get the size of the EAA. More...
 
virtual const rw::math::Rotation3D< T > toRotation3D () const
 Returns the corresponding \( 3\times 3 \) Rotation matrix. More...
 
angle () const
 Extracts the angle of rotation \( \theta \). More...
 
EAA< T > & setAngle (const T &angle)
 change the angle of the EAA More...
 
const rw::math::Vector3D< T > axis () const
 Extracts the axis of rotation vector \( \mathbf{\hat{\mathbf{k}}} \). More...
 
rw::math::Vector3D< T > & toVector3D ()
 get the underling Vector More...
 
rw::math::Vector3D< T > toVector3D () const
 get the underling Vector More...
 
Eigen::Matrix< T, 3, 1 > & e ()
 get as eigen vector More...
 
Eigen::Matrix< T, 3, 1 > e () const
 get as eigen vector More...
 
const T & operator[] (size_t i) const
 Returns element of EAA. More...
 
T & operator[] (size_t i)
 Returns element of EAA. More...
 
const T & operator() (size_t i) const
 Returns element of EAA. More...
 
T & operator() (size_t i)
 Returns element of EAA. More...
 
template<class R >
EAA< T > elemDivide (const Eigen::MatrixBase< R > &rhs) const
 element wise division. More...
 
template<class R >
EAA< T > elemMultiply (const Eigen::MatrixBase< R > &rhs) const
 Elementweise multiplication. More...
 
template<class R >
EAA< T > operator- (const Eigen::MatrixBase< R > &rhs) const
 Vector subtraction.
 
template<class R >
EAA< T > operator+ (const Eigen::MatrixBase< R > &rhs) const
 Vector addition.
 
EAA< T > operator- () const
 Unary minus. More...
 
EAA< T > elemAdd (const EAA< T > &rhs) const
 element wise addition More...
 
EAA< T > elemSubtract (const EAA< T > &rhs) const
 element wise subtraction More...
 
EAA< T > elemDivide (const EAA< T > &rhs) const
 element wise devision ( this / rhs ) More...
 
EAA< T > elemMultiply (const EAA< T > &rhs) const
 element wise multiplication More...
 
EAA< T > operator* (const EAA< T > &rhs) const
 This is rotation multiplcation, and it is multiplication of two EAA's first converted to a Rotation3D. More...
 
template<class R >
EAA< T > operator* (const rw::math::Rotation3D< R > &rhs)
 matrix multiplication converting EAA to rotation More...
 
EAA< T > elemMultiply (const T &rhs) const
 scalar multiplication More...
 
EAA< T > elemDivide (const T &rhs) const
 scalar devision More...
 
EAA< T > elemSubtract (const T rhs) const
 Scalar subtraction.
 
EAA< T > elemAdd (const T rhs) const
 Scalar addition.
 
EAA< T > scaleAngle (const T &scale)
 scale the angle, keeping the axis the same More...
 
EAA< T > operator+ (const rw::math::Vector3D< T > &rhs) const
 element wise multiplication. More...
 
EAA< T > operator- (const rw::math::Vector3D< T > &rhs) const
 Vector addition. More...
 
EAA< T > elemDivide (const rw::math::Vector3D< T > &rhs) const
 element wise devision ( this / rhs ) More...
 
EAA< T > elemMultiply (const rw::math::Vector3D< T > &rhs) const
 element wise multiplication More...
 
rw::math::Vector3D< T > cross (const rw::math::Vector3D< T > &v) const
 Calculates the cross product and returns the result. More...
 
EAA< T > cross (const EAA< T > &eaa) const
 Calculates the cross product and returns the result. More...
 
dot (const rw::math::Vector3D< T > &v)
 Calculates the dot product and returns the result. More...
 
dot (const EAA< T > &eaa)
 Calculates the cross product and returns the result. More...
 
norm2 () const
 Returns the Euclidean norm (2-norm) of the vector. More...
 
norm1 () const
 Returns the Manhatten norm (1-norm) of the vector. More...
 
normInf () const
 Returns the infinte norm ( \(\inf\)-norm) of the vector. More...
 
EAA< T > & operator= (const EAA< T > &rhs)
 copy operator More...
 
EAA< T > & operator= (const rw::math::Vector3D< T > &rhs)
 assign vector to EAA More...
 
EAA< T > & operator+= (const rw::math::Vector3D< T > &rhs)
 addition operator More...
 
EAA< T > & operator-= (const rw::math::Vector3D< T > &rhs)
 subtraction operator More...
 
 operator rw::math::Vector3D< T > () const
 Implicit converter to Vector3D.
 
 operator rw::math::Vector3D< T > & ()
 Implicit converter to Vector3D.
 
template<class R >
EAA< T > & operator= (const Eigen::MatrixBase< R > &r)
 copy a vector from eigen type More...
 
template<class R >
EAA< T > & operator+= (const Eigen::MatrixBase< R > &r)
 Vector addition.
 
template<class R >
EAA< T > & operator-= (const Eigen::MatrixBase< R > &r)
 Vector subtraction.
 
 operator Eigen::Matrix< T, 3, 1 > () const
 implicit conversion to EigenVector
 
 operator Eigen::Matrix< T, 3, 1 > & ()
 implicit conversion to EigenVector
 
EAA< T > & operator= (const rw::math::Rotation3D< T > &rhs)
 copy operator More...
 
bool operator== (const rw::math::Vector3D< T > &rhs) const
 Compare with rhs for equality. More...
 
bool operator!= (const rw::math::Vector3D< T > &rhs) const
 Compare with rhs for inequality. More...
 
bool operator== (const EAA< T > &rhs) const
 Compare with rhs for equality. More...
 
bool operator!= (const EAA< T > &rhs) const
 Compare with rhs for inequality. More...
 
template<class R >
bool operator== (const Eigen::MatrixBase< R > &rhs) const
 Compare with rhs for equality. More...
 
template<class R >
bool operator!= (const Eigen::MatrixBase< R > &rhs) const
 Compare with rhs for inequality. More...
 
- Public Member Functions inherited from Rotation3DVector< double >
virtual ~Rotation3DVector ()
 Virtual destructor.
 

Friends

template<class R >
EAA< T > operator- (const Eigen::MatrixBase< R > &lhs, const EAA< T > &rhs)
 Vector subtraction.
 
template<class R >
EAA< T > operator+ (const Eigen::MatrixBase< R > &lhs, const EAA< T > &rhs)
 Vector subtraction.
 
EAA< T > operator* (const rw::math::Rotation3D< T > &aRb, const EAA< T > &bTKc)
 Calculates \( \robabx{a}{c}{\thetak} = \robabx{a}{b}{\mathbf{R}} \robabx{b}{c}{\mathbf{\thetak}} \). More...
 
EAA< T > operator+ (const rw::math::Vector3D< T > &lhs, const EAA< T > &rhs)
 Vector addition. More...
 
EAA< T > operator- (const rw::math::Vector3D< T > &lhs, const EAA< T > &rhs)
 Vector addition. More...
 
std::ostream & operator<< (std::ostream &os, const EAA< T > &eaa)
 Ouputs EAA to stream. More...
 
bool operator== (const rw::math::Vector3D< T > &lhs, const EAA< T > &rhs)
 Compare with rhs for equality. More...
 
bool operator!= (const rw::math::Vector3D< T > &lhs, const EAA< T > &rhs)
 Compare with rhs for inequality. More...
 
template<class R >
bool operator== (const Eigen::MatrixBase< R > &lhs, const EAA< T > &rhs)
 Compare with rhs for equality. More...
 
template<class R >
bool operator!= (const Eigen::MatrixBase< R > &lhs, const EAA< T > &rhs)
 Compare with rhs for inequality. More...
 

Related Functions

(Note that these are not member functions.)

template<>
void write (const rw::math::EAA< double > &sobject, rw::common::OutputArchive &oarchive, const std::string &id)
 
template<>
void write (const rw::math::EAA< float > &sobject, rw::common::OutputArchive &oarchive, const std::string &id)
 
template<>
void read (rw::math::EAA< double > &sobject, rw::common::InputArchive &iarchive, const std::string &id)
 
template<>
void read (rw::math::EAA< float > &sobject, rw::common::InputArchive &iarchive, const std::string &id)
 

Additional Inherited Members

- Protected Member Functions inherited from Rotation3DVector< double >
 Rotation3DVector (const Rotation3DVector &)
 Copy Constructor. More...
 
 Rotation3DVector ()
 Default Constructor.
 
Rotation3DVectoroperator= (const Rotation3DVector &)
 Assignment operator is protected to force subclasses to implement it by themself.
 

Detailed Description

template<class T = double>
class rw::math::EAA< T >

A class for representing an equivalent angle-axis rotation.

This class defines an equivalent-axis-angle orientation vector also known as an \( \thetak \) vector or "axis+angle" vector

The equivalent-axis-angle vector is the product of a unit vector \( \hat{\mathbf{k}} \) and an angle of rotation around that axis \( \theta \)

Note
given two EAA vectors \( \theta_1\mathbf{\hat{k}}_1 \) and \( \theta_2\mathbf{\hat{k}}_2 \) it is generally not possible to subtract or add these vectors, except for the special case when \( \mathbf{\hat{k}}_1 == \mathbf{\hat{k}}_2 \) this is why this class does not have any subtraction or addition operators

Constructor & Destructor Documentation

◆ EAA() [1/7]

EAA ( const rw::math::Rotation3D< T > &  R)
explicit

Extracts Equivalent axis-angle vector from Rotation matrix.

Parameters
R[in] A 3x3 rotation matrix \( \mathbf{R} \)

\( \theta = arccos(\frac{1}{2}(Trace(\mathbf{R})-1)=arccos(\frac{r_{11}+r_{22}+r_{33}-1}{2}) \)

\( \thetak=log(\mathbf{R})=\frac{\theta}{2 sin \theta}(\mathbf{R}-\mathbf{R}^T) = \frac{\theta}{2 sin \theta} \left[ \begin{array}{c} r_{32}-r_{23}\\ r_{13}-r_{31}\\ r_{21}-r_{12} \end{array} \right] \)

\( \thetak= \left[ \begin{array}{c} 0\\ 0\\ 0 \end{array} \right] \) if \( \theta = 0 \)

\( \thetak=\pi \left[ \begin{array}{c} \sqrt{(R(0,0)+1.0)/2.0}\\ \sqrt{(R(1,1)+1.0)/2.0}\\ \sqrt{(R(2,2)+1.0)/2.0} \end{array} \right] \) if \( \theta = \pi \)

◆ EAA() [2/7]

EAA ( const rw::math::Vector3D< T > &  axis,
angle 
)
inline

Constructs an initialized EAA vector.

Parameters
axis[in] \( \mathbf{\hat{k}} \)
angle[in] \( \theta \)
Precondition
norm_2(axis) = 1

◆ EAA() [3/7]

EAA ( thetakx,
thetaky,
thetakz 
)
inline

Constructs an initialized EAA vector \( \thetak = \left[\begin{array}{c} \theta k_x\\ \theta k_y\\ \theta k_z \end{array}\right] \).

Parameters
thetakx[in] \( \theta k_x \)
thetaky[in] \( \theta k_y \)
thetakz[in] \( \theta k_z \)

◆ EAA() [4/7]

EAA ( const rw::math::Vector3D< T > &  v1,
const rw::math::Vector3D< T > &  v2 
)

Constructs an EAA vector that will rotate v1 into v2. Where v1 and v2 are normalized and described in the same reference frame.

Parameters
v1[in] normalized vector
v2[in] normalized vector

◆ EAA() [5/7]

EAA ( rw::math::Vector3D< T >  eaa)
inlineexplicit

Constructs an initialized EAA vector.

The angle of the EAA are \(\|eaa\|\) and the axis is \(\frac{eaa}{\|eaa\|}\)

Parameters
eaa[in] Values to initialize the EAA

◆ EAA() [6/7]

EAA ( const rw::math::EAA< T > &  eaa)
inline

Copy Constructor.

Parameters
eaa[in] Values to initialize the EAA

◆ EAA() [7/7]

EAA ( const Eigen::MatrixBase< R > &  r)
inlineexplicit

Constructs an initialized EAA vector from rotation matrix.

The angle of the EAA are \(\|eaa\|\) and the axis is \(\frac{eaa}{\|eaa\|}\)

Parameters
r[in] the rotation matrix to initialize EAA from.

Member Function Documentation

◆ angle()

T angle ( ) const
inline

Extracts the angle of rotation \( \theta \).

Returns
\( \theta \)

◆ axis()

const rw::math::Vector3D<T> axis ( ) const
inline

Extracts the axis of rotation vector \( \mathbf{\hat{\mathbf{k}}} \).

Returns
\( \mathbf{\hat{\mathbf{k}}} \)

◆ cross() [1/2]

EAA<T> cross ( const EAA< T > &  eaa) const
inline

Calculates the cross product and returns the result.

Parameters
eaa[in] a EAA
Returns
the resulting 3D vector

◆ cross() [2/2]

rw::math::Vector3D<T> cross ( const rw::math::Vector3D< T > &  v) const
inline

Calculates the cross product and returns the result.

Parameters
v[in] a Vector3D
Returns
the resulting 3D vector

◆ dot() [1/2]

T dot ( const EAA< T > &  eaa)
inline

Calculates the cross product and returns the result.

Parameters
eaa[in] a EAA
Returns
the resulting 3D vector

◆ dot() [2/2]

T dot ( const rw::math::Vector3D< T > &  v)
inline

Calculates the dot product and returns the result.

Parameters
v[in] a Vector3D
Returns
the resulting scalar

◆ e() [1/2]

Eigen::Matrix<T, 3, 1>& e ( )
inline

get as eigen vector

Returns
Eigenvector

◆ e() [2/2]

Eigen::Matrix<T, 3, 1> e ( ) const
inline

get as eigen vector

Returns
Eigenvector

◆ elemAdd()

EAA<T> elemAdd ( const EAA< T > &  rhs) const
inline

element wise addition

Parameters
rhs[in] the EAA to be added
Returns
the sum of the two EAA's

◆ elemDivide() [1/4]

EAA<T> elemDivide ( const EAA< T > &  rhs) const
inline

element wise devision ( this / rhs )

Parameters
rhs[in] the EAA to be devided with
Returns
the result of division

◆ elemDivide() [2/4]

EAA<T> elemDivide ( const Eigen::MatrixBase< R > &  rhs) const
inline

element wise division.

Parameters
rhs[in] the vector being devided with
Returns
the resulting Vector3D

◆ elemDivide() [3/4]

EAA<T> elemDivide ( const rw::math::Vector3D< T > &  rhs) const
inline

element wise devision ( this / rhs )

Parameters
rhs[in] the Vector to be devided with
Returns
the result of division

◆ elemDivide() [4/4]

EAA<T> elemDivide ( const T &  rhs) const
inline

scalar devision

Parameters
rhs[in] the scalar to devide with
Returns
the resulting EAA

◆ elemMultiply() [1/4]

EAA<T> elemMultiply ( const EAA< T > &  rhs) const
inline

element wise multiplication

Parameters
rhs[in] the EAA to be multiplyed with
Returns
the result of division

◆ elemMultiply() [2/4]

EAA<T> elemMultiply ( const Eigen::MatrixBase< R > &  rhs) const
inline

Elementweise multiplication.

Parameters
rhs[in] vector
Returns
the element wise product

◆ elemMultiply() [3/4]

EAA<T> elemMultiply ( const rw::math::Vector3D< T > &  rhs) const
inline

element wise multiplication

Parameters
rhs[in] the Vector to be multiplyed with
Returns
the result of division

◆ elemMultiply() [4/4]

EAA<T> elemMultiply ( const T &  rhs) const
inline

scalar multiplication

Parameters
rhs[in] the scalar to multiply with
Returns
the product

◆ elemSubtract()

EAA<T> elemSubtract ( const EAA< T > &  rhs) const
inline

element wise subtraction

Parameters
rhs[in] the EAA to be subtracted
Returns
the difference between the two EAA's

◆ norm1()

T norm1 ( ) const
inline

Returns the Manhatten norm (1-norm) of the vector.

Returns
the norm

◆ norm2()

T norm2 ( ) const
inline

Returns the Euclidean norm (2-norm) of the vector.

Returns
the norm

◆ normInf()

T normInf ( ) const
inline

Returns the infinte norm ( \(\inf\)-norm) of the vector.

Returns
the norm

◆ operator!=() [1/3]

bool operator!= ( const EAA< T > &  rhs) const
inline

Compare with rhs for inequality.

Parameters
rhs[in] other vector.
Returns
True if a and b are different, false otherwise.

◆ operator!=() [2/3]

bool operator!= ( const Eigen::MatrixBase< R > &  rhs) const
inline

Compare with rhs for inequality.

Parameters
rhs[in] other vector.
Returns
True if a and b are different, false otherwise.

◆ operator!=() [3/3]

bool operator!= ( const rw::math::Vector3D< T > &  rhs) const
inline

Compare with rhs for inequality.

Parameters
rhs[in] other vector.
Returns
True if a and b are different, false otherwise.

◆ operator()() [1/2]

T& operator() ( size_t  i)
inline

Returns element of EAA.

Parameters
i[in] index ( \( 0 < i < 3 \))
Returns
the \( i \)'th element

◆ operator()() [2/2]

const T& operator() ( size_t  i) const
inline

Returns element of EAA.

Parameters
i[in] index ( \( 0 < i < 3 \))
Returns
the \( i \)'th element

◆ operator*() [1/2]

EAA<T> operator* ( const EAA< T > &  rhs) const
inline

This is rotation multiplcation, and it is multiplication of two EAA's first converted to a Rotation3D.

Parameters
rhs[in] the eaa to multiply with
Returns
the new rotation

◆ operator*() [2/2]

EAA<T> operator* ( const rw::math::Rotation3D< R > &  rhs)
inline

matrix multiplication converting EAA to rotation

Parameters
rhs[in] the roation matrix to multiply with
Returns
EAA ( this->toRotation3D() * rhs)

◆ operator+()

EAA<T> operator+ ( const rw::math::Vector3D< T > &  rhs) const
inline

element wise multiplication.

Parameters
rhs[in] the vector being devided with
Returns
the resulting EAA

◆ operator+=()

EAA<T>& operator+= ( const rw::math::Vector3D< T > &  rhs)
inline

addition operator

Parameters
rhs[in] the right hand side of the operation
Returns
reference to this EAA

◆ operator-() [1/2]

EAA<T> operator- ( ) const
inline

Unary minus.

negative version

◆ operator-() [2/2]

EAA<T> operator- ( const rw::math::Vector3D< T > &  rhs) const
inline

Vector addition.

Parameters
rhs[in] the vector being added
Returns
the resulting EAA

◆ operator-=()

EAA<T>& operator-= ( const rw::math::Vector3D< T > &  rhs)
inline

subtraction operator

Parameters
rhs[in] the right hand side of the operation
Returns
reference to this EAA

◆ operator=() [1/4]

EAA<T>& operator= ( const EAA< T > &  rhs)
inline

copy operator

Parameters
rhs[in] the EAA to be copied
Returns
reference to this EAA

◆ operator=() [2/4]

EAA<T>& operator= ( const Eigen::MatrixBase< R > &  r)
inline

copy a vector from eigen type

Parameters
r[in] an Eigen Vector

◆ operator=() [3/4]

EAA<T>& operator= ( const rw::math::Rotation3D< T > &  rhs)
inline

copy operator

Parameters
rhs[in] the Rotation3D to be copied
Returns
reference to this EAA

◆ operator=() [4/4]

EAA<T>& operator= ( const rw::math::Vector3D< T > &  rhs)
inline

assign vector to EAA

Parameters
rhs[in] the vector to asign
Returns
reference to this EAA

◆ operator==() [1/3]

bool operator== ( const EAA< T > &  rhs) const
inline

Compare with rhs for equality.

Parameters
rhs[in] other vector.
Returns
True if a equals b, false otherwise.

◆ operator==() [2/3]

bool operator== ( const Eigen::MatrixBase< R > &  rhs) const
inline

Compare with rhs for equality.

Parameters
rhs[in] other vector.
Returns
True if a equals b, false otherwise.

◆ operator==() [3/3]

bool operator== ( const rw::math::Vector3D< T > &  rhs) const
inline

Compare with rhs for equality.

Parameters
rhs[in] other vector.
Returns
True if a equals b, false otherwise.

◆ operator[]() [1/2]

T& operator[] ( size_t  i)
inline

Returns element of EAA.

Parameters
i[in] index ( \( 0 < i < 3 \))
Returns
the \( i \)'th element

◆ operator[]() [2/2]

const T& operator[] ( size_t  i) const
inline

Returns element of EAA.

Parameters
i[in] index ( \( 0 < i < 3 \))
Returns
the \( i \)'th element

◆ scaleAngle()

EAA<T> scaleAngle ( const T &  scale)
inline

scale the angle, keeping the axis the same

Parameters
scale[in] how much the angle should change
Returns
a new EAA with the scaled angle

◆ setAngle()

EAA<T>& setAngle ( const T &  angle)
inline

change the angle of the EAA

Parameters
angle[in] the new angle
Returns
this object

◆ size()

size_t size ( ) const
inline

Get the size of the EAA.

Returns
the size (always 3).

◆ toRotation3D()

virtual const rw::math::Rotation3D<T> toRotation3D ( ) const
virtual

Returns the corresponding \( 3\times 3 \) Rotation matrix.

Returns
The rotation matrix

\( \mathbf{R} = e^{[\mathbf{\hat{k}}],\theta}=\mathbf{I}^{3x3}+[\mathbf{\hat{k}}] sin\theta+[{\mathbf{\hat{k}}}]^2(1-cos\theta) = \left[ \begin{array}{ccc} k_xk_xv\theta + c\theta & k_xk_yv\theta - k_zs\theta & k_xk_zv\theta + k_ys\theta \\ k_xk_yv\theta + k_zs\theta & k_yk_yv\theta + c\theta & k_yk_zv\theta - k_xs\theta\\ k_xk_zv\theta - k_ys\theta & k_yk_zv\theta + k_xs\theta & k_zk_zv\theta + c\theta \end{array} \right] \)

where:

  • \( c\theta = cos \theta \)
  • \( s\theta = sin \theta \)
  • \( v\theta = 1-cos \theta \)

Implements Rotation3DVector< double >.

◆ toVector3D() [1/2]

rw::math::Vector3D<T>& toVector3D ( )
inline

get the underling Vector

Returns
the vector

◆ toVector3D() [2/2]

rw::math::Vector3D<T> toVector3D ( ) const
inline

get the underling Vector

Returns
the vector

Friends And Related Function Documentation

◆ operator!= [1/2]

bool operator!= ( const Eigen::MatrixBase< R > &  lhs,
const EAA< T > &  rhs 
)
friend

Compare with rhs for inequality.

Parameters
lhs[in] first vector.
rhs[in] other vector.
Returns
True if a and b are different, false otherwise.

◆ operator!= [2/2]

bool operator!= ( const rw::math::Vector3D< T > &  lhs,
const EAA< T > &  rhs 
)
friend

Compare with rhs for inequality.

Parameters
lhs[in] first Vector
rhs[in] second vector.
Returns
True if a and b are different, false otherwise.

◆ operator*

EAA<T> operator* ( const rw::math::Rotation3D< T > &  aRb,
const EAA< T > &  bTKc 
)
friend

Calculates \( \robabx{a}{c}{\thetak} = \robabx{a}{b}{\mathbf{R}} \robabx{b}{c}{\mathbf{\thetak}} \).

Parameters
aRb[in] \( \robabx{a}{b}{\mathbf{R}} \)
bTKc[in] \( \robabx{b}{c}{\thetak} \)
Returns
\( \robabx{a}{c}{\thetak} \)

◆ operator+

EAA<T> operator+ ( const rw::math::Vector3D< T > &  lhs,
const EAA< T > &  rhs 
)
friend

Vector addition.

Parameters
lhs[in] left side value
rhs[in] right side value
Returns
the resulting EAA

◆ operator-

EAA<T> operator- ( const rw::math::Vector3D< T > &  lhs,
const EAA< T > &  rhs 
)
friend

Vector addition.

Parameters
lhs[in] left side value
rhs[in] right side value
Returns
the resulting EAA

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const EAA< T > &  eaa 
)
friend

Ouputs EAA to stream.

Parameters
os[in/out] stream to use
eaa[in] equivalent axis-angle
Returns
the resulting stream

◆ operator== [1/2]

bool operator== ( const Eigen::MatrixBase< R > &  lhs,
const EAA< T > &  rhs 
)
friend

Compare with rhs for equality.

Parameters
lhs[in] first vector.
rhs[in] other vector.
Returns
True if a equals b, false otherwise.

◆ operator== [2/2]

bool operator== ( const rw::math::Vector3D< T > &  lhs,
const EAA< T > &  rhs 
)
friend

Compare with rhs for equality.

Parameters
lhs[in] first Vector
rhs[in] second vector.
Returns
True if a equals b, false otherwise.

◆ read() [1/2]

void read ( rw::math::EAA< double > &  sobject,
rw::common::InputArchive iarchive,
const std::string &  id 
)
related

Enable read-serialization of class T by overloading this method. Data is read from iarchive and filled into sobject.

Parameters
sobject[out] the object in which the data should be streamed into
iarchive[in] the InputArchive from which to read data.
id[in] The id of the serialized sobject.
Note
the id can be empty in which case the overloaded method should provide a default identifier. E.g. the Vector3D class defined "Vector3D" as its default id.

◆ read() [2/2]

void read ( rw::math::EAA< float > &  sobject,
rw::common::InputArchive iarchive,
const std::string &  id 
)
related

Enable read-serialization of class T by overloading this method. Data is read from iarchive and filled into sobject.

Parameters
sobject[out] the object in which the data should be streamed into
iarchive[in] the InputArchive from which to read data.
id[in] The id of the serialized sobject.
Note
the id can be empty in which case the overloaded method should provide a default identifier. E.g. the Vector3D class defined "Vector3D" as its default id.

◆ write() [1/2]

void write ( const rw::math::EAA< double > &  sobject,
rw::common::OutputArchive oarchive,
const std::string &  id 
)
related

Enable write-serialization of class T by overloading this method. Data is written to oarchive from the sobject.

Parameters
sobject[in] the object from which the data should be streamed.
oarchive[out] the OutputArchive in which data should be written.
id[in] The id of the serialized sobject.
Note
the id can be empty in which case the overloaded method should provide a default identifier. E.g. the Vector3D class defined "Vector3D" as its default id.

◆ write() [2/2]

void write ( const rw::math::EAA< float > &  sobject,
rw::common::OutputArchive oarchive,
const std::string &  id 
)
related

Enable write-serialization of class T by overloading this method. Data is written to oarchive from the sobject.

Parameters
sobject[in] the object from which the data should be streamed.
oarchive[out] the OutputArchive in which data should be written.
id[in] The id of the serialized sobject.
Note
the id can be empty in which case the overloaded method should provide a default identifier. E.g. the Vector3D class defined "Vector3D" as its default id.

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