Cheetah Software  1.0
cppTypes.h
Go to the documentation of this file.
1 
8 #ifndef PROJECT_CPPTYPES_H
9 #define PROJECT_CPPTYPES_H
10 
11 #include <eigen3/Eigen/Dense>
12 
13 #include <vector>
14 #include "cTypes.h"
15 
16 // Rotation Matrix
17 template <typename T>
18 using RotMat = typename Eigen::Matrix<T, 3, 3>;
19 
20 // 2x1 Vector
21 template <typename T>
22 using Vec2 = typename Eigen::Matrix<T, 2, 1>;
23 
24 // 3x1 Vector
25 template <typename T>
26 using Vec3 = typename Eigen::Matrix<T, 3, 1>;
27 
28 // 4x1 Vector
29 template <typename T>
30 using Vec4 = typename Eigen::Matrix<T, 4, 1>;
31 
32 // 6x1 Vector
33 template <typename T>
34 using Vec6 = Eigen::Matrix<T, 6, 1>;
35 
36 // 10x1 Vector
37 template <typename T>
38 using Vec10 = Eigen::Matrix<T, 10, 1>;
39 
40 // 12x1 Vector
41 template <typename T>
42 using Vec12 = Eigen::Matrix<T, 12, 1>;
43 
44 // 18x1 Vector
45 template <typename T>
46 using Vec18 = Eigen::Matrix<T, 18, 1>;
47 
48 // 28x1 vector
49 template <typename T>
50 using Vec28 = Eigen::Matrix<T, 28, 1>;
51 
52 // 3x3 Matrix
53 template <typename T>
54 using Mat3 = typename Eigen::Matrix<T, 3, 3>;
55 
56 // 4x1 Vector
57 template <typename T>
58 using Quat = typename Eigen::Matrix<T, 4, 1>;
59 
60 // Spatial Vector (6x1, all subspaces)
61 template <typename T>
62 using SVec = typename Eigen::Matrix<T, 6, 1>;
63 
64 // Spatial Transform (6x6)
65 template <typename T>
66 using SXform = typename Eigen::Matrix<T, 6, 6>;
67 
68 // 6x6 Matrix
69 template <typename T>
70 using Mat6 = typename Eigen::Matrix<T, 6, 6>;
71 
72 // 12x12 Matrix
73 template <typename T>
74 using Mat12 = typename Eigen::Matrix<T, 12, 12>;
75 
76 // 18x18 Matrix
77 template <typename T>
78 using Mat18 = Eigen::Matrix<T, 18, 18>;
79 
80 // 28x28 Matrix
81 template <typename T>
82 using Mat28 = Eigen::Matrix<T, 28, 28>;
83 
84 // 3x4 Matrix
85 template <typename T>
86 using Mat34 = Eigen::Matrix<T, 3, 4>;
87 
88 // 3x4 Matrix
89 template <typename T>
90 using Mat23 = Eigen::Matrix<T, 2, 3>;
91 
92 // 4x4 Matrix
93 template <typename T>
94 using Mat4 = typename Eigen::Matrix<T, 4, 4>;
95 
96 // 10x1 Vector
97 template <typename T>
98 using MassProperties = typename Eigen::Matrix<T, 10, 1>;
99 
100 // Dynamically sized vector
101 template <typename T>
102 using DVec = typename Eigen::Matrix<T, Eigen::Dynamic, 1>;
103 
104 // Dynamically sized matrix
105 template <typename T>
106 using DMat = typename Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>;
107 
108 // Dynamically sized matrix with spatial vector columns
109 template <typename T>
110 using D6Mat = typename Eigen::Matrix<T, 6, Eigen::Dynamic>;
111 
112 // Dynamically sized matrix with cartesian vector columns
113 template <typename T>
114 using D3Mat = typename Eigen::Matrix<T, 3, Eigen::Dynamic>;
115 
116 // std::vector (a list) of Eigen things
117 template <typename T>
118 using vectorAligned = typename std::vector<T, Eigen::aligned_allocator<T>>;
119 
121 
122 #endif // PROJECT_CPPTYPES_H
Common types that are only valid in C++.
typename Eigen::Matrix< T, 6, Eigen::Dynamic > D6Mat
Definition: cppTypes.h:110
typename Eigen::Matrix< T, 6, 6 > Mat6
Definition: cppTypes.h:70
Eigen::Matrix< T, 28, 28 > Mat28
Definition: cppTypes.h:82
typename Eigen::Matrix< T, 3, 3 > Mat3
Definition: cppTypes.h:54
typename Eigen::Matrix< T, 12, 12 > Mat12
Definition: cppTypes.h:74
Eigen::Matrix< T, 28, 1 > Vec28
Definition: cppTypes.h:50
typename Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > DMat
Definition: cppTypes.h:106
typename Eigen::Matrix< T, 4, 4 > Mat4
Definition: cppTypes.h:94
typename Eigen::Matrix< T, 4, 1 > Quat
Definition: cppTypes.h:58
typename Eigen::Matrix< T, 3, 1 > Vec3
Definition: cppTypes.h:26
typename Eigen::Matrix< T, 6, 6 > SXform
Definition: cppTypes.h:66
Eigen::Matrix< T, 18, 1 > Vec18
Definition: cppTypes.h:46
Eigen::Matrix< T, 3, 4 > Mat34
Definition: cppTypes.h:86
typename Eigen::Matrix< T, 3, Eigen::Dynamic > D3Mat
Definition: cppTypes.h:114
typename Eigen::Matrix< T, 6, 1 > SVec
Definition: cppTypes.h:62
typename Eigen::Matrix< T, 2, 1 > Vec2
Definition: cppTypes.h:22
Eigen::Matrix< T, 10, 1 > Vec10
Definition: cppTypes.h:38
Eigen::Matrix< T, 12, 1 > Vec12
Definition: cppTypes.h:42
typename Eigen::Matrix< T, 4, 1 > Vec4
Definition: cppTypes.h:30
typename std::vector< T, Eigen::aligned_allocator< T >> vectorAligned
Definition: cppTypes.h:118
typename Eigen::Matrix< T, Eigen::Dynamic, 1 > DVec
Definition: cppTypes.h:102
RobotType
Definition: cppTypes.h:120
Eigen::Matrix< T, 18, 18 > Mat18
Definition: cppTypes.h:78
typename Eigen::Matrix< T, 10, 1 > MassProperties
Definition: cppTypes.h:98
Eigen::Matrix< T, 2, 3 > Mat23
Definition: cppTypes.h:90
Eigen::Matrix< T, 6, 1 > Vec6
Definition: cppTypes.h:34
typename Eigen::Matrix< T, 3, 3 > RotMat
Definition: cppTypes.h:18