8#ifndef META_OCEAN_MATH_EXPONENTIAL_MAP_H
9#define META_OCEAN_MATH_EXPONENTIAL_MAP_H
119 template <
typename U>
219 ocean_assert(
axis.isUnit());
234 ocean_assert(angleAxis.
isValid());
237 ocean_assert(
axis.isUnit());
247 ocean_assert(angleAxis.
isValid());
250 ocean_assert(
axis.isUnit());
258 value_(expontentialMap.axis())
310 ocean_assert(index <= 2u);
317 ocean_assert(index <= 2u);
This class implements an exponential map defining a rotation by three parameters.
Definition ExponentialMap.h:67
ExponentialMapT(const QuaternionT< T > &rotation)
Creates a rotation based on a quaternion.
Definition ExponentialMap.h:230
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.
Definition ExponentialMap.h:216
ExponentialMapT(const SquareMatrixT3< T > &rotation)
Creates a rotation based on a 3x3 rotation matrix.
Definition ExponentialMap.h:243
ExponentialMapT(const VectorT3< T > &rotation)
Creates a rotation based on a given 3D axis with axis length defining the rotation angle in radian.
Definition ExponentialMap.h:202
ExponentialMapT< T > operator+(const ExponentialMapT< T > &exponentialMap) const
Adds two exponential map objects.
Definition ExponentialMap.h:322
const VectorT3< Scalar > & axis() const
QuaternionT< T > quaternion() const
Returns this rotation object as quaternion object.
Definition ExponentialMap.h:276
VectorT3< Scalar > value_
Definition ExponentialMap.h:198
ExponentialMapT(const ExponentialMapT< U > &exponentialMap) noexcept
Copies an exponential map with different element data type than T.
Definition ExponentialMap.h:257
const T * data() const
Returns a pointer to the three rotation values of this object.
Definition ExponentialMap.h:302
ExponentialMapT(const RotationT< T > &rotation)
Creates an rotation based on a given angle-axis rotation.
Definition ExponentialMap.h:223
ExponentialMapT()=default
Creates a default rotation.
RotationT< Scalar > rotation() const
ExponentialMapT< T > operator-(const ExponentialMapT< T > &exponentialMap) const
Subtracts two exponential map objects.
Definition ExponentialMap.h:335
const T & operator[](const unsigned int index) const
Returns the individual rotation values of this map.
Definition ExponentialMap.h:308
ExponentialMapT< T > & operator-=(const ExponentialMapT< T > &exponentialMap)
Subtracts two exponential map objects.
Definition ExponentialMap.h:341
ExponentialMapT< T > & operator+=(const ExponentialMapT< T > &exponentialMap)
Adds two exponential map objects.
Definition ExponentialMap.h:328
T & operator[](const unsigned int index)
Returns the individual rotation values of this map.
Definition ExponentialMap.h:315
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.
Definition ExponentialMap.h:209
static constexpr bool isEqualEps(const T value)
Returns whether a value is smaller than or equal to a small epsilon.
Definition Numeric.h:2096
This class implements a unit quaternion rotation.
Definition Quaternion.h:100
This class implements a axis-angle rotation using floating point values.
Definition Rotation.h:73
VectorT3< T > axis() const
Returns the axis of the rotation.
Definition Rotation.h:643
T angle() const
Returns the angle of the rotation.
Definition Rotation.h:649
bool isValid() const
Returns whether this rotation has valid parameters.
Definition Rotation.h:547
This class implements a 3x3 square matrix.
Definition SquareMatrix3.h:89
This class implements a vector with three elements.
Definition Vector3.h:97
ExponentialMapT< Scalar > ExponentialMap
Definition of the ExponentialMap object, depending on the OCEAN_MATH_USE_SINGLE_PRECISION flag either...
Definition ExponentialMap.h:27
ExponentialMapT< double > ExponentialMapD
Instantiation of the ExponentialMapT template class using a double precision float data type.
Definition ExponentialMap.h:34
ExponentialMapT< float > ExponentialMapF
Instantiation of the ExponentialMapT template class using a single precision float data type.
Definition ExponentialMap.h:41
std::vector< ExponentialMap > ExponentialMaps
Definition of a vector holding ExponentialMap objects.
Definition ExponentialMap.h:56
std::vector< ExponentialMapT< T > > ExponentialMapsT
Definition of a typename alias for vectors with ExponentialMapT objects.
Definition ExponentialMap.h:49
The namespace covering the entire Ocean framework.
Definition Accessor.h:15