10 #ifndef EIGEN_ANGLEAXIS_H
11 #define EIGEN_ANGLEAXIS_H
45 template <
typename Scalar_>
51 template <
typename Scalar_>
56 using Base::operator*;
77 template <
typename Derived>
83 template <
typename QuatDerived>
88 template <
typename Derived>
124 template <
class QuatDerived>
126 template <
typename Derived>
129 template <
typename Derived>
138 template <
typename NewScalarType>
145 template <
typename OtherScalarType>
147 m_axis = other.
axis().template cast<Scalar>();
176 template <
typename Scalar>
177 template <
typename QuatDerived>
187 m_axis =
q.vec() /
n;
197 template <
typename Scalar>
198 template <
typename Derived>
208 template <
typename Scalar>
209 template <
typename Derived>
216 template <
typename Scalar>
226 tmp = cos1_axis.x() * m_axis.y();
227 res.coeffRef(0, 1) =
tmp - sin_axis.z();
228 res.coeffRef(1, 0) =
tmp + sin_axis.z();
230 tmp = cos1_axis.x() * m_axis.z();
231 res.coeffRef(0, 2) =
tmp + sin_axis.y();
232 res.coeffRef(2, 0) =
tmp - sin_axis.y();
234 tmp = cos1_axis.y() * m_axis.z();
235 res.coeffRef(1, 2) =
tmp - sin_axis.x();
236 res.coeffRef(2, 1) =
tmp + sin_axis.x();
238 res.diagonal() = (cos1_axis.cwiseProduct(m_axis)).
array() +
c;
AnnoyingScalar abs(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:135
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
#define EIGEN_USING_STD(FUNC)
Definition: Macros.h:1090
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:892
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
Scalar * b
Definition: benchVecAdd.cpp:17
SCALAR Scalar
Definition: bench_gemm.cpp:45
Represents a 3D rotation as a rotation angle around an arbitrary 3D axis.
Definition: AngleAxis.h:52
Matrix< Scalar, 3, 3 > Matrix3
Definition: AngleAxis.h:61
EIGEN_DEVICE_FUNC internal::cast_return_type< AngleAxis, AngleAxis< NewScalarType > >::type cast() const
Definition: AngleAxis.h:139
Scalar_ Scalar
Definition: AngleAxis.h:60
Vector3 m_axis
Definition: AngleAxis.h:66
EIGEN_DEVICE_FUNC AngleAxis(const AngleAxis< OtherScalarType > &other)
Definition: AngleAxis.h:146
EIGEN_DEVICE_FUNC AngleAxis inverse() const
Definition: AngleAxis.h:122
EIGEN_DEVICE_FUNC bool isApprox(const AngleAxis &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const
Definition: AngleAxis.h:157
EIGEN_DEVICE_FUNC AngleAxis(const MatrixBase< Derived > &m)
Definition: AngleAxis.h:89
EIGEN_DEVICE_FUNC AngleAxis(const Scalar &angle, const MatrixBase< Derived > &axis)
Definition: AngleAxis.h:78
EIGEN_DEVICE_FUNC const Vector3 & axis() const
Definition: AngleAxis.h:99
EIGEN_DEVICE_FUNC Scalar angle() const
Definition: AngleAxis.h:94
EIGEN_DEVICE_FUNC QuaternionType operator*(const AngleAxis &other) const
Definition: AngleAxis.h:107
EIGEN_DEVICE_FUNC AngleAxis & operator=(const MatrixBase< Derived > &m)
EIGEN_DEVICE_FUNC Matrix3 toRotationMatrix(void) const
Definition: AngleAxis.h:217
@ Dim
Definition: AngleAxis.h:58
Quaternion< Scalar > QuaternionType
Definition: AngleAxis.h:63
EIGEN_DEVICE_FUNC AngleAxis()
Definition: AngleAxis.h:71
Matrix< Scalar, 3, 1 > Vector3
Definition: AngleAxis.h:62
EIGEN_DEVICE_FUNC AngleAxis & operator=(const QuaternionBase< QuatDerived > &q)
static EIGEN_DEVICE_FUNC const AngleAxis Identity()
Definition: AngleAxis.h:151
EIGEN_DEVICE_FUNC Scalar & angle()
Definition: AngleAxis.h:96
friend EIGEN_DEVICE_FUNC QuaternionType operator*(const QuaternionType &a, const AngleAxis &b)
Definition: AngleAxis.h:117
RotationBase< AngleAxis< Scalar_ >, 3 > Base
Definition: AngleAxis.h:53
EIGEN_DEVICE_FUNC QuaternionType operator*(const QuaternionType &other) const
Definition: AngleAxis.h:112
Scalar m_angle
Definition: AngleAxis.h:67
EIGEN_DEVICE_FUNC AngleAxis & fromRotationMatrix(const MatrixBase< Derived > &m)
EIGEN_DEVICE_FUNC Vector3 & axis()
Definition: AngleAxis.h:104
EIGEN_DEVICE_FUNC AngleAxis(const QuaternionBase< QuatDerived > &q)
Definition: AngleAxis.h:84
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:52
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Base class for quaternion expressions.
Definition: Eigen/Eigen/src/Geometry/Quaternion.h:35
The quaternion class used to represent 3D orientations and rotations.
Definition: Eigen/Eigen/src/Geometry/Quaternion.h:285
Common base class for compact rotation representations.
Definition: RotationBase.h:32
AngleAxis< float > AngleAxisf
Definition: AngleAxis.h:165
AngleAxis< double > AngleAxisd
Definition: AngleAxis.h:168
const Scalar * a
Definition: level2_cplx_impl.h:32
int * m
Definition: level2_cplx_impl.h:294
Eigen::Matrix< Scalar, Dynamic, Dynamic, ColMajor > tmp
Definition: level3_impl.h:365
EIGEN_DEVICE_FUNC bool isApprox(const Scalar &x, const Scalar &y, const typename NumTraits< Scalar >::Real &precision=NumTraits< Scalar >::dummy_precision())
Definition: MathFunctions.h:1923
EIGEN_DEVICE_FUNC const Scalar & q
Definition: SpecialFunctionsImpl.h:2019
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
AutoDiffScalar< Matrix< typename internal::traits< internal::remove_all_t< DerTypeA > >::Scalar, Dynamic, 1 > > atan2(const AutoDiffScalar< DerTypeA > &a, const AutoDiffScalar< DerTypeB > &b)
Definition: AutoDiffScalar.h:558
std::array< T, N > array
Definition: EmulateArray.h:231
int c
Definition: calibrate.py:100
type
Definition: compute_granudrum_aor.py:141
Definition: Eigen_Colamd.h:49
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:217
Definition: XprHelper.h:583
Scalar_ Scalar
Definition: AngleAxis.h:47
Definition: ForwardDeclarations.h:21