Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Friends | List of all members
Eigen::Map< Sophus::RxSO2< Scalar_ >, Options > Class Template Reference

#include <rxso2.hpp>

Inheritance diagram for Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >:
Inheritance graph
[legend]

Public Types

using Adjoint = typename Base::Adjoint
 
using HomogeneousPoint = typename Base::HomogeneousPoint
 
using Point = typename Base::Point
 
using Scalar = Scalar_
 
using Tangent = typename Base::Tangent
 
using Transformation = typename Base::Transformation
 
- Public Types inherited from Sophus::RxSO2Base< Derived >
using Adjoint = Matrix< Scalar, DoF, DoF >
 
using ComplexType = typename Eigen::internal::traits< Derived >::ComplexType
 
using HomogeneousPoint = Vector3< Scalar >
 
template<typename HPointDerived >
using HomogeneousPointProduct = Vector3< ReturnScalar< HPointDerived > >
 
using Line = ParametrizedLine2< Scalar >
 
using Point = Vector2< Scalar >
 
template<typename PointDerived >
using PointProduct = Vector2< ReturnScalar< PointDerived > >
 
template<typename OtherDerived >
using ReturnScalar = typename Eigen::ScalarBinaryOpTraits< Scalar, typename OtherDerived::Scalar >::ReturnType
 
template<typename OtherDerived >
using RxSO2Product = RxSO2< ReturnScalar< OtherDerived > >
 
using Scalar = typename Eigen::internal::traits< Derived >::Scalar
 
using Tangent = Vector< Scalar, DoF >
 
using Transformation = Matrix< Scalar, N, N >
 

Public Member Functions

SOPHUS_FUNC Map< Sophus::Vector2< Scalar >, Options > const & complex () const
 
 EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR (Map)
 
SOPHUS_FUNC Map (Scalar *coeffs)
 
template<typename HPointDerived , typename = typename std::enable_if< IsFixedSizeVector<HPointDerived, 3>::value>::type>
SOPHUS_FUNC HomogeneousPointProduct< HPointDerived > operator* (Eigen::MatrixBase< HPointDerived > const &p) const
 
template<typename PointDerived , typename = typename std::enable_if< IsFixedSizeVector<PointDerived, 2>::value>::type>
SOPHUS_FUNC PointProduct< PointDerived > operator* (Eigen::MatrixBase< PointDerived > const &p) const
 
SOPHUS_FUNC Line operator* (Line const &l) const
 
template<typename OtherDerived >
SOPHUS_FUNC RxSO2Product< OtherDerived > operator* (RxSO2Base< OtherDerived > const &other) const
 
template<typename OtherDerived , typename = typename std::enable_if< std::is_same<Scalar, ReturnScalar<OtherDerived>>::value>::type>
SOPHUS_FUNC RxSO2Base< Derived > & operator*= (RxSO2Base< OtherDerived > const &other)
 
- Public Member Functions inherited from Sophus::RxSO2Base< Derived >
SOPHUS_FUNC Adjoint Adj () const
 
SOPHUS_FUNC Scalar angle () const
 
template<class NewScalarType >
SOPHUS_FUNC RxSO2< NewScalarType > cast () const
 
SOPHUS_FUNC ComplexType const & complex () const
 
SOPHUS_FUNC Scalardata ()
 
SOPHUS_FUNC Scalar const * data () const
 
SOPHUS_FUNC RxSO2< Scalarinverse () const
 
SOPHUS_FUNC Tangent log () const
 
SOPHUS_FUNC Transformation matrix () const
 
template<typename HPointDerived , typename = typename std::enable_if< IsFixedSizeVector<HPointDerived, 3>::value>::type>
SOPHUS_FUNC HomogeneousPointProduct< HPointDerived > operator* (Eigen::MatrixBase< HPointDerived > const &p) const
 
template<typename PointDerived , typename = typename std::enable_if< IsFixedSizeVector<PointDerived, 2>::value>::type>
SOPHUS_FUNC PointProduct< PointDerived > operator* (Eigen::MatrixBase< PointDerived > const &p) const
 
SOPHUS_FUNC Line operator* (Line const &l) const
 
template<typename OtherDerived >
SOPHUS_FUNC RxSO2Product< OtherDerived > operator* (RxSO2Base< OtherDerived > const &other) const
 
