Go to the documentation of this file.
19 template <
class TScalar>
36 template <
class TOtherScalar>
40 template <
class TOtherScalar>
43 this->
params_.template cast<TOtherScalar>());
50 "R is not orthogonal:\n {}",
51 mat_r * mat_r.transpose());
53 mat_r.determinant() > TScalar(0),
54 "det(R) is not positive: {}",
80 [[nodiscard]]
auto angle() const -> TScalar {
return this->
log()[0]; }
93 static_assert(concepts::Rotation2<Rotation2F64>);
Rotation2(TScalar angle)
Definition: rotation2.h:34
Eigen::Vector< Scalar, kNumParams > Params
Definition: lie_group.h:69
static auto fromAngle(TScalar const &theta) -> Rotation2
Definition: rotation2.h:60
#define SOPHUS_ASSERT(...)
Definition: common.h:40
Eigen::Vector< Scalar, kDof > Tangent
Definition: lie_group.h:68
Rotation2(TOtherScalar angle)
Definition: rotation2.h:37
static auto fromRotationMatrix(Eigen::Matrix2< TScalar > const &mat_r) -> Rotation2
Definition: rotation2.h:46
TScalar Scalar
Definition: rotation2.h:22
Definition: lie_group.h:24
auto unitComplex() const -> Complex< TScalar >
Definition: rotation2.h:82
Rotation2(UninitTag)
Definition: rotation2.h:32
Image MutImage, owning images types.
Definition: num_diff.h:20
Eigen::Vector< Scalar, kPointDim > Point
Definition: lie_group.h:70
static auto fromParams(Params const ¶ms) -> Derived
Definition: lie_group.h:79
static auto fitFromMatrix(Eigen::Matrix2< TScalar > const &mat_r) -> Rotation2
Definition: rotation2.h:72
Params params_
Definition: lie_group.h:265
auto makeRotationMatrix(Eigen::MatrixBase< TD > const &r) -> std::enable_if_t< std::is_floating_point< typename TD::Scalar >::value, Eigen::Matrix< typename TD::Scalar, TD::RowsAtCompileTime, TD::RowsAtCompileTime >>
Takes in arbitrary square matrix (2x2 or larger) and returns closest orthogonal matrix with positive ...
Definition: orthogonal.h:67
void setParams(Params const ¶ms)
Definition: lie_group.h:241
static auto fromParams(Params const ¶ms) -> Complex
Definition: complex.h:122
auto angle() const -> TScalar
Definition: rotation2.h:80
typename Base::Params Params
Definition: rotation2.h:27
static auto fromUnitComplex(Complex< TScalar > const &z) -> Rotation2
Definition: rotation2.h:68
auto log() const -> Tangent
Definition: lie_group.h:97
auto matrix() const -> Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim >
Definition: lie_group.h:176
auto cast() const -> Rotation2< TOtherScalar >
Definition: rotation2.h:41
Definition: rotation2.h:20
auto isOrthogonal(Eigen::MatrixBase< TD > const &r) -> bool
Takes in arbitrary square matrix and returns true if it is orthogonal.
Definition: orthogonal.h:24
auto rotationMatrix() const -> Eigen::Matrix2< TScalar >
Definition: rotation2.h:76
auto setUnitComplex(Complex< TScalar > const &z) const -> void
Definition: rotation2.h:86
static auto exp(Tangent const &tangent) -> Derived
Definition: lie_group.h:93
static auto fitFromComplex(Complex< TScalar > const &z) -> Rotation2
Definition: rotation2.h:64
Definition: group_accessors.h:15
typename Base::Point Point
Definition: rotation2.h:28
typename Base::Tangent Tangent
Definition: rotation2.h:26