Choreonoid  1.8
EigenTypes.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_UTIL_EIGEN_TYPES_H
6 #define CNOID_UTIL_EIGEN_TYPES_H
7 
8 #include <Eigen/Core>
9 #include <Eigen/Geometry>
10 
11 namespace cnoid {
12 
13 using Eigen::Vector2i;
14 using Eigen::Matrix2f;
15 using Eigen::Vector2f;
16 using Eigen::Matrix2d;
17 using Eigen::Vector2d;
18 using Eigen::Array2i;
19 using Eigen::Array2f;
20 using Eigen::Array2d;
21 
22 using Eigen::Vector3i;
23 using Eigen::Matrix3f;
24 using Eigen::Vector3f;
25 using Eigen::Matrix3d;
26 using Eigen::Vector3d;
27 using Eigen::Array3i;
28 using Eigen::Array3f;
29 using Eigen::Array3d;
30 
31 using Eigen::Matrix4f;
32 using Eigen::Vector4f;
33 using Eigen::Matrix4d;
34 using Eigen::Vector4d;
35 using Eigen::Array4i;
36 using Eigen::Array4f;
37 using Eigen::Array4d;
38 
39 using Eigen::MatrixXf;
40 using Eigen::VectorXf;
41 using Eigen::AngleAxisf;
42 using Eigen::Quaternionf;
43 
44 using Eigen::MatrixXd;
45 using Eigen::VectorXd;
46 using Eigen::AngleAxisd;
47 using Eigen::Quaterniond;
48 
49 using Eigen::Affine3f;
50 using Eigen::Affine3d;
51 using Eigen::Translation3f;
52 using Eigen::Translation3d;
53 
54 typedef Eigen::Matrix2d Matrix2;
55 typedef Eigen::Vector2d Vector2;
56 typedef Eigen::Matrix3d Matrix3;
57 typedef Eigen::Vector3d Vector3;
58 typedef Eigen::Matrix4d Matrix4;
59 typedef Eigen::Vector4d Vector4;
60 typedef Eigen::VectorXd VectorX;
61 typedef Eigen::Matrix<double, 6, 1> Vector6;
62 typedef Eigen::Affine3d Affine3;
63 typedef Eigen::Translation3d Translation3;
64 typedef Eigen::AngleAxisd AngleAxis;
65 
66 typedef Eigen::Quaterniond Quaternion;
67 
68 [[deprecated("Use Quaternion.")]]
69 typedef Eigen::Quaterniond Quat;
70 
71 using Eigen::Isometry3f;
72 using Eigen::Isometry3d;
73 typedef Eigen::Isometry3d Isometry3;
74 
75 //[[deprecated("Use Isometry3.")]]
76 // Backward compatibility
78 
79 class SE3 {
80  Vector3 p;
81  Quaternion q;
82 public:
83  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
84 
85  SE3() { }
87  : p(translation), q(rotation) { }
89  : p(translation), q(rotation) { }
90  SE3(const Isometry3& T)
91  : p(T.translation()), q(T.linear()) { }
92 
93  void set(const Vector3& translation, const Quaternion& rotation) {
94  this->p = translation;
95  this->q = rotation;
96  }
97  void set(const Vector3& translation, const Matrix3& R) {
98  this->p = translation;
99  this->q = R;
100  }
101  void set(const Isometry3& T){
102  p = T.translation();
103  q = T.linear();
104  }
105 
106  Vector3& translation() { return p; }
107  const Vector3& translation() const { return p; }
108  Quaternion& rotation() { return q; }
109  const Quaternion& rotation() const { return q; }
110 };
111 
112 }
113 
114 #endif
cnoid::SE3::SE3
SE3(const Vector3 &translation, const Quaternion &rotation)
Definition: EigenTypes.h:86
cnoid::Vector2
Eigen::Vector2d Vector2
Definition: EigenTypes.h:55
cnoid::Quaternion
Eigen::Quaterniond Quaternion
Definition: EigenTypes.h:66
cnoid::Vector3
Eigen::Vector3d Vector3
Definition: EigenTypes.h:57
cnoid::SE3::SE3
SE3(const Vector3 &translation, const Matrix3 &rotation)
Definition: EigenTypes.h:88
cnoid::SE3::set
void set(const Vector3 &translation, const Quaternion &rotation)
Definition: EigenTypes.h:93
cnoid::SE3::translation
const Vector3 & translation() const
Definition: EigenTypes.h:107
cnoid::Isometry3
Eigen::Isometry3d Isometry3
Definition: EigenTypes.h:73
cnoid::SE3::SE3
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SE3()
Definition: EigenTypes.h:85
cnoid::Matrix3
Eigen::Matrix3d Matrix3
Definition: EigenTypes.h:56
cnoid::AngleAxis
Eigen::AngleAxisd AngleAxis
Definition: EigenTypes.h:64
cnoid::Translation3
Eigen::Translation3d Translation3
Definition: EigenTypes.h:63
cnoid::Matrix4
Eigen::Matrix4d Matrix4
Definition: EigenTypes.h:58
cnoid::Position
Isometry3 Position
Definition: EigenTypes.h:77
cnoid
Definition: AbstractSceneLoader.h:11
cnoid::SE3::translation
Vector3 & translation()
Definition: EigenTypes.h:106
cnoid::SE3
Definition: EigenTypes.h:79
cnoid::SE3::SE3
SE3(const Isometry3 &T)
Definition: EigenTypes.h:90
cnoid::Vector4
Eigen::Vector4d Vector4
Definition: EigenTypes.h:59
cnoid::SE3::set
void set(const Isometry3 &T)
Definition: EigenTypes.h:101
cnoid::SE3::rotation
const Quaternion & rotation() const
Definition: EigenTypes.h:109
cnoid::Vector6
Eigen::Matrix< double, 6, 1 > Vector6
Definition: EigenTypes.h:61
cnoid::SE3::rotation
Quaternion & rotation()
Definition: EigenTypes.h:108
cnoid::SE3::set
void set(const Vector3 &translation, const Matrix3 &R)
Definition: EigenTypes.h:97
cnoid::Quat
Eigen::Quaterniond Quat
Definition: EigenTypes.h:69
cnoid::Matrix2
Eigen::Matrix2d Matrix2
Definition: EigenTypes.h:54
cnoid::Affine3
Eigen::Affine3d Affine3
Definition: EigenTypes.h:62
cnoid::VectorX
Eigen::VectorXd VectorX
Definition: EigenTypes.h:60