template<typename OtherDerived , typename = typename std::enable_if< std::is_same<Scalar, ReturnScalar<OtherDerived>>::value>::type>
SOPHUS_FUNC RxSO2Base< Derived > & operator*= (RxSO2Base< OtherDerived > const &other)
 
SOPHUS_FUNC RxSO2Baseoperator= (RxSO2Base const &other)=default
 
template<class OtherDerived >
SOPHUS_FUNC RxSO2Base< Derived > & operator= (RxSO2Base< OtherDerived > const &other)
 
SOPHUS_FUNC Sophus::Vector< Scalar, num_parametersparams () const
 
SOPHUS_FUNC Transformation rotationMatrix () const
 
SOPHUS_FUNC Scalar scale () const
 
SOPHUS_FUNC void setAngle (Scalar const &theta)
 
SOPHUS_FUNC void setComplex (Vector2< Scalar > const &z)
 
SOPHUS_FUNC void setRotationMatrix (Transformation const &R)
 
SOPHUS_FUNC void setScale (Scalar const &scale)
 
SOPHUS_FUNC void setScaledRotationMatrix (Transformation const &sR)
 
SOPHUS_FUNC void setSO2 (SO2< Scalar > const &so2)
 
SOPHUS_FUNC SO2< Scalarso2 () const
 

Protected Member Functions

SOPHUS_FUNC Map< Sophus::Vector2< Scalar >, Options > & complex_nonconst ()
 
- Protected Member Functions inherited from Sophus::RxSO2Base< Derived >
SOPHUS_FUNC ComplexTypecomplex_nonconst ()
 

Protected Attributes

Map< Sophus::Vector2< Scalar >, Options > complex_
 

Private Types

using Base = Sophus::RxSO2Base< Map< Sophus::RxSO2< Scalar_ >, Options > >
 

Friends

class Sophus::RxSO2Base< Map< Sophus::RxSO2< Scalar_ >, Options > >
 Base is friend so complex_nonconst can be accessed from Base. More...
 

Additional Inherited Members

- Static Public Attributes inherited from Sophus::RxSO2Base< Derived >
static constexpr int DoF = 2
 
static constexpr int N = 2
 Group transformations are 2x2 matrices. More...
 
static constexpr int num_parameters = 2
 Number of internal parameters used (complex number is a tuple). More...
 

Detailed Description

template<class Scalar_, int Options>
class Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >

Specialization of Eigen::Map for RxSO2; derived from RxSO2Base.

Allows us to wrap RxSO2 objects around POD array (e.g. external z style complex).

Definition at line 583 of file rxso2.hpp.

Member Typedef Documentation

◆ Adjoint

template<class Scalar_ , int Options>
using Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::Adjoint = typename Base::Adjoint

Definition at line 593 of file rxso2.hpp.

◆ Base

template<class Scalar_ , int Options>
using Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::Base = Sophus::RxSO2Base<Map<Sophus::RxSO2<Scalar_>, Options> >
private

Definition at line 585 of file rxso2.hpp.

◆ HomogeneousPoint

template<class Scalar_ , int Options>
using Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::HomogeneousPoint = typename Base::HomogeneousPoint

Definition at line 591 of file rxso2.hpp.

◆ Point

template<class Scalar_ , int Options>
using Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::Point = typename Base::Point

Definition at line 590 of file rxso2.hpp.

◆ Scalar

template<class Scalar_ , int Options>
using Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::Scalar = Scalar_

Definition at line 588 of file rxso2.hpp.

◆ Tangent

template<class Scalar_ , int Options>
using Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::Tangent = typename Base::Tangent

Definition at line 592 of file rxso2.hpp.

◆ Transformation

template<class Scalar_ , int Options>
using Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::Transformation = typename Base::Transformation

Definition at line 589 of file rxso2.hpp.

Constructor & Destructor Documentation

◆ Map()

template<class Scalar_ , int Options>
SOPHUS_FUNC Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::Map ( Scalar coeffs)
inline

Definition at line 604 of file rxso2.hpp.

Member Function Documentation

◆ complex()

template<class Scalar_ , int Options>
SOPHUS_FUNC Map<Sophus::Vector2<Scalar>, Options> const& Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::complex ( ) const
inline

