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