Template Struct SO2Base

Inheritance Relationships

Base Type

Struct Documentation

template<typename _Derived>
struct SO2Base : public manif::LieGroupBase<_Derived>

The base class of the SO2 group.

Note

See Appendix A of the paper.

Public Types

using Rotation = typename internal::traits<_Derived>::Rotation
using Transformation = typename internal::traits<_Derived>::Transformation

Public Functions

template<typename _EigenDerived>
Eigen::Matrix<typename SO2Base<_Derived>::Scalar, 2, 1> act(const Eigen::MatrixBase<_EigenDerived> &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 2, 1>>> J_vout_m, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 2, 2>>> J_vout_v) const
DataType &coeffs()

Access the underlying data by const reference.

const DataType &coeffs() const

Access the underlying data by const reference.

Protected Functions

MANIF_DEFAULT_CONSTRUCTOR(SO2Base) public Tangent log (OptJacobianRef J_t_m={}) const

Get the inverse of this.

Get the SO2 corresponding Lie algebra element in vector form.

See also

SO2Tangent.

Note

z^-1 = z*

Note

See Eqs. (118,124).

Note

This is the log() map in vector form.

Note

See Eq. (115) & Eqs. (79,126).

Parameters:
  • -optional-[out] J_minv_m Jacobian of the inverse wrt this.

  • -optional-[out] J_t_m Jacobian of the tangent wrt to this.

Returns:

The SO2 tangent of this.

MANIF_DEPRECATED Tangent lift (OptJacobianRef J_t_m={}) const

This function is deprecated. Please considere using log instead.

template<typename _DerivedOther>
LieGroup compose(const LieGroupBase<_DerivedOther> &m, OptJacobianRef J_mc_ma = {}, OptJacobianRef J_mc_mb = {}) const

Composition of this and another SO2 element.

Note

z_c = z_a z_b.

Note

See Eq. (125).

Parameters:
  • m[in] Another SO2 element.

  • -optional-[out] J_mc_ma Jacobian of the composition wrt this.

  • -optional-[out] J_mc_mb Jacobian of the composition wrt m.

Returns:

The composition of ‘this . m’.

template<typename _EigenDerived>
Eigen::Matrix<Scalar, 2, 1> act(const Eigen::MatrixBase<_EigenDerived> &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 2, 1>>> J_vout_m = {}, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 2, 2>>> J_vout_v = {}) const

Rotation action on a 2-vector.

Note

See Eqs. (129, 130).

Parameters:
  • v – A 2-vector.

  • -optional-[out] J_vout_m The Jacobian of the new object wrt this.

  • -optional-[out] J_vout_v The Jacobian of the new object wrt input object.

Returns:

The rotated 2-vector.

Jacobian adj() const

Get the ajoint matrix of SO2 at this.

Note

See Eqs. (123).

Transformation transform() const

Get the transformation matrix (2D isometry).

Note

T = | R 0 | | 0 1 |

Rotation rotation() const

Get the rotation matrix R.

Scalar real() const

Get the real part of the underlying complex number.

Scalar imag() const

Get the imaginary part of the underlying complex number.

Scalar angle() const

Get the angle (rad.).

void normalize()

Normalize the underlying complex number.

inline _Derived &derived() & noexcept
inline const _Derived &derived() const & noexcept