eigen_typekit.hpp
Go to the documentation of this file.
1 /*
2  * (C) 2010 Ruben Smits, ruben.smits@mech.kuleuven.be, Department of Mechanical
3  Engineering, Katholieke Universiteit Leuven, Belgium.
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation; either
8  version 2.1 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with this library; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 
19  Alternatively, the contents of this file may be used under the terms of
20  either of the New BSD License
21  */
22 #ifndef EIGEN_TYPEKIT_HPP
23 #define EIGEN_TYPEKIT_HPP
24 
26 #include <Eigen/Core>
27 
28 // import most common Eigen types
29 namespace Eigen {
30 
31 typedef Matrix<double,6,1> Vector6d;
32 
34 public:
35  virtual std::string getName();
36 
37  virtual bool loadTypes();
38  virtual bool loadConstructors();
39  virtual bool loadOperators();
40 };
41 }
42 
43 #ifdef CORELIB_DATASOURCE_HPP
44 #define DECLARE_VECTOR_CORELIB_DATASOURCE_HPP(VectorType) \
45  extern template class RTT::internal::DataSourceTypeInfo< VectorType >; \
46  extern template class RTT::internal::DataSource< VectorType >; \
47  extern template class RTT::internal::AssignableDataSource< VectorType >; \
48  extern template class RTT::internal::AssignCommand< VectorType >;
49 
50  DECLARE_VECTOR_CORELIB_DATASOURCE_HPP(Eigen::VectorXd)
51  DECLARE_VECTOR_CORELIB_DATASOURCE_HPP(Eigen::Vector2d)
52  DECLARE_VECTOR_CORELIB_DATASOURCE_HPP(Eigen::Vector3d)
53  DECLARE_VECTOR_CORELIB_DATASOURCE_HPP(Eigen::Vector4d)
54  DECLARE_VECTOR_CORELIB_DATASOURCE_HPP(Eigen::Vector6d)
55 #endif
56 
57 #ifdef ORO_CORELIB_DATASOURCES_HPP
58 #define DECLARE_VECTOR_ORO_CORELIB_DATASOURCES_HPP(VectorType) \
59  extern template class RTT::internal::ValueDataSource< VectorType >; \
60  extern template class RTT::internal::ConstantDataSource< VectorType >; \
61  extern template class RTT::internal::ReferenceDataSource< VectorType >;
62 
63  DECLARE_VECTOR_ORO_CORELIB_DATASOURCES_HPP(Eigen::VectorXd)
64  DECLARE_VECTOR_ORO_CORELIB_DATASOURCES_HPP(Eigen::Vector2d)
65  DECLARE_VECTOR_ORO_CORELIB_DATASOURCES_HPP(Eigen::Vector3d)
66  DECLARE_VECTOR_ORO_CORELIB_DATASOURCES_HPP(Eigen::Vector4d)
67  DECLARE_VECTOR_ORO_CORELIB_DATASOURCES_HPP(Eigen::Vector6d)
68 #endif
69 
70 #ifdef ORO_OUTPUT_PORT_HPP
71  extern template class RTT::OutputPort< Eigen::VectorXd >;
72  extern template class RTT::OutputPort< Eigen::Vector2d >;
73  extern template class RTT::OutputPort< Eigen::Vector3d >;
74  extern template class RTT::OutputPort< Eigen::Vector4d >;
75  extern template class RTT::OutputPort< Eigen::Vector6d >;
76 #endif
77 
78 #ifdef ORO_INPUT_PORT_HPP
79  extern template class RTT::InputPort< Eigen::VectorXd >;
80  extern template class RTT::InputPort< Eigen::Vector2d >;
81  extern template class RTT::InputPort< Eigen::Vector3d >;
82  extern template class RTT::InputPort< Eigen::Vector4d >;
83  extern template class RTT::InputPort< Eigen::Vector6d >;
84 #endif
85 
86 #ifdef ORO_PROPERTY_HPP
87  extern template class RTT::Property< Eigen::VectorXd >;
88  extern template class RTT::Property< Eigen::Vector2d >;
89  extern template class RTT::Property< Eigen::Vector3d >;
90  extern template class RTT::Property< Eigen::Vector4d >;
91  extern template class RTT::Property< Eigen::Vector6d >;
92 #endif
93 
94 #ifdef ORO_CORELIB_ATTRIBUTE_HPP
95 #define DECLARE_VECTOR_ORO_CORELIB_ATTRIBUTE_HPP(VectorType) \
96  extern template class RTT::Attribute< VectorType >; \
97  extern template class RTT::Constant< VectorType >;
98 
99  DECLARE_VECTOR_ORO_CORELIB_ATTRIBUTE_HPP(Eigen::VectorXd)
100  DECLARE_VECTOR_ORO_CORELIB_ATTRIBUTE_HPP(Eigen::Vector2d)
101  DECLARE_VECTOR_ORO_CORELIB_ATTRIBUTE_HPP(Eigen::Vector3d)
102  DECLARE_VECTOR_ORO_CORELIB_ATTRIBUTE_HPP(Eigen::Vector4d)
103  DECLARE_VECTOR_ORO_CORELIB_ATTRIBUTE_HPP(Eigen::Vector6d)
104 #endif
105 
106 
107 #ifdef CORELIB_DATASOURCE_HPP
108 #define DECLARE_MATRIX_CORELIB_DATASOURCE_HPP(MatrixType) \
109  extern template class RTT::internal::DataSourceTypeInfo< MatrixType >; \
110  extern template class RTT::internal::DataSource< MatrixType >; \
111  extern template class RTT::internal::AssignableDataSource< MatrixType >; \
112  extern template class RTT::internal::AssignCommand< MatrixType >;
113 
114  DECLARE_MATRIX_CORELIB_DATASOURCE_HPP(Eigen::MatrixXd)
115  DECLARE_MATRIX_CORELIB_DATASOURCE_HPP(Eigen::Matrix2d)
116  DECLARE_MATRIX_CORELIB_DATASOURCE_HPP(Eigen::Matrix3d)
117  DECLARE_MATRIX_CORELIB_DATASOURCE_HPP(Eigen::Matrix4d)
118 #endif
119 #ifdef ORO_CORELIB_DATASOURCES_HPP
120 #define DECLARE_MATRIX_ORO_CORELIB_DATASOURCES_HPP(MatrixType) \
121  extern template class RTT::internal::ValueDataSource< MatrixType >; \
122  extern template class RTT::internal::ConstantDataSource< MatrixType >; \
123  extern template class RTT::internal::ReferenceDataSource< MatrixType >;
124 
125  DECLARE_MATRIX_CORELIB_DATASOURCE_HPP(Eigen::MatrixXd)
126  DECLARE_MATRIX_CORELIB_DATASOURCE_HPP(Eigen::Matrix2d)
127  DECLARE_MATRIX_CORELIB_DATASOURCE_HPP(Eigen::Matrix3d)
128  DECLARE_MATRIX_CORELIB_DATASOURCE_HPP(Eigen::Matrix4d)
129 #endif
130 #ifdef ORO_OUTPUT_PORT_HPP
131  extern template class RTT::OutputPort< Eigen::MatrixXd >;
132  extern template class RTT::OutputPort< Eigen::Matrix2d >;
133  extern template class RTT::OutputPort< Eigen::Matrix3d >;
134  extern template class RTT::OutputPort< Eigen::Matrix4d >;
135 #endif
136 #ifdef ORO_INPUT_PORT_HPP
137  extern template class RTT::InputPort< Eigen::MatrixXd >;
138  extern template class RTT::InputPort< Eigen::Matrix2d >;
139  extern template class RTT::InputPort< Eigen::Matrix3d >;
140  extern template class RTT::InputPort< Eigen::Matrix4d >;
141 #endif
142 #ifdef ORO_PROPERTY_HPP
143  extern template class RTT::Property< Eigen::MatrixXd >;
144  extern template class RTT::Property< Eigen::Matrix2d >;
145  extern template class RTT::Property< Eigen::Matrix3d >;
146  extern template class RTT::Property< Eigen::Matrix4d >;
147 #endif
148 #ifdef ORO_CORELIB_ATTRIBUTE_HPP
149 #define DECLARE_MATRIX_ORO_CORELIB_ATTRIBUTE_HPP(MatrixType) \
150  extern template class RTT::Attribute< MatrixType >; \
151  extern template class RTT::Constant< MatrixType >;
152 
153  DECLARE_MATRIX_ORO_CORELIB_ATTRIBUTE_HPP(Eigen::MatrixXd)
154  DECLARE_MATRIX_ORO_CORELIB_ATTRIBUTE_HPP(Eigen::Matrix2d)
155  DECLARE_MATRIX_ORO_CORELIB_ATTRIBUTE_HPP(Eigen::Matrix3d)
156  DECLARE_MATRIX_ORO_CORELIB_ATTRIBUTE_HPP(Eigen::Matrix4d)
157 #endif
158 
159 #endif // ifndef EIGEN_TYPEKIT_HPP
160 
Matrix< double, 6, 1 > Vector6d
virtual std::string getName()
virtual bool loadConstructors()


eigen_typekit
Author(s): Ruben Smits
autogenerated on Tue Jan 5 2021 03:41:40