Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef MOVEIT_PY_BINDINGS_TOOLS_PY_CONVERSIONS_
00035 #define MOVEIT_PY_BINDINGS_TOOLS_PY_CONVERSIONS_
00036
00037 #include <boost/python.hpp>
00038 #include <string>
00039 #include <vector>
00040
00041 namespace moveit
00042 {
00043 namespace py_bindings_tools
00044 {
00045
00046 template<typename T>
00047 std::vector<T> typeFromList(const boost::python::list &values)
00048 {
00049 int l = boost::python::len(values);
00050 std::vector<T> v(l);
00051 for (int i = 0; i < l ; ++i)
00052 v[i] = boost::python::extract<T>(values[i]);
00053 return v;
00054 }
00055
00056 template<typename T>
00057 boost::python::list listFromType(const std::vector<T>& v)
00058 {
00059 boost::python::list l;
00060 for (std::size_t i = 0 ; i < v.size() ; ++i)
00061 l.append(v[i]);
00062 return l;
00063 }
00064
00065 std::vector<double> doubleFromList(const boost::python::list &values)
00066 {
00067 return typeFromList<double>(values);
00068 }
00069
00070 std::vector<std::string> stringFromList(const boost::python::list &values)
00071 {
00072 return typeFromList<std::string>(values);
00073 }
00074
00075 boost::python::list listFromDouble(const std::vector<double>& v)
00076 {
00077 return listFromType<double>(v);
00078 }
00079
00080 boost::python::list listFromString(const std::vector<std::string>& v)
00081 {
00082 return listFromType<std::string>(v);
00083 }
00084
00085 }
00086 }
00087
00088
00089 #endif