Ocean
|
This class implements an exponential map defining a rotation by three parameters. More...
Public Member Functions | |
ExponentialMapT ()=default | |
Creates a default rotation. More... | |
ExponentialMapT (const VectorT3< T > &rotation) | |
Creates a rotation based on a given 3D axis with axis length defining the rotation angle in radian. More... | |
ExponentialMapT (const T wx, const T wy, const T wz) | |
Creates a rotation based on a given 3D axis with axis length defining the rotation angle in radian. More... | |
ExponentialMapT (const VectorT3< T > &axis, const T angle) | |
Creates a rotation based on a given 3D axis with length 1 and a given rotation angle. More... | |
ExponentialMapT (const RotationT< T > &rotation) | |
Creates an rotation based on a given angle-axis rotation. More... | |
ExponentialMapT (const QuaternionT< T > &rotation) | |
Creates a rotation based on a quaternion. More... | |
ExponentialMapT (const SquareMatrixT3< T > &rotation) | |
Creates a rotation based on a 3x3 rotation matrix. More... | |
template<typename U > | |
ExponentialMapT (const ExponentialMapT< U > &exponentialMap) noexcept | |
Copies an exponential map with different element data type than T. More... | |
const VectorT3< T > & | axis () const |
Returns the (non-normalized) axis of this rotation object. More... | |
T | angle () const |
Returns the angle of this rotation object. More... | |
QuaternionT< T > | quaternion () const |
Returns this rotation object as quaternion object. More... | |
RotationT< T > | rotation () const |
Returns this rotation object as angle-axis object. More... | |
const T * | data () const |
Returns a pointer to the three rotation values of this object. More... | |
const T & | operator[] (const unsigned int index) const |
Returns the individual rotation values of this map. More... | |
T & | operator[] (const unsigned int index) |
Returns the individual rotation values of this map. More... | |
ExponentialMapT< T > | operator+ (const ExponentialMapT< T > &exponentialMap) const |
Adds two exponential map objects. More... | |
ExponentialMapT< T > & | operator+= (const ExponentialMapT< T > &exponentialMap) |
Adds two exponential map objects. More... | |
ExponentialMapT< T > | operator- (const ExponentialMapT< T > &exponentialMap) const |
Subtracts two exponential map objects. More... | |
ExponentialMapT< T > & | operator-= (const ExponentialMapT< T > &exponentialMap) |
Subtracts two exponential map objects. More... | |
Private Attributes | |
VectorT3< T > | value_ = VectorT3<T>(0, 0, 0) |
Axis defining the rotation normal while the length defines the rotation angle. More... | |
This class implements an exponential map defining a rotation by three parameters.
The three parameter define the rotation axis, while the length of the axis vector defines the rotation angle in radian.
T | Floating point data type to be used |
|
default |
Creates a default rotation.
|
inlineexplicit |
Creates a rotation based on a given 3D axis with axis length defining the rotation angle in radian.
rotation | 3D vector defining the rotation |
|
inline |
Creates a rotation based on a given 3D axis with axis length defining the rotation angle in radian.
wx | X component of the rotation axis |
wy | Y component of the rotation axis |
wz | Z component of the rotation axis |
|
inline |
Creates a rotation based on a given 3D axis with length 1 and a given rotation angle.
axis | Normalized rotation axis |
angle | The angle of the rotation, in radian |
|
inlineexplicit |
Creates an rotation based on a given angle-axis rotation.
rotation | the rotation to be used, must be valid |
|
explicit |
Creates a rotation based on a quaternion.
rotation | The rotation to be used, must be valid |
|
explicit |
Creates a rotation based on a 3x3 rotation matrix.
rotation | The rotation matrix to be used, must be valid |
|
inlineexplicitnoexcept |
Copies an exponential map with different element data type than T.
exponentialMap | The exponential map to copy |
U | The element data type of the exponential map |
|
inline |
Returns the angle of this rotation object.
|
inline |
Returns the (non-normalized) axis of this rotation object.
Beware: This axis has a length equal to the rotation angle in radian.
|
inline |
Returns a pointer to the three rotation values of this object.
|
inline |
Adds two exponential map objects.
exponentialMap | Exponential map to be (component wise) added |
|
inline |
Adds two exponential map objects.
exponentialMap | Exponential map to be (component wise) added |
|
inline |
Subtracts two exponential map objects.
exponentialMap | Exponential map to be (component wise) subtracted |
|
inline |
Subtracts two exponential map objects.
exponentialMap | Exponential map to be (component wise) subtracted |
|
inline |
Returns the individual rotation values of this map.
index | The index of the value to return, with range [0, 2] |
|
inline |
Returns the individual rotation values of this map.
index | The index of the value to return, with range [0, 2] |
|
inline |
Returns this rotation object as quaternion object.
|
inline |
Returns this rotation object as angle-axis object.
|
private |
Axis defining the rotation normal while the length defines the rotation angle.