|
| EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR (Map) |
|
SOPHUS_FUNC | Map (Scalar *coeffs) |
|
template<typename HPointDerived , typename = typename std::enable_if< IsFixedSizeVector<HPointDerived, 4>::value>::type> |
SOPHUS_FUNC HomogeneousPointProduct< HPointDerived > | operator* (Eigen::MatrixBase< HPointDerived > const &p) const |
| Group action on homogeneous 3-points. See above for more details. More...
|
|
template<typename PointDerived , typename = typename std::enable_if< IsFixedSizeVector<PointDerived, 3>::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 SO3Product< OtherDerived > | operator* (SO3Base< OtherDerived > const &other) const |
|
template<typename OtherDerived , typename = typename std::enable_if< std::is_same<Scalar, ReturnScalar<OtherDerived>>::value>::type> |
SOPHUS_FUNC SO3Base< Derived > & | operator*= (SO3Base< OtherDerived > const &other) |
|
SOPHUS_FUNC Map< Eigen::Quaternion< Scalar >, Options > const & | unit_quaternion () const |
|
SOPHUS_FUNC Adjoint | Adj () const |
| Adjoint transformation. More...
|
|
template<class S = Scalar> |
SOPHUS_FUNC enable_if_t< std::is_floating_point< S >::value, S > | angleX () const |
|
template<class S = Scalar> |
SOPHUS_FUNC enable_if_t< std::is_floating_point< S >::value, S > | angleY () const |
|
template<class S = Scalar> |
SOPHUS_FUNC enable_if_t< std::is_floating_point< S >::value, S > | angleZ () const |
|
template<class NewScalarType > |
SOPHUS_FUNC SO3< NewScalarType > | cast () const |
|
SOPHUS_FUNC Scalar * | data () |
|
SOPHUS_FUNC Scalar const * | data () const |
|
SOPHUS_FUNC Matrix< Scalar, num_parameters, DoF > | Dx_this_mul_exp_x_at_0 () const |
|
SOPHUS_FUNC SO3< Scalar > | inverse () const |
|
SOPHUS_FUNC Tangent | log () const |
|
SOPHUS_FUNC TangentAndTheta | logAndTheta () const |
|
SOPHUS_FUNC Transformation | matrix () const |
|
SOPHUS_FUNC void | normalize () |
|
template<typename HPointDerived , typename = typename std::enable_if< IsFixedSizeVector<HPointDerived, 4>::value>::type> |
SOPHUS_FUNC HomogeneousPointProduct< HPointDerived > | operator* (Eigen::MatrixBase< HPointDerived > const &p) const |
| Group action on homogeneous 3-points. See above for more details. More...
|
|
template<typename PointDerived , typename = typename std::enable_if< IsFixedSizeVector<PointDerived, 3>::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 SO3Product< OtherDerived > | operator* (SO3Base< OtherDerived > const &other) const |
|
template<typename OtherDerived , typename = typename std::enable_if< std::is_same<Scalar, ReturnScalar<OtherDerived>>::value>::type> |
SOPHUS_FUNC SO3Base< Derived > & | operator*= (SO3Base< OtherDerived > const &other) |
|
SOPHUS_FUNC SO3Base & | operator= (SO3Base const &other)=default |
|
template<class OtherDerived > |
SOPHUS_FUNC SO3Base< Derived > & | operator= (SO3Base< OtherDerived > const &other) |
|
SOPHUS_FUNC Sophus::Vector< Scalar, num_parameters > | params () const |
|
SOPHUS_FUNC void | setQuaternion (Eigen::Quaternion< Scalar > const &quaternion) |
|
SOPHUS_FUNC QuaternionType const & | unit_quaternion () const |
|
template<class Scalar_, int Options>
class Eigen::Map< Sophus::SO3< Scalar_ >, Options >
Specialization of Eigen::Map for SO3
; derived from SO3Base.
Allows us to wrap SO3 objects around POD array (e.g. external c style quaternion).
Definition at line 771 of file so3.hpp.
template<class Scalar_ , int Options>
template<typename PointDerived , typename = typename std::enable_if< IsFixedSizeVector<PointDerived, 3>::value>::type>
Group action on 3-points.
This function rotates a 3 dimensional point p
by the SO3 element bar_R_foo
(= rotation matrix): p_bar = bar_R_foo * p_foo
.
Since SO3 is internally represented by a unit quaternion q
, it is implemented as p_bar = q * p_foo * q^{*}
with q^{*}
being the quaternion conjugate of q
.
Geometrically, p
is rotated by angle |omega|
around the axis omega/|omega|
with omega := vee(log(bar_R_foo))
.
For vee
-operator, see below.
NOTE: We cannot use Eigen's Quaternion transformVector because it always returns a Vector3 of the same Scalar as this quaternion, so it is not able to be applied to Jets and doubles correctly.
Definition at line 357 of file so3.hpp.
template<class Scalar_ , int Options>
template<typename OtherDerived >
Group multiplication, which is rotation concatenation.
NOTE: We cannot use Eigen's Quaternion multiplication because it always returns a Quaternion of the same Scalar as this object, so it is not able to multiple Jets and doubles correctly.
Definition at line 324 of file so3.hpp.
template<class Scalar_ , int Options>
template<typename OtherDerived , typename = typename std::enable_if< std::is_same<Scalar, ReturnScalar<OtherDerived>>::value>::type>
In-place group multiplication. This method is only valid if the return type of the multiplication is compatible with this SO3's Scalar type.
Definition at line 395 of file so3.hpp.