Accessor of complex.

Definition at line 609 of file rxso2.hpp.

◆ complex_nonconst()

template<class Scalar_ , int Options>
SOPHUS_FUNC Map<Sophus::Vector2<Scalar>, Options>& Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::complex_nonconst ( )
inlineprotected

Definition at line 614 of file rxso2.hpp.

◆ EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR()

template<class Scalar_ , int Options>
Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR ( Map< Sophus::RxSO2< Scalar_ >, Options >  )

◆ operator*() [1/4]

template<class Scalar_ , int Options>
template<typename HPointDerived , typename = typename std::enable_if< IsFixedSizeVector<HPointDerived, 3>::value>::type>
SOPHUS_FUNC HomogeneousPointProduct<HPointDerived> Sophus::RxSO2Base< Derived >::operator* ( typename HPointDerived  ,
typename  = typename std::enable_if<                IsFixedSizeVector<HPointDerived, 3>::value>::type 
)
inline

Group action on homogeneous 2-points. See above for more details.

Definition at line 252 of file rxso2.hpp.

◆ operator*() [2/4]

template<class Scalar_ , int Options>
template<typename PointDerived , typename = typename std::enable_if< IsFixedSizeVector<PointDerived, 2>::value>::type>
SOPHUS_FUNC PointProduct<PointDerived> Sophus::RxSO2Base< Derived >::operator* ( typename PointDerived  ,
typename  = typename std::enable_if<                IsFixedSizeVector<PointDerived, 2>::value>::type 
)
inline

Group action on 2-points.

This function rotates a 2 dimensional point p by the SO2 element bar_R_foo (= rotation matrix) and scales it by the scale factor s:

p_bar = s * (bar_R_foo * p_foo).

Definition at line 242 of file rxso2.hpp.

◆ operator*() [3/4]

template<class Scalar_ , int Options>
SOPHUS_FUNC Line Sophus::RxSO2Base< Derived >::operator*
inline

Group action on lines.

This function rotates a parameterized line l(t) = o + t * d by the SO2 element and scales it by the scale factor

Origin o is rotated and scaled Direction d is rotated (preserving it's norm)

Definition at line 266 of file rxso2.hpp.

◆ operator*() [4/4]

template<class Scalar_ , int Options>
template<typename OtherDerived >
SOPHUS_FUNC RxSO2Product<OtherDerived> Sophus::RxSO2Base< Derived >::operator* ( typename OtherDerived  )
inline

Group multiplication, which is rotation concatenation and scale multiplication.

Note: This function performs saturation for products close to zero in order to ensure the class invariant.

complex multiplication

Saturation to ensure class invariant.

Definition at line 208 of file rxso2.hpp.

◆ operator*=()

template<class Scalar_ , int Options>
template<typename OtherDerived , typename = typename std::enable_if< std::is_same<Scalar, ReturnScalar<OtherDerived>>::value>::type>
SOPHUS_FUNC RxSO2Base<Derived>& Sophus::RxSO2Base< Derived >::operator*= ( typename OtherDerived  ,
typename  = typename std::enable_if<                std::is_same<ScalarReturnScalar<OtherDerived>>::value>::type 
)
inline

In-place group multiplication. This method is only valid if the return type of the multiplication is compatible with this SO2's Scalar type.

Note: This function performs saturation for products close to zero in order to ensure the class invariant.

Definition at line 279 of file rxso2.hpp.

Friends And Related Function Documentation

◆ Sophus::RxSO2Base< Map< Sophus::RxSO2< Scalar_ >, Options > >

template<class Scalar_ , int Options>
friend class Sophus::RxSO2Base< Map< Sophus::RxSO2< Scalar_ >, Options > >
friend

Base is friend so complex_nonconst can be accessed from Base.

Definition at line 596 of file rxso2.hpp.

Member Data Documentation

◆ complex_

template<class Scalar_ , int Options>
Map<Sophus::Vector2<Scalar>, Options> Eigen::Map< Sophus::RxSO2< Scalar_ >, Options >::complex_
protected

Definition at line 618 of file rxso2.hpp.


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


sophus
Author(s): Hauke Strasdat
autogenerated on Wed Mar 2 2022 01:01:48