Class Rotation
Defined in File rotation.hpp
Class Documentation
-
class Rotation
A class representing a planar rotation.
The rotation angle is always within the range [-PI, PI]. This class mimics the tf2::Matrix3x3/tf2::Quaternion classes to the extent possible.
Public Functions
-
inline Rotation()
No initialization constructor.
-
inline explicit Rotation(const tf2Scalar angle)
Constructor from scalars.
- Parameters:
angle – The rotation angle in radians
-
inline Rotation &operator+=(const Rotation &rhs)
Add a rotation to this one.
- Parameters:
rhs – The rotation to add to this one
-
inline Rotation &operator-=(const Rotation &rhs)
Subtract a rotation from this one.
- Parameters:
rhs – The rotation to subtract
-
inline Rotation &operator*=(const tf2Scalar rhs)
Scale the rotation.
- Parameters:
rhs – Scale factor
-
inline Rotation &operator/=(const tf2Scalar rhs)
Inversely scale the rotation.
- Parameters:
rhs – Scale factor to divide by
-
inline tf2Scalar distance2(const Rotation &other) const
Return the distance squared between this and another rotation.
-
inline tf2Scalar distance(const Rotation &other) const
Return the distance between this and another rotation.
-
inline Vector2 rotate(const Vector2 &vec) const
Rotate a vector by this rotation.
- Parameters:
vec – The vector to rotate
-
inline Vector2 unrotate(const Vector2 &vec) const
Rotate a vector by the inverse of this rotation.
- Parameters:
vec – The vector to rotate
-
inline Rotation lerp(const Rotation &other, const tf2Scalar ratio) const
Return the linear interpolation between this and another rotation.
The interpolation always uses the shortest path between this and other
- Parameters:
other – The other rotation
ratio – The ratio of this to other (ratio=0 => return this, ratio=1 => return other)
-
inline const tf2Scalar &getAngle() const
Return the angle value in radians.
-
inline const tf2Scalar &angle() const
-
inline void setAngle(const tf2Scalar angle)
Set the angle value in radians.
-
inline void setMax(const Rotation &other)
Set the angle to the max of this and another rotation.
- Parameters:
other – The other Rotation to compare with
-
inline void setMin(const Rotation &other)
Set the angle to the min of this and another rotation.
- Parameters:
other – The other Rotation to compare with
-
inline void setValue(const tf2Scalar angle)
Set the rotation to the provided angle in radians.
- Parameters:
angle – The angle value in radians
-
inline void setZero()
Set the rotation to zero
-
inline bool isZero() const
Check if all the elements of this vector are zero
-
inline bool fuzzyZero() const
Check if all the elements of this vector close to zero
-
inline Eigen::Matrix2d getRotationMatrix() const
Get a 2x2 rotation matrix.
-
inline Eigen::Matrix3d getHomogeneousMatrix() const
Get a 3x3 homogeneous transformation matrix with just the rotation portion populated.
-
inline Rotation()